Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Cloud Container Engine/ Guía del usuario/ Red/ Service/ LoadBalancer/ Configuración de la comprobación de estado para varios puertos
Actualización más reciente 2024-09-10 GMT+08:00

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

A continuación se muestra un ejemplo de uso de la anotación kubernetes.io/elb.health-check-options:
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: **.**.**.**
Tabla 1 Descripción de la estructura de datos del campo elb.health-check-options

Parámetro

Obligatorio

Tipo

Descripción

target_service_port

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.