Por padrão, os pods do ECI recebem apenas um endereço IP privado. Para baixar imagens de um registro público, como o docker Hub, ou expor o service de um pod à Internet, forneça uma rota de acesso à Internet para o pod.
Há dois métodos disponíveis:
Associar um elastic IP address (EIP) ao pod — atribui um endereço IP público dedicado diretamente ao pod. Use este método quando um único pod precisa de seu próprio endereço público (por exemplo, para expor um service NGINX na porta 80).
Criar um Internet NAT gateway na VPC — permite que vários pods compartilhem o acesso de saída à Internet por meio de um único gateway. Use esta opção quando vários pods precisam acessar a Internet, mas não necessitam de um IP público dedicado individualmente (por exemplo, para baixar imagens do docker Hub para múltiplos pods).
Antes de ativar o acesso à Internet, certifique-se de que os endereços IP e as portas relevantes estejam liberados no grupo de segurança ao qual as instâncias pertencem. Para mais detalhes, consulte Adicionar uma regra de grupo de segurança.
Notas de uso
Cada EIP pode ser associado a apenas uma elastic container instance (ECI) por vez. Para fornecer endereços públicos próprios a vários pods, associe um EIP distinto a cada pod ou utilize um Internet NAT gateway.
As anotações só entram em vigor no momento da criação do pod ECI. Adicionar ou modificar anotações em um pod existente não surte efeito.
Para Deployments, adicione as anotações na seção
spec.template.metadata, e não nometadatade nível superior.Se um pod possuir um EIP associado, ele utilizará o EIP diretamente para o tráfego de saída, ignorando o recurso SNAT de qualquer NAT gateway na VPC.
Associe um EIP a um pod
Adicione anotações à seção metadata do pod durante a criação. É possível associar um EIP existente ou permitir que o sistema crie um automaticamente.
Crie um EIP automaticamente
Defina k8s.aliyun.com/eci-with-eip como "true" para que o sistema crie um EIP e o associe ao pod automaticamente. Configure o EIP com as seguintes anotações:
|
Anotação |
Exemplo |
Descrição |
|
|
|
Cria e associa um EIP automaticamente |
|
|
|
Largura de banda máxima em Mbit/s. Padrão: |
|
|
|
Método de medição. Valores válidos: |
|
|
|
Tipo de linha. Aplica-se apenas a EIPs com pagamento conforme o uso. Padrão: |
|
|
|
ID de um plano de largura de banda de EIP existente para associar ao EIP. Para mais detalhes, consulte What is Internet Shared Bandwidth? |
|
|
|
ID do pool de endereços IP do qual o EIP é alocado. Para mais detalhes, consulte Create and manage IP address pools |
Exemplo: criar automaticamente um EIP com largura de banda personalizada
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Creates and associates an EIP automatically
k8s.aliyun.com/eip-bandwidth: "10" # Sets the maximum bandwidth to 10 Mbit/s
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Exemplo: criar automaticamente um EIP e associá-lo a um plano de largura de banda de EIP
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Creates and associates an EIP automatically
k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****" # Associates an EIP bandwidth plan with the EIP
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Para detalhes sobre os preços do EIP, consulte Billing overview.
Crie um Internet NAT gateway
Um NAT gateway permite que os pods em uma VPC privada acessem a Internet sem um endereço IP público (SNAT) e, opcionalmente, permite que o tráfego da Internet alcance pods específicos (DNAT).
|
Recurso |
Descrição |
|
SNAT |
Permite que os pods acessem a Internet usando um EIP compartilhado. O sistema não atribui nenhum endereço IP público a pods individuais |
|
DNAT |
Mapeia um EIP associado ao NAT gateway para um pod específico, permitindo que o pod aceite tráfego de entrada da Internet |
Etapa 1: Crie um Internet NAT gateway
No VPC console, crie um Internet NAT gateway na VPC onde seus pods são executados. Para instruções passo a passo, consulte Crie e gerencie um Internet NAT gateway.
Para preços do NAT gateway, consulte Faturamento de Internet NAT gateways.
Etapa 2: Crie uma entrada SNAT (acesso de saída)
Crie uma entrada SNAT para que os pods possam iniciar conexões com a Internet. Para instruções, consulte Crie e gerencie entradas SNAT.
Preste atenção aos seguintes parâmetros:
|
Parâmetro |
Descrição |
|
Entrada SNAT |
Determina quais pods usam o SNAT. Selecione com base na topologia de rede e nos requisitos de segurança: Specify VPC (todos os pods na VPC), Specify vSwitch (pods conectados aos vSwitches selecionados) ou Specify Custom CIDR Block (pods dentro de um bloco CIDR específico) |
|
Selecione vSwitch |
Necessário quando a Entrada SNAT está definida como Specify vSwitch. Selecione os vSwitches utilizados pelos seus pods |
|
Bloco CIDR personalizado |
Necessário quando a Entrada SNAT está definida como Specify Custom CIDR Block. Insira o bloco CIDR que inclui seus pods |
|
Selecione EIP |
Selecione um ou mais EIPs associados ao NAT gateway. Os pods usam esses EIPs para acessar a Internet |
Etapa 3: Crie uma entrada DNAT (acesso de entrada)
Ignore esta etapa se seus pods precisarem apenas de acesso de saída à Internet.
Para permitir que o tráfego da Internet alcance um pod específico, crie uma entrada DNAT. Para instruções, consulte Crie e gerencie entradas DNAT.
Preste atenção aos seguintes parâmetros:
|
Parâmetro |
Descrição |
|
Selecione EIP |
Selecione o EIP associado ao NAT gateway. O tráfego de entrada chega a este EIP e é encaminhado para o pod |
|
Selecione endereço IP privado |
Identifique o pod de destino selecionando sua elastic network interface (ENI) ou insira seu endereço IP privado |
|
Configurações de porta |
Selecione o método de encaminhamento: Any Port (mapeamento de endereço IP — todo o tráfego para o EIP é encaminhado para o pod) ou Custom Port (mapeamento de porta — o tráfego em um protocolo e porta específicos é encaminhado para a porta correspondente no pod) |
Próximos passos
Para detalhes do product EIP, consulte O que é um EIP.
Para detalhes do product NAT gateway, consulte O que é o NAT Gateway.