Por padrão, uma instância de contêiner elástica possui apenas um endereço IP privado. Para ative o acesso à internet — por exemplo, para baixar uma imagem de contêiner de um registro público — associe um Elastic IP Address (EIP) à instância adicionando anotações ao seu Serviço Knative.
Pré-requisitos
Antes de começar, verifique se você tem:
O Knative implantado no seu cluster ACK. Consulte Implantar o Knative
Métodos de acesso à internet
Existem dois métodos para ative o acesso à internet em uma instância de contêiner elástica:
|
Método |
Funcionamento |
Quando usar |
|
Associar um EIP à instância de contêiner elástica |
Atribui um IP público diretamente a uma única instância |
Habilite o acesso público para uma instância individual — único método suportado no Knative |
|
Associar um EIP a um NAT gateway |
Roteia o tráfego de saída por um gateway compartilhado (adquirido separadamente) para todas as instâncias na Virtual Private Cloud (VPC) |
Permita o acesso à internet para múltiplas instâncias em toda a VPC |
O Knative suporta apenas o primeiro método. Para permitir o acesso à internet em uma instância de contêiner elástica que executa um Serviço Knative, associe um EIP diretamente a essa instância.
Para mais informações sobre como ative o acesso à internet para instâncias de contêiner elásticas, consulte Habilitar acesso à internet.
Anotações suportadas
Adicione as seguintes anotações ao campo spec.template.metadata.annotations do seu Serviço Knative para configure o EIP.
|
Anotação |
Descrição |
Padrão |
|
|
O ID de um EIP existente a ser associado |
— |
|
|
Defina como |
— |
|
|
Largura de banda máxima para o EIP criado automaticamente, em Mbit/s |
|
|
|
O ID de um plano de largura de banda de EIP para associar ao EIP criado automaticamente |
— |
|
|
Tipo de linha do EIP criado automaticamente. Valores válidos: |
— |
Associar um EIP a um Serviço Knative
Escolha uma das configurações abaixo com base no seu cenário.
Usar um EIP existente
Adicione a anotação k8s.aliyun.com/eci-eip-instanceid e defina seu valor como o ID do EIP que você deseja associar.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
spec:
template:
metadata:
labels:
app: helloworld-go
annotations:
k8s.aliyun.com/eci-eip-instanceid: "eip-bp1q5n8cq4p7f6dzu****" # ID of the existing EIP to associate
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
Criar um novo EIP com limite de largura de banda
Defina k8s.aliyun.com/eci-with-eip como "true" para crie um EIP automaticamente. Utilize k8s.aliyun.com/eip-bandwidth para especificar a largura de banda máxima. Se omitido, a largura de banda padrão será de 5 Mbit/s.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
spec:
template:
metadata:
labels:
app: helloworld-go
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Create and associate a new EIP automatically
k8s.aliyun.com/eip-bandwidth: "10" # Maximum bandwidth in Mbit/s; omit to use the default of 5
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
Criar um novo EIP e anexar um plano de largura de banda de EIP
Utilize k8s.aliyun.com/eip-common-bandwidth-package-id para associar o EIP criado automaticamente a um plano de largura de banda de EIP existente. Isso permite compartilhar a capacidade de largura de banda entre vários EIPs no mesmo plano.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
spec:
template:
metadata:
labels:
app: helloworld-go
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Create and associate a new EIP automatically
k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****" # ID of the EIP bandwidth plan to attach
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56