Habilite o acesso de saída à Internet para pods
Aplica-se a: nós IPv4
do Fargate para Linux, nós do Linux com instâncias do Amazon EC2
Se você implantou seu cluster utilizando a família IPv6
, as informações neste tópico não serão aplicáveis a ele, pois endereços IPv6
não são convertidos na rede. Para obter mais informações sobre como usar o IPv6
com o seu cluster, consulte Saiba mais sobre endereços IPv6 para clusters, pods e serviços.
Por padrão, cada Pod em seu cluster recebe um endereço link:AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-private-addressesIPv4
de um bloco de roteamento interdomínio sem classe (CIDR) associado à VPC em que o Pod está implantado. Pods na mesma VPC se comunicam entre si usando esses endereços IP privados como endpoints. Quando um Pod se comunica com qualquer endereço IPv4
que não esteja em um bloco CIDR associado à sua VPC, o plug-in Amazon VPC CNI (para LinuxIPv4
do Pod’s para o endereço privado primário IPv4
da interface de rede elástica primária do nó em que o Pod está sendo executado, por padrão ^* ^.
nota
Para nós Windows, existem detalhes adicionais a serem considerados. Por padrão, o plug-in VPC CNI para Windows
Devido a este comportamento:
-
Os Pods poderão se comunicar com os recursos da Internet somente se o nó em que estão sendo executados tiver um endereço IP público ou elástico atribuído a ele e se estiver em uma sub-rede pública. A tabela de rotas associada a uma sub-rede pública tem uma rota para um gateway da Internet. Convém implantar nós em sub-redes privadas, sempre que possível.
-
Para versões do plug-in anteriores a
1.8.0
, os recursos que estão em redes ou VPCs conectados à VPC do cluster usando emparelhamento de VPC, uma VPC de trânsito ou AWS Direct Connect não podem iniciar a comunicação com o Pods por meio de interfaces de rede elásticas secundárias. Seus Pods podem iniciar a comunicação com esses recursos e receber respostas deles.
Se qualquer uma das declarações a seguir for verdadeira em seu ambiente, altere a configuração padrão com o comando a seguir.
-
Você tem recursos em redes ou VPCs que estão conectados à VPC do seu cluster usando peering de VPC, uma VPC de trânsito ou AWS Direct Connect que precisam iniciar a comunicação com seu Pods usando um endereço
IPv4
e sua versão de plug-in é anterior a1.8.0
. -
Os Pods estão em uma sub-rede privada e precisam se comunicar com a saída de Internet. A sub-rede tem uma rota para um gateway NAT.
kubectl set env daemonset -n kube-system aws-node AWS_VPC_K8S_CNI_EXTERNALSNAT=true
nota
As variáveis de configuração CNI AWS_VPC_K8S_CNI_EXTERNALSNAT
e AWS_VPC_K8S_CNI_EXCLUDE_SNAT_CIDRS
não são aplicáveis a nós Windows. A desativação do SNAT não tem suporte no Windows. Quanto à exclusão de uma lista de CIDRs IPv4
do SNAT, você pode definir isso especificando o parâmetro ExcludedSnatCIDRs
no script de bootstrap Windows. Para obter mais informações sobre o uso desse parâmetro, consulte Parâmetros de configuração do script de bootstrap.
Redes do host
^*^se uma especificação Pod’s contiver hostNetwork=true
(o padrão é false
), seu endereço IP não será traduzido para um endereço diferente. Este é o caso dos Pods de kube-proxy
e do Amazon VPC CNI plugin for Kubernetes, que são executados no seu cluster por padrão. Para esses Pods, o endereço IP é o mesmo que o endereço IP primário do nó e, portanto, o endereço IP do Pod’s não é convertido. Para obter mais informações sobre a configuração de hostNetwork
do Pod’s, consulte PodSpec v1 core