Use um proxy HTTP

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 e httpsProxy não suportam URLs que começam com https:// . Você deve usar http:// . As solicitações para a porta 443 usam HTTPS.
  • Você deve definir valores para httpProxy , httpsProxy e noProxy .
  • 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
  1. Para criar o arquivo de configuração, crie um arquivo JSON que contenha valores para httpProxy , noProxy e chaves httpsProxy 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 exemplo 10.0.0.0/16,http://example.com

    Salve o arquivo para usar na seção seguinte.

  2. 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 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

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:

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