Criar uma VPC para o cluster do Amazon EKS - Amazon EKS

Criar uma VPC para o cluster do Amazon EKS

Você pode usar a Amazon Virtual Private Cloud (Amazon VPC) para iniciar recursos da AWS em uma rede virtual definida por você. Essa rede virtual é muito semelhante a uma rede tradicional que pode ser operada no seu próprio datacenter. Porém, ela vem com os benefícios do uso da infraestrutura escalável da Amazon Web Services. É recomendável ter uma profunda compreensão do serviço Amazon VPC antes de implantar clusters do Amazon EKS em ambientes de produção. Para obter mais informações, consulte o Manual do usuário da Amazon VPC.

Um cluster, os nós e os recursos do Kubernetes do Amazon EKS são implantados em uma VPC. Se quiser utilizar uma VPC existente com o Amazon EKS, essa VPC deverá atender aos requisitos descritos em Requisitos e considerações sobre a VPC e a sub-rede do Amazon EKS. Este tópico descreve como criar uma VPC que atende aos requisitos do Amazon EKS utilizando um modelo AWS CloudFormation fornecido pelo Amazon EKS. Depois de implantar um modelo, você pode visualizar os recursos criados por ele para saber exatamente quais recursos foram criados e a configuração desses recursos.

Pré-requisito

Para criar uma VPC para o Amazon EKS, é necessário ter as permissões do IAM necessárias para criar recursos da Amazon VPC. Esses recursos são VPCs, sub-redes, grupos de segurança, tabelas e rotas de rotas e gateways da Internet e de NAT. Para obter mais informações, consulte Criar uma VPC com uma política de exemplo de sub-rede pública, no Guia do usuário da Amazon VPC, e a lista completa de Ações, recursos e chaves de condição do Amazon EC2, na Referência de autorização do serviço.

É possível criar uma VPC com sub-redes públicas e privadas, somente sub-redes públicas ou somente sub-redes privadas.

Public and private subnets

Essa VPC tem duas sub-redes públicas e duas privadas. A tabela de rotas associada a uma sub-rede pública tem uma rota para um gateway da Internet. Porém, a tabela de rotas de uma sub-rede privada não tem uma rota para um gateway da Internet. Uma sub-rede pública e uma privada são implantadas na mesma zona de disponibilidade. As outras sub-redes públicas e privadas são implantadas em uma segunda zona de disponibilidade na mesma Região da AWS. Recomendamos essa opção para a maioria das implantações.

Com essa opção, é possível implantar nós em sub-redes privadas. Essa opção permite que o Kubernetes implante balanceadores de carga nas sub-redes públicas que podem balancear a carga de tráfego para os Pods que são executados em nós nas sub-redes privadas. Endereços IPv4 públicos são atribuídos automaticamente a nós implantados em sub-redes públicas, mas endereços IPv4 públicos não são atribuídos a nós implantados a sub-redes privadas.

Você também pode atribuir endereços IPv6 a nós em sub-redes públicas e privadas. Os nós em sub-redes privadas podem se comunicar com o cluster e outros Serviços da AWS. Pods podem se comunicar com a Internet por meio de um gateway de NAT usando endereços IPv4 ou de um gateway da Internet somente de saída usando endereços IPv6 implantados em cada zona de disponibilidade. É implantado um grupo de segurança com regras que negam todo o tráfego de entrada de origens diferentes do cluster ou dos nós, mas permite todo o tráfego de saída. As sub-redes são marcadas para que o Kubernetes possa implantar nelas balanceadores de carga.

