Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Cloud Container Engine/ Guia de usuário/ Rede/ Serviço/ LoadBalancer/ Configuração da verificação de integridade para várias portas
Atualizado em 2024-11-28 GMT+08:00

Configuração da verificação de integridade para várias portas

O campo de anotação relacionado à verificação de integridade do Serviço LoadBalancer é atualizado de Kubernetes.io/elb.health-check-option para Kubernetes.io/elb.health-check-options. Cada porta de Serviço pode ser configurada separadamente e você pode configurar apenas algumas portas. Se o protocolo de porta não precisar ser configurado separadamente, o campo de anotação original ainda estará disponível e não precisará ser modificado.

Restrições

  • Este recurso entra em vigor apenas nas seguintes versões:
    • v1.19: v1.19.16-r5 ou mais recente
    • v1.21: v1.21.8-r0 ou mais recente
    • v1.23: v1.23.6-r0 ou mais recente
    • v1.25: v1.25.2-r0 ou mais recente
  • kubernetes.io/elb.health-check-option e kubernetes.io/elb.health-check-options não podem ser configurados ao mesmo tempo.
  • O campo target_service_port é obrigatório e deve ser exclusivo.
  • Para uma porta TCP, o protocolo de verificação de integridade só pode ser TCP ou HTTP. Para uma porta UDP, o protocolo de verificação de integridade deve ser UDP.

Procedimento

Veja a seguir um exemplo de uso da anotação kubernetes.io/elb.health-check-options:
apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
  labels: 
    app: nginx
    version: v1
  annotations:
    kubernetes.io/elb.class: union         # Load balancer type
    kubernetes.io/elb.id: <your_elb_id>    # ELB ID. Replace it with the actual value.
    kubernetes.io/elb.lb-algorithm: ROUND_ROBIN  # Load balancer algorithm
    kubernetes.io/elb.health-check-flag: 'on'    # Enable ELB health check.
    kubernetes.io/elb.health-check-options: '[
	{
		"protocol": "TCP",
		"delay": "5",
		"timeout": "10",
		"max_retries": "3",
		"target_service_port": "TCP:1", // (Mandatory) Port for health check specified by spec.ports. The value consists of the protocol and port number, for example, TCP:80.
		"monitor_port": "22" // (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": "HTTP",
		"delay": "5",
		"timeout": "10",
		"max_retries": "3",
		"path": "/",  // Health check URL. This parameter needs to be configured when HTTP is used.
		"target_service_port": "TCP:2",
		"monitor_port": "22"
	}
    ]'
spec:
  selector:
    app: nginx
    version: v1
  externalTrafficPolicy: Cluster
  ports:
    - name: cce-service-0
      targetPort: 1
      nodePort: 0
      port: 1
      protocol: TCP
    - name: cce-service-1
      targetPort: 2
      nodePort: 0
      port: 2
      protocol: TCP
  type: LoadBalancer
  loadBalancerIP: **.**.**.**
Tabela 1 Descrição da estrutura de dados do campo elb.health-check-options

Parâmetro

Obrigatório

Tipo

Descrição

target_service_port

Sim

String

Porta para verificação de integridade especificada por spec.ports. O valor consiste no protocolo e no número da porta, por exemplo, TCP:80.

monitor_port

Não

String

Porta re-especificada para verificação de integridade. Se esse parâmetro não for especificado, a porta de serviço será usada por padrão.

NOTA:

Certifique-se de que a porta esteja no estado de escuta no nó onde o pod está localizado. Caso contrário, o resultado da verificação de integridade será afetado.

delay

Não

String

Tempo de espera inicial (em segundos) para iniciar a verificação de integridade.

Intervalo de valores: 1 a 50. Valor padrão: 5

timeout

Não

String

Tempo limite de verificação de integridade, em segundos.

Intervalo de valores: 1 a 50. Valor padrão: 10

max_retries

Não

String

Número máximo de tentativas de verificação de integridade.

Intervalo de valores: 1 a 10. Valor padrão: 3

protocol

Não

String

Protocolo de verificação de integridade.

Valor padrão: protocolo do Serviço associado

Opções de valor: TCP, UDP ou HTTP

path

Não

String

URL de verificação de saúde. Este parâmetro precisa ser configurado quando o protocolo é HTTP.

Valor padrão: /

O valor pode conter de 1 a 10.000 caracteres.