Neste documento, mostramos como rotear o tráfego do GKE na AWS por meio de um proxy HTTP/HTTPS. Você especifica a configuração do proxy ao criar um cluster.
Visão geral
O GKE na AWS pode rotear o tráfego de saída da Internet por um proxy pelos seguintes motivos:
- Para registrar clusters com Google Cloud no Connect
- Executar o agente do Connect
- Para fazer o download de imagens do Container Registry
Limitações
- Os campos
httpProxy
ehttpsProxy
não são compatíveis com URLs que começam comhttps://
. Você precisa usarhttp://
. As solicitações para a porta 443 usam HTTPS. - Defina valores para
httpProxy
,httpsProxy
enoProxy
. - Talvez seja necessário adicionar outros domínios, IPs ou CIDRs ao
campo
noProxy
. Recomendamos adicionar o intervalo de IP da VPC. A partir da versão 1.22 do Google Kubernetes Engine, o GKE na AWS adiciona automaticamente o CIDR de endereço de pod e o CIDR de endereço de serviço.
Pré-requisitos
Nesta seção, descrevemos os pré-requisitos que você precisa aplicar antes de usar um proxy.
Ativar endpoints da VPC
Antes de configurar um proxy, é preciso criar endpoints de VPC para a instalação do GKE na AWS.
Os endpoints de VPC permitem que os recursos em sub-redes particulares acessem serviços da AWS sem acesso público à Internet.
A tabela a seguir lista os serviços do AWS para os quais o GKE na AWS exige endpoints VPC, juntamente com o tipo de endpoint e os grupos de segurança que exigem acesso ao endpoint.
Serviço | Tipo de endpoint | Grupos de segurança |
---|---|---|
Escalonamento automático | Interface | Plano de controle, pools de nós |
EC2 | Interface | Plano de controle, pools de nós |
EFS | Interface | Plano de controle |
Balanceamento de carga | Interface | Plano de controle, pools de nós |
Serviço de gerenciamento de chaves | Interface | Plano de controle, pools de nós |
S3 | Gateway | Plano de controle, pools de nós |
Gerenciador de secrets | Interface | Plano de controle, pools de nós |
Serviço de token de segurança (STS) | Interface | Plano de controle, pools de nós |
É possível criar endpoints a partir do Console da VPC da AWS. As opções definidas durante a criação de endpoints da VPC dependem da configuração da VPC.
Definir um grupo de segurança
O GKE na AWS precisa se conectar ao servidor
proxy para fazer o download de componentes de software. Crie ou localize um grupo de
segurança da AWS
que permita conexões de saída com seu servidor proxy. O grupo de segurança permite acesso de saída dos grupos de segurança de gerenciamento, plano de controle e pool de nós para o endereço e a porta do proxy. Salve o código deste grupo de segurança (por exemplo, sg-12345678
).
Tipo | Protocolo | Da porta | Para fazer a portabilidade | Address |
---|---|---|---|---|
Saída | TCP | Porta do proxy: | Porta do proxy: | Grupo de segurança de proxy |
Lista de permissões de proxy
Para que o GKE na AWS se conecte aos serviços do Google Cloud, o servidor proxy precisa permitir o tráfego para os seguintes domínios:
.gcr.io
cloudresourcemanager.googleapis.com
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
storage.googleapis.com
sts.googleapis.com
www.googleapis.com
servicecontrol.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
opsconfigmonitoring.googleapis.com
GCP_LOCATION-gkemulticloud.googleapis.com
Substitua GCP_LOCATION
pela Google Cloud região em
que o cluster do GKE Enterprise reside. Especifique us-west1
ou outra
região compatível.
Atualizar papéis do IAM da AWS
Para que o GKE na AWS leia a configuração de proxy do AWS Secrets Manager,
adicione o secretsmanager:GetSecretValue
ao
papel do plano de controle
e ao papel do pool de nós do cluster.
Para adicionar essa permissão, adicione-a ao plano de controle e à política do pool de nós. Para mais informações, consulte Como editar políticas do IAM.
Criar um arquivo de configuração de proxy
A configuração do proxy é armazenada em um secret do AWS Secrets Manager como uma string JSON.
É possível passar essa configuração para a ferramenta de linha de comando aws
como um
arquivo. Esta seção descreve como criar esse arquivo.
A tabela a seguir descreve o conteúdo desse arquivo.
Field | Descrição | Exemplos | Valor |
---|---|---|---|
httpProxy |
Um URL do servidor proxy. O valor precisa incluir um nome do host/endereço IP e, opcionalmente, uma porta, nome de usuário e senha. | "http://user:password@10.184.37.42:80" "10.184.37.42" |
Sim |
httpsProxy |
Um URL de proxy para tráfego HTTPS criptografado. O URL httpProxy será usado se httpsProxy tiver um valor vazio. | "http://10.101.16.31:80"
|
Yes |
noProxy |
Uma lista de URLs separados por vírgulas a serem excluídos do proxy. Cada valor pode ser um endereço IP, um intervalo CIDR, um nome de domínio ou o caractere asterisco (*). Os domínios especificados com um ponto inicial (por exemplo, ".google.com") indicam que é necessário um subdomínio. Um asterisco * ignora todas as configurações de proxy. | "1.2.3.4,10.0.0.0/16,example.com,.site.com" |
Sim |
Para criar o arquivo de configuração, crie um arquivo JSON que contenha valores para chaves
httpProxy
,noProxy
ehttpsProxy
opcionais.{ "httpProxy": "AUTHENTICATION_URL", "httpsProxy": "AUTHENTICATION_URL", "noProxy": "NO_PROXY_ADDRESSES" }
Substitua:
AUTHENTICATION_URL
: URL codificado que contém o nome de usuário do proxy e a senhaNO_PROXY_ADDRESSES
: lista separada por vírgulas de blocos CIDR e URLs, por exemplo,10.0.0.0/16,http://example.com
Salve o arquivo para usar na próxima seção.
Crie um secret com esses dados JSON como um secret no AWS Secrets Manager usando a ferramenta de linha de comando
aws
.aws secretsmanager create-secret \ --name SECRET_NAME \ --secret-string file://PROXY_CONFIGURATION_FILE
Substitua:
SECRET_NAME
: o nome do novo secretPROXY_CONFIGURATION_FILE
: o caminho para o arquivo de configuração de proxy.
A saída inclui o nome do recurso Amazon (ARN) e o conteúdo do secret. Agora você pode referir-se a esse secret ao criar um cluster.
Criar um cluster que use um proxy
Para configurar o GKE na AWS para usar um proxy HTTP para conectividade de saída, siga estas etapas:
Siga as etapas em
Criar um cluster
e transmita as sinalizações proxy-secret-arn
e proxy-secret-version-id
.
gcloud container aws clusters create CLUSTER_NAME \
--proxy-secret-arn=PROXY_SECRET_ARN \
--proxy-secret-version-id=PROXY_SECRET_VERSION \
Substitua:
CLUSTER_NAME
: o nome do cluster.PROXY_SECRET_ARN
: o ARN do secret que contém configurações de proxy, por exemplo,arn:aws::secretsmanager:us-east-2:111122223333:secret:example/ExampleSecret-jiObOV
PROXY_SECRET_VERSION
: o ID da versão dos secrets, por exemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
;
Atualizar configuração de proxy
É possível atualizar a configuração de proxy de um plano de controle de cluster ou de um pool de nós. Para atualizar o ARN da configuração de proxy, primeiro você precisa atualizar o papel do IAM do AWS ou do pool de nós do plano de controle.
Atualizar papéis do IAM da AWS
Antes de alterar o ARN em que a configuração de proxy está armazenada, você precisa confirmar se o
papel do plano de controle
e o papel do pool de nós do cluster têm acesso de leitura ao ARN secreto. Se a instrução do IAM com a
permissão secretsmanager:GetSecretValue
estiver no escopo de ARNs de recursos específicos,
adicione o novo ARN secreto a essa lista antes de atualizar a configuração de proxy.
Atualizar configuração de proxy do cluster
Para atualizar a configuração de proxy do cluster, use a CLI do Google Cloud.
gcloud container aws clusters update CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--proxy-secret-arn=PROXY_SECRET_ARN \
--proxy-secret-version-id=PROXY_SECRET_VERSION
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região Google Cloud com suporte que gerencia seu clusterPROXY_SECRET_ARN
: o ARN do secret que contém configurações de proxyPROXY_SECRET_VERSION
: o ID da versão dos secrets, por exemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
;
Atualizar configuração de proxy do pool de nós
Para atualizar a configuração de proxy do pool de nós, use a Google Cloud CLI.
gcloud container aws node-pools update NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--proxy-secret-arn=PROXY_SECRET_ARN \
--proxy-secret-version-id=PROXY_SECRET_VERSION
Substitua:
NODE_POOL_NAME
: o nome do pool de nósCLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região Google Cloud com suporte que gerencia seu clusterPROXY_SECRET_ARN
: o ARN do secret que contém configurações de proxyPROXY_SECRET_VERSION
: o ID da versão dos secrets, por exemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
;
Remover configuração de proxy
É possível remover a configuração de proxy do plano de controle ou dos pools de nós do cluster. Essas operações são independentes. Remover a configuração do plano de controle não a remove dos pools de nós do cluster.
Remover a configuração de proxy do plano de controle
Para remover a configuração de proxy do plano de controle do cluster, use a Google Cloud CLI.
gcloud container aws clusters update CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região Google Cloud com suporte que gerencia seu cluster, por exemplo,us-west1
Remover configuração de proxy do pool de nós
Para remover a configuração de proxy de um pool de nós, use a Google Cloud CLI.
gcloud container aws node-pools update NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Substitua:
NODE_POOL_NAME
: o nome do pool de nósCLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região Google Cloud com suporte que gerencia seu cluster, por exemplo,us-west1
A seguir
- Leia mais informações sobre como criar um cluster.