Configuración de la comprobación de estado para varios puertos
El campo de anotación relacionado con la comprobación de estado del LoadBalancer Service se actualiza de Kubernetes.io/elb.health-check-option a Kubernetes.io/elb.health-check-options. Cada puerto de Service se puede configurar por separado y solo puede configurar algunos puertos. Si el protocolo de puerto no necesita configurarse por separado, el campo de anotación original todavía está disponible y no necesita modificarse.
Restricciones
- Esta función solo tiene efecto en las siguientes versiones:
- v1.19: v1.19.16-r5 o posterior
- v1.21: v1.21.8-r0 o posterior
- v1.23: v1.23.6-r0 o posterior
- v1.25: v1.25.2-r0 o posterior
- kubernetes.io/elb.health-check-option y kubernetes.io/elb.health-check-options no se pueden configurar al mismo tiempo.
- El campo target_service_port es obligatorio y debe ser único.
- Para un puerto TCP, el protocolo de comprobación de estado solo puede ser TCP o HTTP. Para un puerto UDP, el protocolo de comprobación de estado debe ser UDP.
Procedimiento
apiVersion: v1 kind: Service metadata: name: nginx namespace: default labels: {} annotations: kubernetes.io/elb.class: union kubernetes.io/elb.id: 038ffbda-bd3a-48bb-8b8c-a8582601fd97 kubernetes.io/elb.lb-algorithm: ROUND_ROBIN kubernetes.io/elb.health-check-flag: 'on' kubernetes.io/elb.health-check-options: '{ "target_service_port": "TCP:80", // (Mandatory) Port for health check specified by spec.ports. The value consists of the protocol and port number, for example, TCP:80. "monitor_port": "", // (Optional) Re-specified port for health check. If this parameter is not specified, the service port is used by default. Ensure that the port is in the listening state on the node where the pod is located. Otherwise, the health check result will be affected. "protocol":"TCP", "delay":"5", "timeout":"10", "max_retries":"3", "path":"/" }' spec: selector: {} externalTrafficPolicy: Cluster ports: - name: cce-service-0 targetPort: 80 nodePort: 0 port: 80 protocol: TCP type: LoadBalancer loadBalancerIP: **.**.**.**
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
target_service_port |
Sí |
String |
Puerto para comprobación de estado especificado por spec.ports. El valor consiste en el protocolo y el número de puerto, por ejemplo, TCP:80. |
monitor_port |
No |
String |
Puerto reespecificado para la comprobación de estado. Si no se especifica este parámetro, el puerto de servicio se utiliza de forma predeterminada.
NOTA:
Asegúrese de que el puerto está en el estado de escucha en el nodo donde se encuentra el pod. De lo contrario, el resultado de la comprobación de estado se verá afectado. |
delay |
No |
String |
Tiempo de espera inicial (en segundos) para iniciar la comprobación de estado. Rango de valores: 1 a 50. Valor predeterminado: 5 |
timeout |
No |
String |
Tiempo de espera de la comprobación de estado, en segundos. Rango de valores: 1 a 50. Valor predeterminado: 10 |
max_retries |
No |
String |
Número máximo de reintentos de comprobación de estado. Rango de valores: 1 a 10. Valor predeterminado: 3 |
protocol |
No |
String |
Protocolo de comprobación de estado. Valor predeterminado: protocolo del Service asociado Opción de valor: TCP, UDP o HTTP |
path |
No |
String |
URL de comprobación de estado. Este parámetro debe configurarse cuando el protocolo es HTTP. Valor predeterminado: / El valor puede contener de 1 a 10,000 caracteres. |