Instalar por trás de um proxy

Nesta página, mostramos como configurar regras de proxy e firewall para o Google Distributed Cloud.

Configurar seu servidor proxy

Se as máquinas usadas para executar os nós de inicialização e de cluster usarem um servidor proxy para acessar a Internet, será necessário:

  • configurar o proxy para o gerenciador de pacotes nos nós do cluster;
  • configurar os detalhes do proxy no arquivo de configuração do cluster.

Pré-requisitos

O servidor proxy precisa permitir conexões com estes endereços:

Endereço Finalidade
*.gcr.io Extraia imagens do Container Registry.
accounts.google.com Processe solicitações de autorização para o OpenID e descubra chaves públicas para verificação de tokens.
binaryauthorization.googleapis.com Obrigatório se estiver usando autorização binária. Autorize (ou rejeite) solicitações de clusters para executar imagens de contêiner.
cloudresourcemanager.googleapis.com Resolve os metadados referentes ao projeto do Google Cloud a que o cluster está sendo conectado.
compute.googleapis.com Verifique a região de recursos do Cloud Logging e do Cloud Monitoring.
connectgateway.googleapis.com Ative o recurso Conceder ao Cloud Customer Care acesso para ler o cluster para diagnosticar problemas.
dl.google.com Faça o download e a instalação do Google Cloud SDK.
gkeconnect.googleapis.com Estabelece o canal usado para receber solicitações do Google Cloud e envia respostas. Se o cluster foi registrado na frota usando uma região do Google Cloud, é necessário permitir REGION-gkeconnect.googleapis.com (por exemplo, us-central1-gkeconnect.googleapis.com). Se você não especificou uma região, o cluster usa a instância de serviço global do Connect, e você permite gkeconnect.googleapis.com. Se você precisar encontrar o local da assinatura da frota para seu cluster, execute gcloud container fleet memberships list. Confira mais informações em: gkeConnect.location.
gkehub.googleapis.com Crie recursos de assinatura da frota do Google Cloud que correspondam ao cluster que você está conectando ao Google Cloud.
gkeonprem.googleapis.com Crie e gerencie o ciclo de vida do cluster em infraestrutura bare metal e VMware.
gkeonprem.mtls.googleapis.com Crie e gerencie o ciclo de vida do cluster em infraestrutura bare metal e VMware. Esta versão da API é usada automaticamente com mTLS.
iam.googleapis.com Crie contas de serviço que possam ser usadas para autenticar no Google Cloud e fazer chamadas de API.
iamcredentials.googleapis.com Oferece controle de admissão e geração de relatórios de telemetria para a geração de registros de auditoria.
kubernetesmetadata.googleapis.com Os clusters usam essa API como um endpoint para enviar metadados do Kubernetes ao Google Cloud. Os metadados são vitais para o monitoramento, a depuração e a recuperação do cluster.
logging.googleapis.com Grave entradas de registro e gerencie sua configuração do Cloud Logging.
monitoring.googleapis.com Gerencia dados e configurações do Cloud Monitoring.
oauth2.googleapis.com Autenticar por meio de troca de token OAuth para acesso à conta.
opsconfigmonitoring.googleapis.com Colete metadados de recursos do Kubernetes, como pods, implantações ou nós, para enriquecer consultas de métricas.
releases.hashicorp.com Opcional. Use o cliente do Terraform na estação de trabalho do administrador para executar comandos, como terraform apply.
securetoken.googleapis.com Recupere tokens de atualização para autorização da identidade da carga de trabalho.
servicecontrol.googleapis.com Gravar entradas de registro de auditoria nos Registros de auditoria do Cloud.
serviceusage.googleapis.com Ativar e validar serviços e APIs.
stackdriver.googleapis.com Gerencie os metadados do Google Cloud Observability, como as contas do Stackdriver.
storage.googleapis.com Gerencie o armazenamento e os intervalos de objetos, como objetos Container Registry.
sts.googleapis.com Trocar as credenciais do Google ou de terceiros por um token de acesso de curta duração aos recursos do Google Cloud
www.googleapis.com Autentica os tokens de serviço das solicitações de serviço recebidas do Google Cloud.

Além desses URLs, o servidor proxy também precisa permitir todos os espelhos de pacotes exigidos pelo gerenciador de pacotes do sistema operacional. É possível atualizar a configuração do gerenciador de pacotes para usar uma lista mais determinística, que é mais fácil de gerenciar.

configurar o proxy para o gerenciador de pacotes nos nós do cluster;

A Google Distributed Cloud usa o gerenciador de pacotes APT no Ubuntu e o gerenciador de pacotes DNF no Red Hat Enterprise Linux. Verifique se o gerenciador de pacotes do SO tem a configuração de proxy correta.

Consulte a documentação de distribuição do sistema operacional para obter os detalhes sobre como configurar o proxy. Os exemplos a seguir mostram uma maneira de definir as configurações de proxy:

APT

Estes comandos demonstram como configurar o proxy para APT:

sudo touch /etc/apt/apt.conf.d/proxy.conf

echo 'Acquire::http::Proxy "http://USERNAME:PASSWORD@DOMAIN";' \
    >> /etc/apt/apt.conf.d/proxy.conf

echo 'Acquire::https::Proxy "http://USERNAME:PASSWORD@DOMAIN";' \
    >> /etc/apt/apt.conf.d/proxy.conf

Substitua USERNAME:PASSWORD@DOMAIN por detalhes específicos da sua configuração. Por exemplo, se o proxy não exigir um login, não inclua USERNAME:PASSWORD@ com DOMAIN.

DNF

Este comando demonstra como configurar o proxy para DNF:

echo "proxy=http://USERNAME:PASSWORD@DOMAIN" >> /etc/dnf/dnf.conf

Substitua USERNAME:PASSWORD@DOMAIN por detalhes específicos da sua configuração. Por exemplo, se o proxy não exigir um login, não inclua USERNAME:PASSWORD@ com DOMAIN.

Configurar os detalhes do proxy no arquivo de configuração do cluster

No arquivo de configuração do cluster, defina os valores a seguir para configurar o cluster para usar o proxy:

proxy.url

Uma string que especifica o URL do proxy. As máquinas de inicialização e de nó usam esse proxy para acessar a Internet. A string do URL do proxy precisa começar com o esquema dela, por exemplo, http:// ou https://.

proxy.noProxy

Uma lista de endereços IP, nomes de host e nomes de domínio que não devem passar pelo servidor proxy.

Na maioria dos casos, você não precisa adicionar itens a essa lista.

Casos de uso de noProxy:

  • Usando um espelho de pacote particular, localizado na mesma rede privada (não precisa de proxy para acessar)

  • Usando um espelho de registro privado, localizado na mesma rede privada (não é necessário ter proxy para acessar)

Exemplo

Veja abaixo um exemplo de configuração de proxy em um arquivo de configuração de cluster:

  proxy:
     url: http://USERNAME:PASSWORD@DOMAIN
     noProxy:
     - example1.com
     - example2.com

Configurações de proxy para o serviço de identidade do GKE

Se você usar o serviço de identidade do GKE para autenticação em clusters do Google Distributed Cloud, será necessário seguir as etapas adicionais abaixo para garantir que o serviço de identidade do GKE funcione por trás de um proxy.

  1. No arquivo de configuração do cluster, defina os detalhes do proxy na seção authentication do OIDC para as configurações do GKE Identity Service.

      authentication:
        oidc:
          proxy: http://USERNAME:PASSWORD@DOMAIN
    
  2. Atualize a configuração do servidor proxy para permitir conexões com os URLs de autenticação do provedor do OIDC.

Como o proxy é usado no cluster

Como regra geral, os comandos bmctl e os processos que eles geram usam a configuração de proxy definida pelas variáveis de ambiente HTTPS_PROXY e NO_PROXY, se eles foram definidos. Caso contrário, bmctl usa a configuração de proxy do arquivo de configuração do cluster. Outros comandos executados na estação de trabalho do administrador, em máquinas de nó do cluster ou pelo cluster de bootstrap usam a configuração de proxy do arquivo de configuração do cluster.

O gerenciador de pacotes do SO em cada nó usa os próprios arquivos de configuração para as configurações de proxy.

Substituir a configuração do proxy na sua máquina de inicialização

É possível executar a estação de trabalho do administrador por trás de um proxy diferente do usado pelas máquinas de nós, substituindo as configurações de proxy no arquivo de configuração do cluster. Para modificar as configurações de proxy, defina as seguintes variáveis de ambiente na máquina de inicialização:

export HTTPS_PROXY=http://USERNAME:PASSWORD@DOMAIN

Substitua USERNAME:PASSWORD@DOMAIN por detalhes específicos da sua configuração.

export NO_PROXY=example1.com,example2.com

Substitua example1.com,example2.com por endereços IP, nomes de host e nomes de domínio que não podem passar pelo servidor proxy.

Efeitos colaterais

Se executado como raiz, o bmctl atualiza a configuração do proxy do Docker na máquina de inicialização. Caso você não execute o bmctl como raiz, configure o proxy do Docker manualmente.

Regras de firewall

Configure as regras de firewall conforme descrito nas seções a seguir para permitir o tráfego descrito necessário para o Google Distributed Cloud.

Para conferir os requisitos de porta de pré-requisito do Google Distributed Cloud, consulte Uso da porta.

Regras de firewall para endereços IP de nós do cluster

Veja na tabela a seguir as regras de firewall para endereços IP disponíveis nos clusters.

De

Porta de origem

Para

Porta

Protocolo

Descrição

Nó do cluster 1024 - 65535 cloudresourcemanager.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
443 TCP/HTTPS Você precisa acessar a página de registro da frota.
Coletor do Cloud Logging, que é executado no nó do cluster 1024 - 65535 oauth2.googleapis.com
logging.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
storage.googleapis.com
www.googleapis.com
443 TCP/HTTPS
Coletor de metadados do Cloud, que é executado no nó do cluster 1024 - 65535 opsconfigmonitoring.googleapis.com 443 TCP/HTTPS
Coletor do Cloud Monitoring, que é executado no nó do cluster 1024 - 65535 oauth2.googleapis.com
monitoring.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
443 TCP/HTTPS
Nó do cluster 1024 - 65535 Registro local do Docker Depende do registro TCP/HTTPS Obrigatório se o Google Distributed Cloud estiver configurado para usar um registro particular local do Docker em vez de gcr.io.
Nó do cluster 1024 - 65535 gcr.io
oauth2.googleapis.com
storage.googleapis.com
Qualquer URL da API do Google no formato *.googleapis.com obrigatório para a serviços ativados para o cluster de administrador.
443 TCP/HTTPS Faz o download de imagens de registros públicos do Docker. Não é necessário se você estiver usando um registro particular do Docker.
Agente do Connect, que é executado em um nó do cluster. 1024 - 65535 cloudresourcemanager.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
www.googleapis.com
iam.googleapis.com
iamcredentials.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
sts.googleapis.com
accounts.google.com
443 TCP/HTTPS Veja mais informações sobre o tráfego gerenciado pelo Connect Agent em Visão geral do Connect Agent.
Nó do cluster 1024 - 65535 gkeonprem.googleapis.com
gkeonprem.mtls.googleapis.com
443 TCP/HTTPS Crie e gerencie o ciclo de vida do cluster em infraestrutura bare metal e VMware.

Regras de firewall para os componentes restantes

As regras descritas na tabela a seguir se aplicam a todos os outros componentes não listados na seção anterior.

De

Porta de origem

Para

Porta

Protocolo

Descrição

Clientes e usuários finais do aplicativo Tudo VIP da entrada do Istio 80, 443 TCP Tráfego de usuário final para o serviço de entrada de um cluster de usuário.
Estação de trabalho do administrador 32768 - 60999 gcr.io
cloudresourcemanager.googleapis.com
oauth2.googleapis.com
storage.googleapis.com
Qualquer URL *.googleapis.com obrigatório para os serviços ativados para este cluster
443 TCP/HTTPS Faz o download de imagens do Docker a partir de registros públicos do Docker.
Estação de trabalho do administrador 32768 - 60999 gcr.io
cloudresourcemanager.googleapis.com
iam.googleapis.com
oauth2.googleapis.com
serviceusage.googleapis.com
storage.googleapis.com
Qualquer URL *.googleapis.com necessário para os serviços ativados para os clusters de administrador ou usuário
443 TCP/HTTPS Verificações de simulação (validação).