Usar um proxy HTTP

Neste documento, mostramos como rotear o tráfego do GKE no Azure por meio de um proxy HTTP/HTTPS. Você especifica a configuração do proxy ao criar um cluster.

Visão geral

O GKE no Azure pode rotear o tráfego de saída da Internet por meio de um proxy pelos seguintes motivos:

  • Registrar clusters com o Google Cloud no Connect
  • Executar o agente do Connect
  • Para fazer o download de imagens do Container Registry

Limitações

  • Os campos httpProxy e httpsProxy não são compatíveis com URLs que começam com https://. Você precisa usar http://. As solicitações para a porta 443 usam HTTPS.
  • Defina valores para httpProxy, httpsProxy e noProxy.
  • A configuração de proxy de um cluster (o ID do grupo de recursos e o ID do secret) é imutável. É necessário criar um novo cluster e pool de nós para atualizar esses valores.
  • Talvez seja necessário adicionar outros domínios, IPs ou CIDRs ao campo noProxy. Recomendamos adicionar os CIDRs de sub-rede dos planos de controle do cluster. O CIDR do endereço do pod e o CIDR do endereço do serviço são adicionados por padrão.

Pré-requisitos

Nesta seção, descrevemos os pré-requisitos que você precisa aplicar antes de usar um proxy.

Configuração do Azure Key Vault

O GKE no Azure armazena informações de configuração de proxy no Azure Key Vault. Para configurar um proxy com o GKE no Azure, é necessário ter permissões para criar um secret em um Key Vault. O armazenamento de chaves precisa ser acessível na VNet do cluster.

Lista de permissões de proxy

Para que o GKE no Azure se conecte aos serviços do Google Cloud, o servidor proxy precisa permitir o tráfego para domínios específicos do Google e da Microsoft.

.azure.com
.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 do Google Cloud em que o cluster do GKE Enterprise reside. Especifique us-west1 ou outra região compatível.

Requisito do grupo de segurança de rede da sub-rede

Se você estiver usando grupos de segurança de rede (NSGs, na sigla em inglês) para gerenciar o tráfego para suas sub-redes, as regras NSG precisarão permitir o tráfego TCP de saída para os seguintes destinos:

  • AzureCloud: TCP, porta 80 e 443

Consulte Tags de serviço do Azure para ver mais informações sobre o uso de tags de serviço com NSGs.

Criar um arquivo de configuração de proxy

A configuração do proxy é armazenada em um secret do Azure Key Vault como uma string JSON. É possível passar essa configuração para a ferramenta de linha de comando az 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
  1. Para criar o arquivo de configuração, crie um arquivo JSON que contenha valores para chaves httpProxy, noProxy e httpsProxy 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 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 próxima seção.

  2. Crie um secret com esses dados JSON como um secret no Azure Key Vault usando a ferramenta de linha de comando az.

    az keyvault secret set --name SECRET_NAME \
    --vault-name KEY_VAULT_NAME \
    --file PROXY_CONFIGURATION_FILE
    

    Substitua:

    • SECRET_NAME: o nome do novo secret
    • KEY_VAULT_NAME: o nome do seu Key Vault
    • PROXY_CONFIGURATION_FILE: o caminho para o arquivo de configuração de proxy.

      A saída inclui o nome 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 no Azure para usar um proxy HTTP para conectividade de saída, execute as seguintes etapas:

Siga as etapas em Criar um cluster e um pool de nós e transmita as sinalizações --proxy-resource-group-id e --proxy-secret-id.

gcloud container azure clusters create CLUSTER_NAME \
  --proxy-resource-group-id=PROXY_RESOURCE_GROUP_ID \
  --proxy-secret-id=PROXY_SECRET_ID
    ...

Substitua:

  • CLUSTER_NAME: o nome do cluster.
  • PROXY_RESOURCE_GROUP_ID: o grupo de recursos que hospeda o cluster.
  • PROXY_SECRET_ID: o ID do secret que contém a configuração do proxy, por exemplo, https://VAULT_NAME.vault.azure.net/secrets/SECRET_NAME/SECRET_VERSION

A seguir