Este documento mostra 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 meio de um proxy pelos seguintes motivos:
- Para registrar clusters com Google Cloud através do Connect
- Para executar o Connect Agent
- Para baixar imagens do Container Registry
Limitações
- Os campos
httpProxy
ehttpsProxy
não suportam URLs que começam comhttps://
. Você deve usarhttp://
. As solicitações para a porta 443 usam HTTPS. - Você deve definir valores para
httpProxy
,httpsProxy
enoProxy
. - Pode ser necessário adicionar domínios, IPs ou CIDRs adicionais ao campo
noProxy
. Recomendamos adicionar o intervalo de IPs da VPC. A partir da versão 1.22 do Google Kubernetes Engine, o GKE na AWS adiciona automaticamente o CIDR do endereço do pod e o CIDR do endereço do serviço.
Pré-requisitos
Esta seção descreve os pré-requisitos que você deve aplicar antes de usar um proxy.
Habilitar endpoints VPC
Antes de configurar um proxy, você deve criar endpoints de VPC para sua instalação do GKE na AWS.
Os endpoints VPC permitem que recursos em sub-redes privadas acessem serviços da AWS sem acesso à Internet pública.
A tabela a seguir lista os serviços da AWS para os quais o GKE na AWS requer endpoints VPC, juntamente com o tipo de endpoint e os grupos de segurança que exigem acesso ao endpoint.
Serviço | Tipo de ponto final | Grupos de segurança |
---|---|---|
Dimensionamento 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 | Portal | Plano de controle, pools de nós |
Gerente de Segredos | Interface | Plano de controle, pools de nós |
Serviço de Token de Segurança (STS) | Interface | Plano de controle, pools de nós |
Você pode criar endpoints a partir do Console da VPC da AWS. As opções definidas ao criar endpoints da VPC dependem da configuração da sua VPC.
Definir um grupo de segurança
O GKE na AWS precisa conseguir se conectar ao servidor proxy para baixar componentes de software. Crie ou localize um grupo de segurança da AWS que permita conexões de saída com o seu servidor proxy. O grupo de segurança deve permitir o acesso de saída do seu plano de controle e dos grupos de segurança do pool de nós ao endereço e à porta do proxy. Salve o ID desse grupo de segurança — por exemplo, sg-12345678
.
Tipo | Protocolo | Do porto | Para o porto | Endereço |
---|---|---|---|---|
Saída | TCP | Porta proxy | Porta proxy | Grupo de segurança proxy |
Lista de permissões de proxy
Para que o GKE na AWS se conecte aos serviços do Google Cloud, o servidor proxy deve permitir 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
por Google Cloud região na qual seu cluster do GKE Enterprise reside. Especifique us-west1
ou outra região compatível .
Atualizar funções do AWS IAM
Para que o GKE na AWS leia a configuração de proxy do AWS Secrets Manager, você deve adicionar secretsmanager:GetSecretValue
à função Plano de controle e à função Pool de nós do seu cluster.
Para adicionar essa permissão, adicione-a ao seu plano de controle e à política do pool de nós. Para obter mais informações, consulte Editando políticas do IAM .
Crie um arquivo de configuração de proxy
A configuração do proxy é armazenada em um segredo do AWS Secrets Manager como uma string JSON. Você pode 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 deste arquivo.
Campo | Descrição | Exemplos | Obrigatório |
---|---|---|---|
httpProxy | Uma URL de servidor proxy. O valor deve incluir um nome de 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 | Uma URL de proxy para tráfego HTTPS criptografado. A URL httpProxy será usada se httpsProxy tiver um valor vazio. | "http://10.101.16.31:80" | Sim |
noProxy | Uma lista separada por vírgulas de URLs a serem excluídas do proxy. Cada valor pode ser um endereço IP, um intervalo CIDR, um nome de domínio ou o caractere asterisco (*). Domínios especificados com um ponto inicial (por exemplo, `.google.com`) indicam que um subdomínio é necessário. Um único 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
httpProxy
,noProxy
e chaveshttpsProxy
opcionais.{ "httpProxy": "AUTHENTICATION_URL", "httpsProxy": "AUTHENTICATION_URL", "noProxy": "NO_PROXY_ADDRESSES" }
Substitua o seguinte:
-
AUTHENTICATION_URL
: URL codificada contendo o nome de usuário do proxy e a senha -
NO_PROXY_ADDRESSES
: lista separada por vírgulas de blocos CIDR e URLs — por exemplo10.0.0.0/16,http://example.com
Salve o arquivo para usar na seção seguinte.
-
Crie um segredo com esses dados JSON como um segredo 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 o seguinte:
-
SECRET_NAME
: o nome do novo segredo -
PROXY_CONFIGURATION_FILE
: o caminho para o arquivo de configuração do proxy.
A saída inclui o nome do recurso da Amazon (ARN) e o conteúdo do segredo. Agora você pode referenciar esse segredo ao criar um cluster.
-
Crie um cluster que use um proxy
Para configurar o GKE na AWS para usar um proxy HTTP para conectividade de saída, execute as seguintes etapas:
Siga as etapas em Criar um cluster e passe os sinalizadores 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 o seguinte:
-
CLUSTER_NAME
: nome do seu cluster -
PROXY_SECRET_ARN
: o ARN do segredo que contém as configurações de proxy — por exemploarn:aws::secretsmanager:us-east-2:111122223333:secret:example/ExampleSecret-jiObOV
-
PROXY_SECRET_VERSION
: o ID da versão dos segredos — por exemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Atualizar configuração de proxy
Você pode atualizar a configuração de proxy para um plano de controle de cluster ou um pool de nós. Para atualizar o ARN da configuração de proxy, você deve primeiro atualizar a função do IAM da AWS do plano de controle ou do pool de nós.
Atualizar funções do AWS IAM
Antes de alterar o ARN onde a configuração do proxy está armazenada, você precisa confirmar se a função de plano de controle e a função de pool de nós do seu cluster têm acesso de leitura ao ARN secreto. Se a sua 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 do proxy.
Atualizar configuração de proxy do cluster
Para atualizar a configuração de proxy do seu cluster, use o Google Cloud CLI.
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 o seguinte:
-
CLUSTER_NAME
: nome do seu cluster -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região que gerencia seu cluster -
PROXY_SECRET_ARN
: o ARN do segredo que contém as configurações de proxy -
PROXY_SECRET_VERSION
: o ID da versão dos segredos — 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 seu pool de nós, use o 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 o seguinte:
-
NODE_POOL_NAME
: nome do seu pool de nós -
CLUSTER_NAME
: nome do seu cluster -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região que gerencia seu cluster -
PROXY_SECRET_ARN
: o ARN do segredo que contém as configurações de proxy -
PROXY_SECRET_VERSION
: o ID da versão dos segredos — por exemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Remover configuração de proxy
Você pode remover a configuração de proxy do plano de controle do cluster ou dos pools de nós. 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 configuração de proxy do plano de controle
Para remover a configuração de proxy do plano de controle do cluster, use o Google Cloud CLI.
gcloud container aws clusters update CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Substitua o seguinte:
-
CLUSTER_NAME
: nome do seu cluster -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região 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 o Google Cloud CLI.
gcloud container aws node-pools update NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Substitua o seguinte:
-
NODE_POOL_NAME
: nome do seu pool de nós -
CLUSTER_NAME
: nome do seu cluster -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região que gerencia seu cluster — por exemplo,us-west1
O que vem a seguir
- Leia informações adicionais sobre como criar um cluster .