Este documento mostra-lhe como encaminhar o tráfego do GKE no AWS através de um proxy HTTP/HTTPS. Especifica a configuração de proxy quando cria um cluster.
Vista geral
O GKE on AWS pode encaminhar o tráfego de Internet de saída através de um proxy pelos seguintes motivos:
- Para registar clusters com o Google Cloud através do Connect
- Para executar o agente de ligação
- Para transferir imagens do Container Registry
Limitações
- Os campos
httpProxy
ehttpsProxy
não suportam URLs que comecem porhttps://
. Tem de usar ohttp://
. Os pedidos à porta 443 usam HTTPS. - Tem de definir valores para
httpProxy
,httpsProxy
enoProxy
. - Pode ter de adicionar mais domínios, IPs ou CIDRs ao campo
noProxy
. Recomendamos que adicione o intervalo de IPs da VPC. A partir da versão 1.22 do Google Kubernetes Engine, o GKE no AWS adiciona automaticamente o CIDR do endereço do pod e o CIDR do endereço do serviço.
Pré-requisitos
Esta secção descreve os pré-requisitos que tem de aplicar antes de usar um proxy.
Ative os pontos finais da VPC
Antes de configurar um proxy, tem de criar endpoints da VPC para a instalação do GKE no AWS.
Os pontos finais da VPC permitem que os recursos em sub-redes privadas acedam aos serviços AWS sem acesso público à Internet.
A tabela seguinte lista os serviços da AWS para os quais o GKE na AWS requer pontos finais da VPC, juntamente com o tipo de ponto final e os grupos de segurança que requerem acesso ao ponto final.
Serviço | Tipo de ponto final | Grupos de segurança |
---|---|---|
Ajuste automático | Interface | Painel de controlo, node pools |
EC2 | Interface | Painel de controlo, node pools |
EFS | Interface | Plano de controlo |
Balanceamento de carga | Interface | Painel de controlo, node pools |
Key Management Service | Interface | Painel de controlo, node pools |
S3 | Gateway | Painel de controlo, node pools |
Secrets Manager | Interface | Painel de controlo, node pools |
Serviço de tokens de segurança (STS) | Interface | Painel de controlo, node pools |
Pode criar pontos finais a partir da VPC Console da AWS. As opções que define quando cria pontos finais da VPC dependem da configuração da VPC.
Defina um grupo de segurança
O GKE on AWS tem de conseguir estabelecer ligação ao servidor proxy para transferir componentes de software. Crie ou localize um grupo de segurança da AWS que permita ligações de saída ao seu servidor proxy. O grupo de segurança deve permitir o acesso de saída do plano de controlo e dos grupos de segurança do conjunto de nós ao endereço e à porta do proxy. Guarde o ID deste grupo de segurança, por exemplo, sg-12345678
.
Tipo | Protocolo | Do porto | Para portar | Endereço |
---|---|---|---|---|
Saída | TCP | Porta proxy | Porta proxy | Grupo de segurança do proxy |
Lista de autorizações de proxies
Para que o GKE na AWS se ligue aos serviços Google Cloud, o servidor proxy tem de 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 região em que o cluster do GKE no AWS reside. Google Cloud Especifique us-west1
ou outra
região suportada.
Atualize as funções do AWS IAM
Para que o GKE no AWS leia a configuração do proxy a partir do AWS Secrets Manager,
tem de adicionar o secretsmanager:GetSecretValue
à
função do plano de controlo
e à função do conjunto de nós do cluster.
Para adicionar esta autorização, adicione-a à sua política do plano de controlo e do conjunto de nós. Para mais informações, consulte o artigo Editar políticas do IAM.
Crie um ficheiro de configuração do proxy
A configuração do proxy é armazenada num segredo do AWS Secrets Manager como uma string JSON.
Pode transmitir esta configuração à ferramenta de linha de comandos aws
como um ficheiro. Esta secção descreve como criar esse ficheiro.
A tabela seguinte descreve o conteúdo deste ficheiro.
Campo | Descrição | Exemplos | Obrigatório |
---|---|---|---|
httpProxy |
Um URL do servidor proxy. O valor deve incluir um nome de anfitrião/endereço IP e, opcionalmente, uma porta, um nome de utilizador e uma palavra-passe. | "http://user:password@10.184.37.42:80" "10.184.37.42" |
Sim |
httpsProxy |
Um URL de proxy para tráfego HTTPS encriptado. O URL httpProxy é usado se httpsProxy tiver um valor vazio. | "http://10.101.16.31:80"
|
Sim |
noProxy |
Uma lista de URLs separados por vírgulas a excluir do proxy. Cada valor pode ser um endereço IP, um intervalo CIDR, um nome de domínio ou o caráter asterisco (*). Os domínios especificados com um ponto inicial (por exemplo, `.google.com`) indicam que é necessário um subdomínio. Um único asterisco * ignora toda a configuração do proxy. | "1.2.3.4,10.0.0.0/16,example.com,.site.com" |
Sim |
Para criar o ficheiro de configuração, crie um ficheiro JSON que contenha valores para as chaves
httpProxy
,noProxy
ehttpsProxy
opcionais.{ "httpProxy": "AUTHENTICATION_URL", "httpsProxy": "AUTHENTICATION_URL", "noProxy": "NO_PROXY_ADDRESSES" }
Substitua o seguinte:
AUTHENTICATION_URL
: URL codificado que contém o nome de utilizador e a palavra-passe do proxyNO_PROXY_ADDRESSES
: lista separada por vírgulas de blocos CIDR e URLs, por exemplo,10.0.0.0/16,http://example.com
Guarde o ficheiro para usar na secção seguinte.
Crie um segredo com estes dados JSON como um segredo no AWS Secrets Manager através da ferramenta de linha de comandos
aws
.aws secretsmanager create-secret \ --name SECRET_NAME \ --secret-string file://PROXY_CONFIGURATION_FILE
Substitua o seguinte:
SECRET_NAME
: o nome do novo segredoPROXY_CONFIGURATION_FILE
: o caminho para o ficheiro de configuração do proxy.
A saída inclui o nome do recurso da Amazon (ARN) e o conteúdo do segredo. Agora, pode referenciar este segredo quando criar um cluster.
Crie um cluster que use um proxy
Para configurar o GKE no AWS para usar um proxy HTTP para a conetividade de saída, siga estes passos:
Siga os passos em
Crie um cluster
e transmita os flags 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
: o nome do clusterPROXY_SECRET_ARN
: o ARN do segredo que contém as definiçõ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 segredos, por exemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Atualize a configuração do proxy
Pode atualizar a configuração do proxy para um plano de controlo do cluster ou um conjunto de nós. Para atualizar o ARN da configuração do proxy, primeiro tem de atualizar o plano de controlo ou a função de IAM da AWS do conjunto de nós.
Atualize as funções do AWS IAM
Antes de alterar o ARN onde a configuração do proxy está armazenada, tem de confirmar que a função do plano de controlo e a função do conjunto de nós do cluster têm acesso de leitura ao ARN secreto. Se a sua declaração de IAM com a autorização secretsmanager:GetSecretValue
estiver no âmbito de ARNs de recursos específicos, adicione o novo ARN do segredo a essa lista antes de atualizar a configuração do proxy.
Atualize a configuração do proxy do cluster
Para atualizar a configuração de proxy do cluster, use a CLI 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 o seguinte:
CLUSTER_NAME
: o nome do clusterGOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu clusterPROXY_SECRET_ARN
: o ARN do segredo que contém as definições de proxyPROXY_SECRET_VERSION
: o ID da versão dos segredos, por exemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Atualize a configuração do proxy do node pool
Para atualizar a configuração de proxy do seu conjunto de nós, use a CLI Google Cloud.
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
: o nome do node poolCLUSTER_NAME
: o nome do clusterGOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu clusterPROXY_SECRET_ARN
: o ARN do segredo que contém as definições de proxyPROXY_SECRET_VERSION
: o ID da versão dos segredos, por exemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Remova a configuração de proxy
Pode remover a configuração de proxy do plano de controlo do cluster ou dos conjuntos de nós. Estas operações são independentes. A remoção da configuração do plano de controlo não a remove dos conjuntos de nós do cluster.
Remova a configuração do proxy do plano de controlo
Para remover a configuração de proxy do plano de controlo do cluster, use a CLI Google Cloud.
gcloud container aws clusters update CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Substitua o seguinte:
CLUSTER_NAME
: o nome do clusterGOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu cluster, por exemplo,us-west1
Remova a configuração de proxy do node pool
Para remover a configuração de proxy de um conjunto de nós, use a CLI Google Cloud.
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
: o nome do node poolCLUSTER_NAME
: o nome do clusterGOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu cluster, por exemplo,us-west1
O que se segue?
- Leia informações adicionais sobre como criar um cluster.