A Source Network Address Translation (SNAT) oferece um serviço de proxy que permite o acesso à internet por recursos em uma Virtual Private Cloud (VPC) sem endereços IP públicos. Se você não configurou a SNAT durante a criação do cluster ACS, configure-a manualmente para ativar o acesso à internet nos pods.
Contexto
O Internet NAT Gateway é um serviço de tradução de endereços de rede que fornece recursos de SNAT e Destination Network Address Translation (DNAT). Para mais informações, consulte Internet NAT Gateway e Faturamento do NAT Gateway.
Se os pods do cluster precisarem de acesso à internet, como para baixar imagens de um registro público, crie um Internet NAT Gateway na VPC do cluster e configure uma entrada SNAT. Essa configuração permite que todos os pods do cluster acessem a internet.
Se apenas um pod específico precisar de acesso à internet, associe um elastic IP address (EIP) diretamente a ele. Para obter instruções, consulte Associar um EIP a um pod usando annotations.
Procedimento
Siga estas etapas para configurar a SNAT em um cluster existente e ativar o acesso à internet.
Ao criar um cluster ACS, em Configure SNAT, selecione Configure SNAT for VPC. O sistema configura automaticamente a SNAT para o cluster.
Faça login no console do NAT Gateway.
-
Crie um Internet NAT Gateway.
Clique em Create Internet NAT Gateway.
-
Configure os parâmetros do NAT gateway, clique em Buy Now e conclua a compra.
A tabela a seguir descreve os principais parâmetros. Para mais informações, consulte Internet NAT Gateway.
Parâmetro
Descrição
Region , VPC
Selecione a região e a VPC correspondentes ao seu cluster.
Access Mode
Escolha um modo com base na arquitetura de rede e nos requisitos de segurança. Este tópico usa Configure Later como exemplo.
NotaSelecione Configure Later se não quiser que todos os recursos da VPC acessem a internet. Por exemplo, essa opção é recomendada se a VPC contiver vSwitches não utilizados pelo cluster.
-
SNAT-enabled Mode : Ao selecionar este modo, especifique um EIP para associar ao NAT gateway. O sistema cria automaticamente uma entrada SNAT no nível da VPC.
-
Configure Later : Neste modo, associe manualmente um EIP e crie uma entrada SNAT.
-
-
Associe um EIP ao NAT gateway.
Se você selecionou SNAT-enabled Mode ao criar o NAT gateway, um EIP já está associado. Pule esta etapa.
Na página Internet NAT Gateway, localize o NAT gateway desejado. Na coluna Actions, clique em no ícone e selecione Associate with EIP.
Na caixa de diálogo, configure o EIP e clique em OK.
-
Crie uma entrada SNAT.
Se você selecionou SNAT-enabled Mode durante a criação do NAT gateway, já existe uma entrada SNAT no nível da VPC. Pule esta etapa.
Na página Internet NAT Gateway, clique em no ID do NAT gateway de destino.
Clique em na aba SNAT e, em seguida, clique em Create SNAT Entry.
-
Configure a entrada SNAT e clique em OK.
A tabela a seguir descreve os principais parâmetros. Para mais informações, consulte Criar e gerencie entradas SNAT.
Parâmetro
Descrição
SNAT Entry
Defina a granularidade conforme sua arquitetura de rede e requisitos de segurança. Recomendamos selecionar Specify vSwitch.
Select vSwitch
Se você definiu SNAT Entry como Specify vSwitch, selecione o vSwitch utilizado pelo cluster.
Você encontra o ID do vSwitch na página Cluster Information do cluster ACS, na aba Cluster Resources.
Select EIP
Selecione o EIP associado ao NAT gateway.
-
Confirme a configuração do NAT gateway.
Verifique se o NAT gateway e o cluster estão na mesma VPC e se há um EIP associado ao NAT gateway.
-
Verifique a entrada SNAT para confirmar que ela está vinculada ao vSwitch usado pelo cluster.
Na lista de entradas SNAT, o status Available na coluna Status indica que o vSwitch foi vinculado com sucesso.
Verificação
-
Método 1: Crie um pod que utilize uma imagem de um registro público. Confirme se a imagem foi baixada e se o pod foi criado com êxito.
Na aba Events do pod
test-pod, um evento Normal com uma mensagem comoSuccessfully pulled image "centos:7" in 16.902sindica que a imagem foi obtida corretamente do registro público. -
Método 2: A partir de um pod no cluster, execute o comando
pingpara acessar um endereço público da internet. Verifique se o endereço está acessível e se não há perda de pacotes.Exemplo:
:~$ kubectl get pod NAME READY STATUS RESTARTS AGE test-pod 1/1 Running 0 24m :~$ kubectl exec -it test-pod -- bash [root@test-pod /]# ping aliyun.com -c 2 PING aliyun.com (140.205.60.46) 56(84) bytes of data. 64 bytes from 140.205.60.46 (140.205.60.46): icmp_seq=1 ttl=95 time=4.99 ms 64 bytes from 140.205.60.46 (140.205.60.46): icmp_seq=2 ttl=95 time=4.81 ms --- aliyun.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 4.813/4.905/4.997/0.092 ms