Suporte de proxy para clusters anexados do EKS

Se a sua organização usar um proxy HTTP para o tráfego da Internet, tem de configurar os clusters anexados do GKE em conformidade. Este documento descreve como realizar esta configuração.

Antes de começar

Os clusters anexados do GKE requerem conetividade a vários Google Cloud serviços. Certifique-se de que o seu servidor proxy permite 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 Google Cloud região em que o cluster reside. Especifique us-west1 ou outra região suportada.

Configure o suporte de proxy para clusters anexados do GKE

Para configurar o suporte de proxy para clusters anexados do GKE, siga estes passos:

  1. Crie um ficheiro 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 o seguinte:

    • HTTP_PROXY_AUTHENTICATION_URL: o URL do servidor proxy, que consiste num nome de anfitrião/endereço IP e, opcionalmente, numa porta, num nome de utilizador e numa palavra-passe. 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 encriptado, que consiste num nome de anfitrião/endereço IP e, opcionalmente, numa porta, num nome de utilizador e numa palavra-passe.
    • NO_PROXY_ADDRESSES: uma lista separada por vírgulas de URLs, blocos CIDR e nomes DNS de recursos que podem ignorar o proxy. Isto direciona os clusters anexados do GKE para evitar a utilização do proxy para os recursos especificados. Tenha em atenção o seguinte:
      • Os valores podem ser endereços IP individuais, intervalos CIDR, nomes de domínio ou até mesmo o caráter asterisco (*). Se usar um único asterisco (*) no campo noProxy, indica aos clusters anexados do GKE que devem ignorar o proxy para todo o tráfego.
      • Um domínio que começa com um ponto, como .google.com, segmenta todos os respetivos subdomínios. Por exemplo, .google.com inclui endereços como mail.google.com e drive.google.com, mas exclui google.com.
      • Certifique-se de que inclui os domínios kubernetes.default.svc.cluster.local e kubernetes.default.svc para um registo adequado. Segue-se um exemplo: 198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc.

    Quando criar o ficheiro de configuração do proxy, siga as seguintes diretrizes:

    • Os campos httpProxy e httpsProxy não aceitam prefixos https://. Use http://, mesmo que o endereço do servidor proxy real comece por https://. Por exemplo, represente https://proxy.example.com:3128 como http://proxy.example.com:3128.
    • É obrigatório fornecer valores para todos os três campos: httpProxy, httpsProxy e noProxy.
    • Considere anexar domínios, endereços IP ou CIDRs adicionais à lista noProxy. Recomendamos que inclua o intervalo de IPs da VPC.
  2. Crie um segredo do Kubernetes, que contém a configuração do proxy, executando o seguinte comando:

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

    Substitua o seguinte:

    • SECRET_NAME: o nome do segredo do Kubernetes
    • PROXY_CONFIGURATION_FILE: o caminho para a configuração do proxy que criou no passo 1.
  3. Marque o secret do Kubernetes como imutável definindo o respetivo campo immutable como true:

    kubectl edit secret SECRET_NAME
    

    Substitua SECRET_NAME pelo nome do segredo do Kubernetes.

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

    Novo cluster

    Para registar um novo cluster e aplicar a configuração de proxy, use o comando gcloud container attached clusters register. Certifique-se de que fornece 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 o seguinte:

    • CLUSTER_NAME: o nome do cluster
    • SECRET_NAME: o nome do segredo do Kubernetes que contém a configuração do proxy
    • SECRET_NAMESPACE: o namespace do Kubernetes onde o segredo está armazenado

    Para obter informações sobre todos os argumentos que pode usar ao registar um cluster, consulte o comando gcloud container attached clusters register.

    Cluster existente

    Para atualizar um cluster registado anteriormente com uma nova configuração de proxy, use o comando gcloud container attached clusters update. Certifique-se de que fornece 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 o seguinte:

    • CLUSTER_NAME: o nome do cluster
    • SECRET_NAME: o nome do segredo do Kubernetes que contém a configuração do proxy
    • SECRET_NAMESPACE: o namespace do Kubernetes onde o segredo está armazenado

    Este passo é necessário se os detalhes do servidor proxy tiverem sido alterados ou se um registo inicial do cluster tiver ignorado os requisitos do proxy.

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

Depois de realizar estes passos, os clusters anexados do GKE processam o tráfego de Internet de saída através do servidor proxy especificado no ficheiro de configuração.