Ir para o conteúdo

Como adiciono novas sub-redes a um cluster existente do Amazon EKS?

4 minuto de leitura
0

Quero adicionar novas sub-redes ao ambiente de gerenciamento do cluster do Amazon Elastic Kubernetes Service (Amazon EKS).

Breve descrição

Se você adicionar sub-redes a novas zonas de disponibilidade ou remover sub-redes das zonas de disponibilidade existentes, poderá receber uma mensagem de erro semelhante à seguinte:

“An error occurred (InvalidParameterException) when calling the UpdateClusterConfig operation: Provided subnets belong to the AZs “us-west-2a,us-west-2c,us-west-2d”. But they should belong to the exact set of AZs “us-west-2a,us-west-2c” in which subnets were provided during cluster creation.”

Suas sub-redes devem estar no mesmo conjunto de zonas de disponibilidade que a AWS escolheu para você quando você criou o cluster. As sub-redes também devem estar na mesma Amazon Virtual Private Cloud (Amazon VPC) que a AWS forneceu quando você criou o cluster. A VPC deve ter endereços IP disponíveis em quantidade suficiente para o cluster. Para obter mais informações, consulte Criar uma sub-rede e requisitos e considerações sobre VPC.

Resolução

Para modificar sub-redes de cluster do Amazon EKS, é possível usar o console do Amazon EKS, a AWS CLI ou a eksctl CLI.

Use o console do Amazon EKS

Conclua as seguintes etapas:

  1. Abra o console do Amazon EKS.
  2. No painel de navegação, escolha Cluster.
  3. Selecione Rede e, em seguida, escolha Gerenciar recursos de VPC.
  4. No menu Sub-redes, selecione as sub-redes a serem adicionadas.
  5. Selecione Salvar.
  6. Na seção Rede, confirme se as sub-redes foram adicionadas.

Use a AWS CLI

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

O comando da AWS CLI substitui as sub-redes de cluster existentes pelas sub-redes que você inclui no comando. Para adicionar sub-redes, especifique as sub-redes existentes e as sub-redes adicionais.

  1. Execute o comando describe-subnets para identificar as zonas de disponibilidade que você configurou para seu cluster EKS:

    aws ec2 describe-subnets --subnet-ids $(aws eks describe-cluster --name your-cluster-name --query 'cluster.resourcesVpcConfig.subnetIds' --output text) --query 'Subnets[*].AvailabilityZone'

    Observação: substitua your-cluster-name pelo nome do seu cluster e os exemplos de IDs de sub-rede por seus IDs de sub-rede.
    Exemplo de saída:

    [
        "us-west-2c",
        "us-west-2d",
        "us-west-2a"
    ]
  2. Execute o comando update-cluster-config para atualizar as sub-redes ambiente de gerenciamento do cluster:

    aws eks update-cluster-config --name your-cluster-name \
    --resources-vpc-config subnetIds=subnet-1234,subnet-5678,subnet-9101

    Observação: substitua your-cluster-name pelo nome do cluster e os exemplos de IDs de sub-rede por seus IDs de sub-rede. Ao adicionar novas sub-redes, certifique-se de representar cada zona de disponibilidade do conjunto original por pelo menos uma sub-rede. Para manter uma sub-rede existente em uma zona de disponibilidade, inclua a sub-rede no comando.
    O exemplo a seguir obtém as zonas de disponibilidade atuais do cluster EKS e adiciona novas sub-redes às zonas existentes. O comando update-cluster-config inclui as sub-redes originais e novas para manter a configuração da zona de disponibilidade do cluster e expandir as sub-redes em cada zona:

    aws eks describe-cluster --name gpusharing-demo --query 'cluster.resourcesVpcConfig.subnetIds'
    [
        "subnet-03d59dfc8d9380b4c",
        "subnet-0c4f51f27d109fa32",
        "subnet-037b42db1a08da5ae"
    ]
    
    aws eks update-cluster-config --name gpusharing-demo --resources-vpc-config subnetIds=subnet-xxxxxxx80b4c,subnet-xxxxxxx8da5ae,subnet-xxxxxxx9fa32,subnet-xxxxxxee3bb,subnet-xxxxxxa761ac,subnet-xxxxxxde8b8
    {
    "update": {
    "id": "e7ed1fbf-01ab-3472-8204-149cdc3337be",
    "status": "InProgress",
    "type": "VpcConfigUpdate",
    "params": [
    {
    "type": "Subnets",
    "value": "[subnet-xxxxxxx80b4c, subnet-xxxxxxx8da5ae, subnet-xxxxxxxx9fa32, subnet-xxxxxxxee3bb, subnet-xxxxxxxxa761ac, subnet-xxxxxxde8b8]"
    }
    ],
    "createdAt": "2024-09-09T18:06:16.493000+00:00",
    "errors": []
    }
    }

Use a CLI eksctl

O comando eksctl CLI substitui as sub-redes de cluster existentes pelas sub-redes que você inclui no comando. Para adicionar sub-redes, especifique as sub-redes existentes e as sub-redes adicionais.

Execute o seguinte comando eksctl para atualizar as sub-redes do ambiente de gerenciamento do cluster:

eksctl utils update-cluster-vpc-config --cluster=your-cluster-name \
--control-plane-subnet-ids=subnet-1234,subnet-5678 --approve

O exemplo de saída a seguir mostra que o cluster foi atualizado para uma sub-rede para cada zona de disponibilidade:

eksctl utils update-cluster-vpc-config --cluster=gpusharing-demo  --control-plane-subnet-ids=subnet-03d59dfc8d9380b4c,subnet-0c4f51f27d109fa32,subnet-037b42db1a08da5ae --approve
2024-09-09 18:23:54 [ℹ]  using region us-west-2
2024-09-09 18:23:54 [ℹ]  will update control plane subnet IDs for cluster "gpusharing-demo" in "us-west-2" to: [subnet-xxxxxxx80b4c subnet-xxxxxxx9fa32 subnet-xxxxxx8da5ae]
2024-09-09 18:32:07 [✔]  control plane subnets and security groups for cluster "gpusharing-demo" in "us-west-2" have been updated to: controlPlaneSubnetIDs=[subnet-xxxxxxx80b4c subnet-xxxxxxxx9fa32 subnet-xxxxxxxx8da5ae], controlPlaneSecurityGroupIDs=[sg-xxxxx31d2]

Para usar o arquivo config.yaml para atualizar sub-redes, execute o seguinte comando:

eksctl utils update-cluster-vpc-config -f config.yaml

Exemplo de saída:

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: cluster
  region: us-west-2

vpc:
  controlPlaneSubnetIDs: [subnet-1234, subnet-5678, subnet-9101]
  controlPlaneSecurityGroupIDs: [sg-1234, sg-5678]

Informações relacionadas:

Flexibilidade aprimorada da VPC: modifique sub-redes e grupos de segurança no Amazon EKS

Atualizando sub-redes e grupos de segurança do ambiente de gerenciamento no site do eksctl

AWS OFICIALAtualizada há um ano