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.
Atualizado em 2024-11-28 GMT+08:00

Configuração de um endereço IP estático para um pod

Cenários

No Cloud Native Network 2.0, cada pod é associado a uma ENI, fornecendo um endereço IP estático aos pods do StatefulSet (ENI de contêiner). Essa é uma prática comum no controle de acesso, registro de serviços, descoberta de serviços e auditoria de registros de endereços IP estáticos.

Por exemplo, se um serviço StatefulSet precisa controlar o acesso de um banco de dados em nuvem, você pode corrigir o endereço IP do pod do serviço e configurar o grupo de segurança do banco de dados em nuvem para permitir que apenas o endereço IP do serviço acesse o banco de dados.

Restrições

  • Você pode configurar um endereço IP estático para um pod somente em clusters do CCE Turbo das seguintes versões:
    • v1.23: v1.23.7-r0 ou mais recente
    • v1.25: v1.25.3-r0 ou mais recente
    • v1.25 ou mais recente
  • Atualmente, apenas pods de StatefulSet ou pods sem ownerReferences podem ser configuradas com endereços IP estáticos. As Implementações, os DaemonSets e outros tipos de cargas de trabalho não podem ser configurados com endereços IP estáticos. Além disso, pods com HostNetwork não podem ser configurados com endereços IP estáticos.
  • Não configure endereços IP estáticos para serviços que não tenham requisitos específicos para endereços IP de pod. Caso contrário, a reconstrução do pod leva mais tempo e o uso do endereço IP diminui.
  • As anotações do endereço IP estático do objeto pod não podem ser modificadas diretamente. Caso contrário, a modificação não terá efeito em segundo plano. Para modificar as anotações, modifique a configuração de annotations no campo spec.template da carga de trabalho de StatefulSet correspondente.
  • Se não houver ENIs no nó em que o pod com um endereço IP estático é reconstruído e agendado (as ENIs pré-vinculadas também ocupam a cota de ENIs), as ENIs de endereço IP estático antecipam os ENIs pré-vinculadas. Neste caso, a pod começa um pouco lentamente. Se um nó usar um endereço IP estático, configure adequadamente a política de pré-vinculação dinâmica para o nó para garantir que nem todas as ENIs sejam pré-vinculadas.

Usar o kubectl

Você pode adicionar anotações a um StatefulSet para ativar ou desativar a função de endereço IP estático do pod.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nginx
spec:
  serviceName: nginx
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
      annotations:
        pod.alpha.kubernetes.io/initialized: 'true'
        yangtse.io/static-ip: 'true'
        yangtse.io/static-ip-expire-no-cascading: 'false'
        yangtse.io/static-ip-expire-duration: 5m
    spec:
      containers:
        - name: container-0
          image: nginx:alpine
          resources:
            limits:
              cpu: 100m
              memory: 200Mi
            requests:
              cpu: 100m
              memory: 200Mi
      imagePullSecrets:
        - name: default-secret
Tabela 1 Anotações do endereço IP estático do pod

Anotação

Valor padrão

Descrição

Intervalo de valor

yangtse.io/static-ip

false

Especifica se o endereço IP estático de um pod deve ser ativado. Esta função é suportada apenas para pods de StatefulSet ou pods sem ownerReferences. Esta função está desativada por padrão.

false ou true

yangtse.io/static-ip-expire-duration

5m

Especifica o intervalo para recuperar a ENI expirada do endereço IP estático depois que o pod com um endereço IP estático for excluído.

O formato de tempo é Go time type, por exemplo, 1h30m e 5m. Para obter detalhes, consulte Go time type.

yangtse.io/static-ip-expire-no-cascading

false

Especifica se deve desativar a recuperação em cascata de cargas de trabalho do StatefulSet.

O valor padrão é false, indicando que o endereço IP estático da ENI correspondente será excluído com a carga de trabalho StatefulSet. Se quiser manter o endereço IP estático de um novo StatefulSet com o mesmo nome durante o intervalo para recuperar a ENI expirada, defina o valor como true.

false ou true