Este tópico mostra como rotear o tráfego do serviço de gerenciamento do GKE na AWS e do Connect por meio de um proxy HTTP/HTTPS.
O GKE na AWS requer acesso à Internet pelos seguintes motivos:
- O serviço de gerenciamento registra clusters de usuário com o Connect.
- Os clusters de usuário executam o agente do Connect.
- Todos os serviços de gerenciamento de cluster e nós de cluster de usuários fazem o download de imagens do Container Registry.
É possível rotear esse tráfego por meio de um proxy HTTP ou HTTPS. A partir do GKE na AWS 1.8, é possível definir configurações de proxy individuais para o serviço de gerenciamento e para cada um dos clusters. Para mais informações sobre como alterar as configurações de proxy, consulte Como alterar as configurações de proxy do cluster.
Você declara as configurações do proxy em um arquivo JSON que é referenciado em anthos-gke.yaml
.
Pré-requisitos
Antes de configurar o GKE na AWS para usar um proxy, você precisa ativar os endpoints da VPC da AWS, definir um grupo de segurança para o proxy e permitir conexões de saída com determinados serviços do Google Cloud.
Para usar um proxy HTTP, seus clusters de usuário precisam executar o Kubernetes 1.17 ou posterior.
Ativar endpoints da VPC
Antes de configurar um proxy, é preciso criar endpoints de VPC para a instalação do GKE na AWS. Os endpoints de VPC permitem que os recursos em sub-redes particulares acessem serviços da AWS sem acesso público à Internet.
A tabela a seguir lista os serviços da AWS para os quais o GKE na AWS requer endpoints de VPC, com o tipo de endpoint e os Grupos de segurança para cada componente do GKE no AWS que requer acesso ao endpoint.
Serviço | Tipo de endpoint | Grupos de segurança |
---|---|---|
Escalonamento automático | Interface | Gerenciamento, plano de controle, pools de nós |
EC2 | Interface | Gerenciamento, plano de controle, pools de nós |
Balanceamento de carga | Interface | Gerenciamento, plano de controle, pools de nós |
Serviço de gerenciamento de chaves | Interface | Gerenciamento, plano de controle, pools de nós |
S3 | Gateway | Gerenciamento, plano de controle, pools de nós |
Serviço de token de segurança (STS) | Interface | Gerenciamento, plano de controle, pools de nós |
É possível criar endpoints a partir do Console da VPC da AWS. As opções definidas durante a criação de endpoints da VPC dependem da configuração da VPC.
Definir um grupo de segurança
Os componentes do GKE em AWS precisam ser capazes de se conectar ao servidor proxy. Crie ou localize um grupo de
segurança da AWS
que permita conexões de saída com seu servidor proxy. O grupo de segurança permite acesso de saída dos grupos de segurança de gerenciamento, plano de controle e pool de nós para o endereço e a porta do proxy. Salve o código deste grupo de segurança (por exemplo, sg-12345678
).
Tipo | Protocolo | Da porta | Para fazer a portabilidade | Address |
---|---|---|---|---|
Saída | TCP | Porta do proxy: | Porta do proxy: | Grupo de segurança de proxy |
Permitir conexões de saída com os serviços do Google Cloud
Para que o GKE na AWS se conecte aos serviços do Google Cloud, o servidor proxy precisa 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 em que a
instalação do GKE na AWS é executada. Por exemplo, us-west-1.ec2.archive.ubuntu.com/
.
Se você estiver usando o Anthos Service Mesh com Prometheus e o Kiali, permita o acesso de saída dos seguintes domínios:
docker.io
quay.io
Como criar o arquivo JSON de configuração de proxy
O arquivo JSON de configuração de proxy contém um objeto que contém três pares de chave-valor, com os nomes de chave httpProxy
, httpsProxy
e noProxy
.
Os nomes de usuário e as senhas são criptografados por envelope com sua chave do KMS da AWS antes de serem aplicados ao servidor.
{
"httpProxy": "HTTP_PROXY",
"httpsProxy": "HTTPS_PROXY",
"noProxy": "NO_PROXY"
}
Substitua:
- HTTP_PROXY pelo endereço do servidor proxy para rotear solicitações HTTP;
- HTTPS_PROXY pelo servidor proxy para encaminhar solicitações HTTPS.
- NO_PROXY com uma lista opcional de IPs, intervalos CIDR e domínios em que o proxy não é usado.
Para mais informações, consulte a Referência de configuração.
Por exemplo, a configuração a seguir 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"
}
Como adicionar o proxy a anthos-gke.yaml
Configure o AWSManagementService executando as seguintes etapas:
Mude para o diretório com o GKE na configuração da AWS. Você criou esse diretório ao instalar o serviço de gerenciamento.
cd anthos-aws
Abra
anthos-gke.yaml
em um editor de texto. Adicione um valor paraspec.proxy
como no exemplo a seguir.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:
- PROXY_JSON_FILE pelo caminho relativo da configuração JSON do proxy.
- SECURITY_GROUP_ID pelo código de um grupo de segurança com acesso ao servidor proxy
Salve o arquivo.
Execute
anthos-gke aws management init
para gerar um arquivoanthos-gke.status.yaml
com configuração extra. O comandoinit
também valida o objetoAWSManagementService
no arquivoanthos-gke.yaml
.anthos-gke aws management init
Execute
anthos-gke aws management apply
para atualizar o serviço de gerenciamento na AWS.anthos-gke aws management apply
Em seguida, crie um cluster de usuários. Inclua o grupo de segurança do proxy no
spec.controlPlane.securityGroupIDs
espec.securityGroupIDs
deAWSCluster
eAWSNodePool
, respectivamente. O cluster então terá acesso ao proxy.
Referência de configuração
Campo | Descrição | Exemplo | Obrigatório |
---|---|---|---|
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" |
Sim |
httpsProxy |
Um URL de proxy para tráfego HTTPS criptografado. O URL httpProxy será 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 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 um subdomínio é obrigatório. Um único asterix * indica que não é necessário fazer proxy. |
"1.2.3.4,10.0.0.0/16,example.com,.site.com" |
Não |
A seguir
Para mais informações sobre como concluir um GKE na instalação da AWS, consulte:
Se você precisar criar uma VPC de AWS dedicada, consulte Como instalar um serviço de gerenciamento.
Se você tiver uma VPC da AWS, consulte Como integrar à infraestrutura atual.
Para informações sobre como alterar as configurações de proxy do cluster, consulte: