Suporte de proxy para clusters anexados ao AKS

Se a organização usar um proxy HTTP para o tráfego da Internet, será necessário configurar os clusters anexados ao GKE de maneira adequada. Neste documento, descrevemos como executar essa configuração.

Antes de começar

Os clusters anexados ao GKE exigem conectividade com vários serviços do Google Cloud. Verifique se o servidor proxy permite 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 do Google Cloud em que o cluster reside. Especifique us-west1 ou outra região compatível.

Configurar o suporte a proxy para clusters anexados ao GKE

Para configurar o suporte a proxy para clusters anexados ao GKE, siga estas etapas:

  1. Crie um arquivo de configuração de proxy que contenha valores para as chaves httpProxy, noProxy e httpsProxy:

    {
    "httpProxy": HTTP_PROXY_AUTHENTICATION_URL,
    "httpsProxy": HTTPS_PROXY_AUTH_URL,
    "noProxy": NO_PROXY_ADDRESSES
    }
    

    Substitua:

    • HTTP_PROXY_AUTHENTICATION_URL: o URL do servidor proxy, que consiste em um nome do host/endereço IP e, opcionalmente, uma porta, nome de usuário e senha. Por exemplo: http://user:password@192.0.2.0:80 ou apenas 198.51.100.255.
    • HTTPS_PROXY_AUTH_URL: o URL do proxy para tráfego HTTPS criptografado, que consiste em um nome do host/endereço IP e, opcionalmente, uma porta, nome de usuário e senha.
    • NO_PROXY_ADDRESSES: uma lista separada por vírgulas de URLs, blocos CIDR e nomes DNS de recursos que podem ignorar o proxy. Isso direciona os clusters anexados ao GKE para evitar o uso do proxy para os recursos especificados. Lembre-se do seguinte:
      • Os valores podem ser endereços IP individuais, intervalos CIDR, nomes de domínio ou até mesmo o caractere asterisco (*). O uso de um único asterisco (*) no campo noProxy instrui os clusters anexados ao GKE a pular o proxy para todo o tráfego.
      • Um domínio à esquerda com um ponto, como .google.com, tem como alvo todos os subdomínios. Por exemplo, .google.com inclui endereços como mail.google.com e drive.google.com, mas exclui google.com.
      • Inclua os domínios kubernetes.default.svc.cluster.local e kubernetes.default.svc para uma geração de registros adequada. Acesse um exemplo: 198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc.

    Ao criar o arquivo de configuração de proxy, siga estas diretrizes:

    • Os campos httpProxy e httpsProxy não aceitam prefixos https://. Use http://, mesmo que o endereço real do servidor proxy comece com https://. Por exemplo, represente https://proxy.example.com:3128 como http://proxy.example.com:3128.
    • É obrigatório informar valores para os três campos: httpProxy, httpsProxy e noProxy.
    • Considere anexar outros domínios, endereços IP ou CIDRs à lista noProxy. Recomendamos que você inclua o intervalo de IP da VPC.
  2. Execute o seguinte comando para criar um secret do Kubernetes, que contenha a configuração do proxy:

    kubectl create secret generic SECRET_NAME \
    --from-file=PROXY_CONFIGURATION_FILE
    

    Substitua:

    • SECRET_NAME: o nome do secret do Kubernetes
    • PROXY_CONFIGURATION_FILE: o caminho para a configuração do proxy que você criou na etapa 1.
  3. Marque o secret do Kubernetes como imutável (link em inglês) definindo o campo immutable como true:

    kubectl edit secret SECRET_NAME
    

    Substitua SECRET_NAME pelo nome do secret do Kubernetes.

  4. Configure um cluster novo ou atual para usar o proxy:

    Novo cluster

    Para registrar um novo cluster e aplicar a configuração de proxy, use o comando gcloud container attached clusters register. Forneça os argumentos opcionais --proxy-secret-name e --proxy-secret-namespace:

    gcloud container attached clusters register CLUSTER_NAME \
      --proxy-secret-name=SECRET_NAME \
      --proxy-secret-namespace=SECRET_NAMESPACE
    

    Substitua:

    • CLUSTER_NAME: o nome do cluster.
    • SECRET_NAME: o nome do Secret do Kubernetes que contém a configuração de proxy
    • SECRET_NAMESPACE: o namespace do Kubernetes em que o Secret está armazenado.

    Para informações sobre todos os argumentos que podem ser usados ao registrar um cluster, consulte o comando gcloud container attached clusters register.

    Cluster existente

    Para atualizar um cluster registrado anteriormente com uma nova configuração de proxy, use o comando gcloud container attached clusters update. Informe os argumentos opcionais --proxy-secret-name e --proxy-secret-namespace:

    gcloud container attached clusters update CLUSTER_NAME \
      --proxy-secret-name=SECRET_NAME \
      --proxy-secret-namespace=SECRET_NAMESPACE
    

    Substitua:

    • CLUSTER_NAME: o nome do cluster.
    • SECRET_NAME: o nome do Secret do Kubernetes que contém a configuração de proxy
    • SECRET_NAMESPACE: o namespace do Kubernetes em que o Secret está armazenado.

    Essa etapa será necessária se os detalhes do servidor proxy tiverem sido alterados ou se um registro inicial do cluster ignorar os requisitos de proxy.

    Para informações sobre todos os argumentos que podem ser usados ao atualizar um cluster, consulte o comando gcloud container attached clusters update.

Depois de executar essas etapas, os clusters anexados do GKE processarão o tráfego de saída da Internet usando o servidor proxy especificado no arquivo de configuração.