Para criar a VPC
  1. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Na barra de navegação, selecione uma Região da AWS que seja compatível com o Amazon EKS.

  3. Escolha Create stack (Criar pilha), With new resources (Com novos recursos (padrão)).

  4. Em Prerequisite - Prepare template, (Pré-requisito: preparar o modelo), certifique-se de que a opção Template is ready (O modelo está pronto) esteja selecionada. Em seguida, em Specify template (Especificar modelo), selecione Amazon S3 URL. (URL do Simple Storage Service [Amazon S3]).

  5. É possível criar uma VPC que ofereça suporte somente a IPv4 ou uma VPC que ofereça suporte a IPv4 e a IPv6. Cole um dos seguintes URLs na área de texto em Amazon S3 URL (URL do Amazon S3) e escolha Next (Próximo):

    • IPv4

      https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
    • IPv4 e IPv6

      https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-ipv6-vpc-public-private-subnets.yaml
  6. Na página Specify stack details (Especificar detalhes da pilha), insira os parâmetros e escolha Next (Próximo).

    • Stack name (Nome da pilha): escolha um nome de pilha para a pilha do AWS CloudFormation. Por exemplo, você pode usar o nome do modelo empregado na etapa anterior. O nome só pode conter caracteres alfanuméricos (sensíveis a maiúsculas e minúsculas) e hifens. Ele deve começar com um caractere alfabético e não pode ter mais de 100 caracteres.

    • VpcBlock: escolha um intervalo de CIDR IPv4 para a sua VPC. Cada nó, Pod e balanceador de carga implantado recebe um endereço IPv4 desse bloco. Os valores padrão de IPv4 fornecem endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-los. Para obter mais informações, consulte VPC and subnet sizing (Dimensionamento da VPC e da sub-rede) no Guia do usuário da Amazon VPC. Você também pode adicionar blocos CIDR adicionais à VPC depois que ela for criada. Se estiver criando uma VPC IPv6, os intervalos de CIDR IPv6 serão automaticamente atribuídos a você no espaço do endereço unicast global da Amazon.

    • PublicSubnet01Block: especifique um bloco CIDR IPv4 para a sub-rede pública 1. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo. Se você estiver criando uma VPC IPv6, esse bloco será especificado para você no modelo.

    • PublicSubnet02Block: especifique um bloco CIDR IPv4 para a sub-rede pública 2. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo. Se você estiver criando uma VPC IPv6, esse bloco será especificado para você no modelo.

    • PrivateSubnet01Block: especifique um bloco CIDR IPv4 para a sub-rede privada 1. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo. Se você estiver criando uma VPC IPv6, esse bloco será especificado para você no modelo.

    • PrivateSubnet02Block: especifique um bloco CIDR IPv4 para a sub-rede privada 2. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo. Se você estiver criando uma VPC IPv6, esse bloco será especificado para você no modelo.

  7. (Opcional) Na página Configure stack options (Configurar opções de pilha), etiquete os seus recursos de pilha e, em seguida, escolha Next (Próximo).

  8. Na página Review (Revisão), escolha Create stack (Criar pilha).

  9. Quando a pilha estiver criada, selecione-a no console e escolha Outputs (Saídas).

  10. Registre o VpcId para a VPC que foi criada. Você precisará disso ao criar seu cluster e nós.

  11. Registre os SubnetIds para as sub-redes que foram criadas e se você as criou como sub-redes públicas ou privadas. É necessário pelo menos dois deles ao criar seu cluster e os nós.

  12. Se você criou uma VPC IPv4, ignore essa etapa. Se você criou uma VPC IPv6, será necessário habilitar a opção de atribuição automática de endereço IPv6 para as sub-redes públicas criadas pelo modelo. Essa configuração já está habilitada para as sub-redes privadas. Conclua as etapas a seguir para habilitar as configurações:

    1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

    2. No painel de navegação à esquerda, escolha Subnets (Sub-redes).

    3. Selecione uma de suas sub-redes públicas (stack-name/SubnetPublic01 ou stack-name/SubnetPublic02, que contêm a palavra public) e escolha Actions (Ações) e, em seguida, Edit subnet settings (Editar configurações de sub-redes).

    4. Escolha a opção Habilitar atribuição automática do endereço IPv6 e clique em Salvar.

    5. Conclua as etapas anteriores novamente para a sua outra sub-rede pública.

Only public subnets

Esta VPC tem três sub-redes públicas que são implantadas em zonas de disponibilidade diferentes em uma Região da AWS. Todos os nós recebem endereços IPv4 públicos automaticamente e podem enviar e receber tráfego de Internet por meio de um gateway da Internet. É implantado um grupo de segurança que nega todo o tráfego de entrada e permite todo o tráfego de saída. As sub-redes são marcadas para que o Kubernetes possa implantar nelas balanceadores de carga.

Para criar a VPC
  1. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Na barra de navegação, selecione uma Região da AWS que seja compatível com o Amazon EKS.

  3. Escolha Create stack (Criar pilha), With new resources (Com novos recursos (padrão)).

  4. Em Prepare template (Preparar o template), verifique se a opção Template is ready (O template está pronto) está selecionada e, em Template source (Origem do template), selecione Amazon S3 URL (URL do Amazon S3).

  5. Cole o seguinte URL na área de texto em Amazon S3 URL (URL do Amazon S3) e escolha Next (Próximo):

    https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-sample.yaml
  6. Na página Specify Details (Especificar detalhes), insira os parâmetros e escolha Next (Próximo).

    • Stack name (Nome da pilha): escolha um nome de pilha para a pilha do AWS CloudFormation. Por exemplo, você pode chamar de amazon-eks-vpc-sample. O nome só pode conter caracteres alfanuméricos (sensíveis a maiúsculas e minúsculas) e hifens. Ele deve começar com um caractere alfabético e não pode ter mais de 100 caracteres.

    • VpcBlock: escolha um bloco CIDR para a VPC. Cada nó, Pod e balanceador de carga implantado recebe um endereço IPv4 desse bloco. Os valores padrão de IPv4 fornecem endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-los. Para obter mais informações, consulte VPC and subnet sizing (Dimensionamento da VPC e da sub-rede) no Guia do usuário da Amazon VPC. Você também pode adicionar blocos CIDR adicionais à VPC depois que ela for criada.

    • Subnet01Block: especifique um bloco CIDR para a sub-rede 1. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo.

    • Subnet02Block: especifique um bloco CIDR para a sub-rede 2. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo.

    • Subnet03Block: especifique um bloco CIDR para a sub-rede 3. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo.

  7. (Opcional) Na página Options (Opções), marque os recursos da pilha. Escolha Next (Próximo).

  8. Na página Review (Revisar), escolha Create (Criar).

  9. Quando a pilha estiver criada, selecione-a no console e escolha Outputs (Saídas).

  10. Registre o VpcId para a VPC que foi criada. Você precisará disso ao criar seu cluster e nós.

  11. Registre os SubnetIds para as sub-redes que foram criadas. É necessário pelo menos dois deles ao criar seu cluster e os nós.

  12. (Opcional) Todos os clusters que você implantar nessa VPC podem atribuir endereços IPv4 privados aos seus Pods e services. Se quiser implantar clusters nessa VPC para atribuir endereços IPv6 privados aos seus Pods e services, faça atualizações na VPC, na sub-rede, em tabelas de rotas e em grupos de segurança. Para obter mais informações, consulte Migrar VPCs existentes de IPv4 para IPv6, no Guia do usuário da Amazon VPC. O Amazon EKS exige que as suas sub-redes stejam com a opção de Auto-assign de endereços IPv6 habilitada. Por padrão, ele está desabilitado.

