Usar um proxy com o GKE na AWS

Este tópico mostra como encaminhar o tráfego do serviço de gestão do GKE on AWS e do Connect através de um proxy HTTP/HTTPS.

O GKE na AWS requer acesso à Internet pelos seguintes motivos:

  • O serviço de gestão regista clusters de utilizadores com o Connect.
  • Os clusters de utilizadores executam o agente do Connect.
  • Todos os nós do serviço de gestão e do cluster de utilizadores transferem imagens do registo de contentores.

Pode encaminhar este tráfego através de um proxy HTTP ou HTTPS. A partir do GKE on AWS 1.8, pode configurar definições de proxy individuais para o seu serviço de gestão e cada um dos seus clusters. Para mais informações sobre como alterar as definições de proxy, consulte o artigo Alterar as definições de proxy do cluster.

Declara as definições de proxy num ficheiro JSON referenciado em anthos-gke.yaml.

Pré-requisitos

Antes de configurar o GKE no AWS para usar um proxy, tem de ativar os pontos finais da VPC da AWS, definir um grupo de segurança para o proxy e permitir ligações de saída a determinados serviços. Google Cloud

Para usar um proxy HTTP, os clusters de utilizadores têm de estar a executar o Kubernetes 1.17 ou superior.

Ative os pontos finais da VPC

Antes de configurar um proxy, tem de criar endpoints da VPC para a instalação do GKE no AWS. Os pontos finais da VPC permitem que os recursos em sub-redes privadas acedam aos serviços AWS sem acesso público à Internet.

A tabela seguinte indica os serviços da AWS para os quais o GKE na AWS requer pontos finais da VPC, juntamente com o tipo de ponto final e os grupos de segurança para cada componente do GKE na AWS que requer acesso ao ponto final.

Serviço Tipo de ponto final Grupos de segurança
Ajuste automático Interface Gestão, plano de controlo, node pools
EC2 Interface Gestão, plano de controlo, node pools
Balanceamento de carga Interface Gestão, plano de controlo, node pools
Key Management Service Interface Gestão, plano de controlo, node pools
S3 Gateway Gestão, plano de controlo, node pools
Serviço de tokens de segurança (STS) Interface Gestão, plano de controlo, node pools

Pode criar pontos finais a partir da VPC Console da AWS. As opções que define quando cria pontos finais da VPC dependem da configuração da VPC.

Defina um grupo de segurança

Os seus componentes do GKE na AWS têm de conseguir estabelecer ligação ao servidor proxy. Crie ou localize um grupo de segurança da AWS que permita ligações de saída ao seu servidor proxy. O grupo de segurança deve permitir o acesso de saída dos grupos de segurança de gestão, plano de controlo e conjunto de nós ao endereço e à porta do proxy. Guarde o ID deste grupo de segurança (por exemplo, sg-12345678).

Tipo Protocolo Do porto Para portar Endereço
Saída TCP Porta proxy Porta proxy Grupo de segurança do proxy

Permita ligações de saída aos serviços Google Cloud

Para que o GKE on AWS se ligue aos Google Cloud serviços, o servidor proxy tem de permitir o tráfego para os seguintes domínios:

  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • oauth2.googleapis.com
  • storage.googleapis.com
  • www.googleapis.com
  • gcr.io
  • k8s.gcr.io
  • EC2-REGION.ec2.archive.ubuntu.com

Substitua EC2-REGION pela região do AWS EC2 onde a sua instalação do GKE on AWS é executada. Por exemplo, us-west-1.ec2.archive.ubuntu.com/.

Se estiver a usar o Cloud Service Mesh com o Prometheus e o Kiali, permita o acesso de saída dos seguintes domínios:

  • docker.io
  • quay.io

Criar o ficheiro JSON de configuração do proxy

O ficheiro JSON de configuração do proxy contém um objeto com três pares de chave/valor, com os nomes das chaves httpProxy, httpsProxy e noProxy. Os nomes de utilizadores e as palavras-passe são encriptados em envelope com a sua chave do AWS KMS antes de serem aplicados ao servidor.

{
  "httpProxy": "HTTP_PROXY",
  "httpsProxy": "HTTPS_PROXY",
  "noProxy": "NO_PROXY"
}

Substitua o seguinte:

  • HTTP_PROXY com o endereço do servidor proxy para encaminhar pedidos HTTP.
  • HTTPS_PROXY com o servidor proxy para encaminhar pedidos HTTPS.
  • NO_PROXY com uma lista opcional de IPs, intervalos CIDR e domínios onde o proxy não é usado.

Consulte a Referência de configuração para mais informações. Por exemplo, a seguinte configuração usa um proxy em 10.0.0.254 e exclui vários sites.

{
  "httpProxy": "http://user:password@10.0.0.254:80",
  "httpsProxy": "http://user:password@10.0.0.254:443",
  "noProxy": "localhost,127.0.0.1,169.254.169.254,10.0.0.0/16,example.com"
}

Adicionar o proxy a anthos-gke.yaml

Configure o AWSManagementService seguindo estes passos:

  1. Altere para o diretório com a configuração do GKE na AWS. Criou este diretório quando Instalou o serviço de gestão.

    cd anthos-aws

  2. Abra anthos-gke.yaml num editor de texto. Adicione um valor para spec.proxy como no exemplo seguinte.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
      name: management
    spec:
      version: aws-1.14.1-gke.0
      proxy: PROXY_JSON_FILE
      securityGroupIDs:
      - SECURITY_GROUP_ID
      ...
    

    Substitua o seguinte:

    • PROXY_JSON_FILE com o caminho relativo da configuração JSON do seu proxy.
    • SECURITY_GROUP_ID com o ID de um grupo de segurança com acesso ao servidor proxy.

    Guarde o ficheiro.

  3. Execute anthos-gke aws management init para gerar um ficheiro anthos-gke.status.yaml com configuração adicional. O comando init também valida o objeto AWSManagementService no seu ficheiro anthos-gke.yaml.

    anthos-gke aws management init
    
  4. Execute o comando anthos-gke aws management apply para atualizar o serviço de gestão na AWS.

    anthos-gke aws management apply
    
  5. Em seguida, crie um cluster de utilizadores. Inclua o grupo de segurança do proxy em AWSCluster e AWSNodePool, respetivamente.spec.controlPlane.securityGroupIDsspec.securityGroupIDs Em seguida, o cluster tem acesso ao proxy.

Referência de configuração

Campo Descrição Exemplo Obrigatória
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" Sim
httpsProxy Um URL de proxy para tráfego HTTPS encriptado. O URL httpProxy é usado se httpsProxy não for fornecido. "http://user:password@10.101.16.31:80" Não
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 de 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 * indica que não deve ser feita nenhuma ação de proxy. "1.2.3.4,10.0.0.0/16,example.com,.site.com" Não

O que se segue?

Para mais informações sobre como concluir uma instalação do GKE no AWS, consulte o seguinte:

Para obter informações sobre como alterar as definições de proxy do cluster, consulte: