Este tópico mostra como rotear o tráfego do serviço de gerenciamento do GKE na AWS e conectar-se 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ários no Connect .
- Os clusters de usuários executam o Connect Agent.
- Todos os nós de serviço de gerenciamento e cluster de usuários baixam imagens do Container Registry.
Você pode rotear esse tráfego por meio de um proxy HTTP ou HTTPS. A partir do GKE na AWS 1.8, você pode definir configurações de proxy individuais para o seu serviço de gerenciamento e cada um dos seus clusters. Para obter mais informações sobre como alterar as configurações de proxy, consulte Alterando as configurações de proxy do cluster .
Declare as configurações de proxy em um arquivo JSON referenciado em anthos-gke.yaml
.
Pré-requisitos
Antes de configurar o GKE na AWS para usar um proxy, você deve habilitar os endpoints do AWS VPC, definir um grupo de segurança para o proxy e permitir conexões de saída para determinados Google Cloud serviços.
Para usar um proxy HTTP, seus clusters de usuários devem estar executando o Kubernetes 1.17 ou superior.
Habilitar endpoints VPC
Antes de configurar um proxy, você precisa criar VPC endpoints para sua instalação do GKE na AWS. Os VPC endpoints permitem que recursos em sub-redes privadas acessem serviços da AWS sem acesso à Internet pública.
A tabela a seguir lista os serviços da AWS para os quais o GKE na AWS requer endpoints VPC, juntamente com o tipo de endpoint e os grupos de segurança para cada componente do GKE na AWS que requer acesso ao endpoint.
Serviço | Tipo de ponto final | Grupos de segurança |
---|---|---|
Dimensionamento 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 | Portal | 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 |
Você pode criar endpoints a partir do Console da VPC da AWS. As opções definidas ao criar endpoints da VPC dependem da configuração da sua VPC.
Definir um grupo de segurança
Seus componentes do GKE na AWS precisam conseguir se conectar ao servidor proxy. Crie ou localize um grupo de segurança da AWS que permita conexões de saída com o seu servidor proxy. O grupo de segurança deve permitir o acesso de saída dos seus grupos de segurança Gerenciamento, Plano de controle e Pool de nós ao endereço e à porta do proxy. Salve o ID desse grupo de segurança (por exemplo, sg-12345678
).
Tipo | Protocolo | Do porto | Para o porto | Endereço |
---|---|---|---|---|
Saída | TCP | Porta proxy | Porta proxy | Grupo de segurança proxy |
Permitir conexões de saída para Google Cloud serviços
Para o GKE na AWS se conectar a Google Cloud serviços, o servidor proxy deve permitir 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 instalação do GKE na AWS é executada. Por exemplo, us-west-1.ec2.archive.ubuntu.com/
.
Se você estiver usando o Cloud Service Mesh com Prometheus e Kiali , permita o acesso de saída dos seguintes domínios:
-
docker.io
-
quay.io
Criando o arquivo JSON de configuração do proxy
O arquivo JSON de configuração do proxy contém um objeto com três pares de chave/valor, com os nomes de chave httpProxy
, httpsProxy
e noProxy
. Nomes de usuário e senhas são criptografados em envelope com sua chave 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 rotear solicitações HTTP.
- HTTPS_PROXY com o servidor proxy para rotear solicitações 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 obter mais informações. 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"
}
Adicionando o proxy ao anthos-gke.yaml
Configure seu AWSManagementService executando as seguintes etapas:
Acesse o diretório com a configuração do GKE na AWS. Você criou este 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 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 .
Salve o arquivo.
Execute
anthos-gke aws management init
para gerar um arquivoanthos-gke.status.yaml
com configurações adicionais. O comandoinit
também valida o objetoAWSManagementService
no seu arquivoanthos-gke.yaml
.anthos-gke aws management init
Execute
anthos-gke aws management apply
para atualizar seu 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 nos
spec.controlPlane.securityGroupIDs
espec.securityGroupIDs
doAWSCluster
eAWSNodePool
, respectivamente. O cluster terá acesso ao proxy.
Referência de configuração
Campo | Descrição | Exemplo | Obrigatório |
---|---|---|---|
httpProxy | Uma URL de servidor proxy. O valor deve incluir um nome de host/endereço IP e, opcionalmente, uma porta, nome de usuário e senha. | "http://user:password@10.184.37.42:80" | Sim |
httpsProxy | Uma URL de proxy para tráfego HTTPS criptografado. A URL httpProxy será usada se httpsProxy não for fornecido. | "http://user:password@10.101.16.31:80" | Não |
noProxy | Uma lista separada por vírgulas de URLs a serem excluídas do proxy. Cada valor pode ser um endereço IP, um intervalo CIDR, um nome de domínio ou o caractere asterisco ( * ). Domínios especificados com um ponto inicial (por exemplo, ".google.com") indicam que um subdomínio é necessário. Um único asterisco * indica que nenhum proxy deve ser usado. | "1.2.3.4,10.0.0.0/16,example.com,.site.com" | Não |
O que vem a seguir
Para obter mais informações sobre como concluir uma instalação do GKE na AWS, consulte o seguinte:
Se você precisar criar uma VPC AWS dedicada, consulte Instalando um serviço de gerenciamento .
Se você tiver uma VPC AWS existente, consulte Integração com a infraestrutura existente .
Para obter informações sobre como alterar as configurações de proxy do seu cluster, consulte: