Usar um proxy HTTP

Este documento mostra-lhe como encaminhar o tráfego do GKE no Azure através de um proxy HTTP/HTTPS. Especifica a configuração de proxy quando cria um cluster.

Vista geral

O GKE no Azure 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 para a porta 443 usam HTTPS.
  • Tem de definir valores para httpProxy, httpsProxy e noProxy.
  • A configuração do proxy de um cluster, ou seja, o ID do grupo de recursos e o ID do segredo, é imutável. Tem de criar um novo cluster e um novo conjunto de nós para atualizar estes valores.
  • Pode ter de adicionar mais domínios, IPs ou CIDRs ao campo noProxy. Recomendamos que adicione os CIDRs da sub-rede dos planos de controlo do cluster (o CIDR do endereço do pod e o CIDR do endereço do serviço são adicionados por predefinição).

Pré-requisitos

Esta secção descreve os pré-requisitos que tem de 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, tem de ter autorizações para criar um segredo num Key Vault. O Key Vault tem de estar acessível a partir da VNet do cluster.

Lista de autorizações de proxies

Para que o GKE no Azure se ligue aos Google Cloud serviços, o servidor proxy tem de permitir o tráfego para domínios específicos da 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 em que o cluster se encontra. Google Cloud Especifique us-west1 ou outra região suportada.

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

Se estiver a usar grupos de segurança de rede (NSGs) para gerir o tráfego para as suas sub-redes, as regras do NSG têm de permitir o tráfego TCP de saída para os seguintes destinos:

  • AzureCloud: TCP, porta 80 e 443

Consulte as etiquetas de serviço do Azure para mais informações sobre a utilização de etiquetas de serviço com NSGs.

Crie um ficheiro de configuração do proxy

A configuração do proxy é armazenada num segredo do Azure Key Vault como uma string JSON. Pode transmitir esta configuração à ferramenta de linha de comandos az 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 do 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 Azure Key Vault através da ferramenta de linha de comandos az.

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

    Substitua o seguinte:

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

      A saída inclui o nome e o conteúdo do segredo. Agora, pode fazer referência a este segredo quando criar um cluster.

Crie um cluster que use um proxy

Para configurar o GKE no Azure para usar um proxy HTTP para a conetividade de saída, siga estes passos:

Siga os passos em Crie um cluster e um conjunto de nós e transmita os flags --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 o seguinte:

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

O que se segue?