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 del estado del pod a través de la comprobación de estado de ELB
Actualización más reciente 2024-09-10 GMT+08:00

Configuración del estado del pod a través de la comprobación de estado de ELB

El estado listo del pod está asociado con la comprobación del estado de ELB. Después de que la comprobación de estado es exitosa, el pod está listo. Esta asociación funciona con los parámetros strategy.rollingUpdate.maxSurge y strategy.rollingUpdate.maxUnavailable del pod para implementar una actualización gradual elegante.

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
  • Esta función solo se aplica a escenarios de transferencia, es decir, escenarios en los que se utilizan balanceadores de carga dedicados en clústeres de CCE Turbo.
  • Para usar esta función, debe configurar el campo readinessGates en el pod y especificar la etiqueta target-health.elb.k8s.cce/{serviceName} donde {serviceName} indica el nombre del servicio.
  • El estado listo para el pod solo tiene efecto cuando el backend ELB está conectado inicialmente. El estado de comprobación de estado posterior no afecta al estado listo para el pod.

Configuración del estado del pod a través de la comprobación de estado de ELB

Para utilizar Pod readiness Gates, lleve a cabo los siguientes pasos:

  1. Inicie sesión en la consola de CCE y acceda a la consola del clúster.
  2. En el panel de navegación, elija Workloads. En la esquina superior derecha, haga clic en Create from YAML.

    Contenido de YAML:
    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: nginx
      namespace: default
      labels:
        version: v1
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
          version: v1
      template:
        metadata:
          labels:
            app: nginx
            version: v1
        spec:
          containers:
            - name: container-1
              image: nginx:latest
          imagePullSecrets:
            - name: default-secret
          readinessGates:
            - conditionType: target-health.elb.k8s.cce/specific-service-name  # Specifies the ServiceName.
      strategy:
        type: RollingUpdate
        rollingUpdate:
          maxUnavailable: 25%           # Works with the following two parameters to control the number of ELB backends and implement graceful rolling upgrade.
          maxSurge: 25%

  3. Haga clic en OK. En la lista de carga de trabajo, puede comprobar el estado de la carga de trabajo y encontrar que el pod no está listo.

  4. En el panel de navegación, elija Networking. En la esquina superior derecha, haga clic en Create Service y establezca los siguientes parámetros:

    • Service Name: El valor debe ser el mismo que el valor de readinessGates en el pod.
    • Service Type: Seleccione LoadBalancer.
    • Selector: haga clic en Reference Workload Label, seleccione la carga de trabajo creada en el paso anterior y haga clic en OK.
    • Load Balancer: Se deben utilizar balanceadores de carga dedicados. Puede seleccionar un balanceador de carga existente o crear automáticamente un balanceador de carga.
    • Set ELB: Habilite la comprobación de estado. (De lo contrario, la comprobación de estado se realiza correctamente por defecto.)

  5. Vaya a la consola de ELB y compruebe el grupo de servidores backend. El estado de la comprobación de estado es normal.
  6. En la consola de CCE, la carga de trabajo está en el estado Running.