Only private subnets

Esta VPC tem três sub-redes privadas que são implantadas em zonas de disponibilidade diferentes na Região da AWS. Os recursos implantados nas sub-redes não podem acessar a Internet, nem a internet pode acessar os recursos nas sub-redes. O modelo cria endpoints de VPC utilizando o AWS PrivateLink para vários Serviços da AWS que os nós normalmente precisam acessar. Se seus nós precisarem de acesso à Internet de saída, você poderá adicionar um gateway de NAT público na Zona de disponibilidade de cada sub-rede após a criação da VPC. É criado um grupo de segurança que nega todo o tráfego de entrada, exceto de recursos implantados nas sub-redes. Um grupo de segurança também permite todo o tráfego de saída. As sub-redes são marcadas para que o Kubernetes possa implantar nelas balanceadores de carga internos. Se estiver criando uma VPC com essa configuração, consulte Requisitos de clusters privados para conhecer requisitos e considerações adicionais.

Para criar a VPC
  1. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Na barra de navegação, selecione uma Região da AWS que seja compatível com o Amazon EKS.

  3. Escolha Create stack (Criar pilha), With new resources (Com novos recursos (padrão)).

  4. Em Prepare template (Preparar o template), verifique se a opção Template is ready (O template está pronto) está selecionada e, em Template source (Origem do template), selecione Amazon S3 URL (URL do Amazon S3).

  5. Cole o seguinte URL na área de texto em Amazon S3 URL (URL do Amazon S3) e escolha Next (Próximo):

    https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-fully-private-vpc.yaml
  6. Na página Specify Details (Especificar detalhes), insira os parâmetros e escolha Next (Próximo).

    • Stack name (Nome da pilha): escolha um nome de pilha para a pilha do AWS CloudFormation. Por exemplo, você pode chamar de amazon-eks-fully-private-vpc. O nome só pode conter caracteres alfanuméricos (sensíveis a maiúsculas e minúsculas) e hifens. Ele deve começar com um caractere alfabético e não pode ter mais de 100 caracteres.

    • VpcBlock: escolha um bloco CIDR para a VPC. Cada nó, Pod e balanceador de carga implantado recebe um endereço IPv4 desse bloco. Os valores padrão de IPv4 fornecem endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-los. Para obter mais informações, consulte VPC and subnet sizing (Dimensionamento da VPC e da sub-rede) no Guia do usuário da Amazon VPC. Você também pode adicionar blocos CIDR adicionais à VPC depois que ela for criada.

    • PrivateSubnet01Block: especifique um bloco CIDR para a sub-rede 1. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo.

    • PrivateSubnet02Block: especifique um bloco CIDR para a sub-rede 2. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo.

    • PrivateSubnet03Block: especifique um bloco CIDR para a sub-rede 3. O valor padrão fornece endereços IP suficientes para a maioria das implementações, mas se isso não acontecer, você poderá alterá-lo.

  7. (Opcional) Na página Options (Opções), marque os recursos da pilha. Escolha Next (Próximo).

  8. Na página Review (Revisar), escolha Create (Criar).

  9. Quando a pilha estiver criada, selecione-a no console e escolha Outputs (Saídas).

  10. Registre o VpcId para a VPC que foi criada. Você precisará disso ao criar seu cluster e nós.

  11. Registre os SubnetIds para as sub-redes que foram criadas. É necessário pelo menos dois deles ao criar seu cluster e os nós.

  12. (Opcional) Todos os clusters que você implantar nessa VPC podem atribuir endereços IPv4 privados aos seus Pods e services. Se quiser implantar clusters nessa VPC para atribuir endereços IPv6 privados aos seus Pods e services, faça atualizações na VPC, na sub-rede, em tabelas de rotas e em grupos de segurança. Para obter mais informações, consulte Migrar VPCs existentes de IPv4 para IPv6, no Guia do usuário da Amazon VPC. O Amazon EKS exige que as suas sub-redes stejam com a opção de Auto-assign de endereços IPv6 habilitada (é desabilitada por padrão).