Usar um proxy HTTP

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 e httpsProxy não suportam URLs que comecem por https://. Tem de usar o http://. Os pedidos à porta 443 usam HTTPS.
  • Tem de definir valores para httpProxy, httpsProxy e noProxy.
  • 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
  1. Para criar o ficheiro de configuração, crie um ficheiro JSON que contenha valores para as chaves httpProxy, noProxy e httpsProxy 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 proxy
    • NO_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.

  2. 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 segredo
    • PROXY_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 cluster
  • PROXY_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 cluster
  • GOOGLE_CLOUD_LOCATION: a região suportada Google Cloud que gere o seu cluster
  • PROXY_SECRET_ARN: o ARN do segredo que contém as definições de proxy
  • PROXY_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 pool
  • CLUSTER_NAME: o nome do cluster
  • GOOGLE_CLOUD_LOCATION: a região suportada Google Cloud que gere o seu cluster
  • PROXY_SECRET_ARN: o ARN do segredo que contém as definições de proxy
  • PROXY_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 cluster
  • GOOGLE_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 pool
  • CLUSTER_NAME: o nome do cluster
  • GOOGLE_CLOUD_LOCATION: a região suportada Google Cloud que gere o seu cluster, por exemplo, us-west1

O que se segue?