Personalizar o isolamento de rede no GKE


Nesta página, explicamos como configurar o isolamento de rede para clusters do Google Kubernetes Engine (GKE) ao criar ou atualizar o cluster.

Prática recomendada:

Planeje e projete o isolamento de rede do cluster com arquitetos de rede, administradores de rede ou qualquer outra equipe de engenheiros de rede responsáveis por definir, implementar e manter a arquitetura de rede.

Como funciona o isolamento de rede do cluster

Em um cluster do GKE, o isolamento de rede depende de quem pode acessar os componentes do cluster e como. É possível controlar:

  • Acesso ao plano de controle: é possível personalizar o acesso externo, limitado ou irrestrito ao plano de controle.
  • Rede de clusters: é possível escolher quem pode acessar os nós em clusters padrão ou as cargas de trabalho em clusters do Autopilot.

Antes de criar o cluster, considere o seguinte:

  1. Quem pode acessar o plano de controle e como ele é exposto?
  2. Como seus nós ou cargas de trabalho são expostos?

Para responder a essas perguntas, siga as diretrizes de planejamento e design em Sobre o isolamento de rede.

Restrições e limitações

Por padrão, o GKE cria clusters como clusters nativos de VPC. Clusters nativos de VPC não são compatíveis com redes legadas.

Abra as seções a seguir para conferir as regras sobre intervalos de endereços IP e tráfego ao criar um cluster.

Antes de começar

Antes de começar, veja se você realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a CLI do Google Cloud para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a gcloud CLI anteriormente, instale a versão mais recente executando gcloud components update.

Configurar o acesso ao plano de controle

Quando você cria um cluster do GKE em qualquer versão usando a CLI do Google Cloud ou na versão 1.29 e mais recentes usando o console, o plano de controle é acessível pelas seguintes interfaces:

Endpoint baseado em DNS

O acesso ao plano de controle depende da resolução de DNS do tráfego de origem. Ative o endpoint baseado em DNS para ter os seguintes benefícios:

  • Crie uma política de acesso dinâmica com base nas políticas do IAM.
  • Acesse o plano de controle de outras redes VPC ou locais externos sem precisar configurar o Bastion Host ou nós de proxy.

Para configurar o acesso ao endpoint baseado em DNS, consulte Definir o acesso ao endpoint baseado em DNS.

Endpoints baseados em IP

O acesso aos endpoints do plano de controle depende do endereço IP de origem e é controlado pelas suas redes autorizadas. É possível gerenciar o acesso aos endpoints baseados em IP do plano de controle, incluindo:

  • Ative ou desative o endpoint baseado em IP.
  • Ative ou desative o endpoint externo para permitir o acesso do tráfego externo. O endpoint interno é sempre ativado quando você ativa os endpoints baseados em IP do plano de controle.
  • Adicione redes autorizadas à lista de permissões ou negue o acesso de endereços IP públicos. Se você não configurar redes autorizadas, o plano de controle poderá ser acessado de qualquer endereço IP externo. Isso inclui endereços IP externos ou de Internet pública sem restrições. Google Cloud
  • Permitir ou negar o acesso de qualquer ou todos os endereços IP particulares no cluster.
  • Permita ou negue o acesso de Google Cloud endereços IP externos, que são endereços IP externos atribuídos a qualquer VM usada por qualquer cliente hospedado em Google Cloud.
  • Permitir ou negar acesso de endereços IP em outras Google Cloud regiões.

Analise as limitações do uso de endpoints baseados em IP antes de definir o acesso ao plano de controle.

Criar um cluster e definir o acesso ao plano de controle

Para criar ou atualizar um cluster do Autopilot ou padrão, use a CLI ou o console do Google Cloud.

Console

Para criar um cluster, siga estas etapas:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Configure os atributos do cluster com base nas necessidades do projeto.

  4. No menu de navegação, clique em Rede.

  5. Em Acesso ao plano de controle, configure os endpoints do plano de controle:

    1. Marque a caixa de seleção Acesso usando DNS para ativar os endpoints baseados em DNS do plano de controle.
    2. Marque a caixa de seleção Acesso usando endereços IPv4 para ativar os endpoints baseados em IP do plano de controle. Use a configuração incluída em Definir os endereços IP que podem acessar o plano de controle para personalizar o acesso aos endpoints baseados em IP.

gcloud

Para clusters do Autopilot, execute o seguinte comando:

  gcloud container clusters create-auto CLUSTER_NAME \
    --enable-ip-access  \
    --enable-dns-access

Para clusters padrão, execute o seguinte comando:

  gcloud container clusters create CLUSTER_NAME \
      --enable-ip-access \
      --enable-dns-access

Substitua:

  • CLUSTER_NAME: o nome do cluster.

Ambos os comandos incluem flags que permitem o seguinte:

  • enable-dns-access: permite o acesso ao plano de controle usando o endpoint baseado em DNS dele.
  • enable-ip-access: permite o acesso ao plano de controle usando endereços IPv4. Omita essa flag se quiser desativar os endpoints interno e externo do plano de controle.

Use as flags listadas em Definir os endereços IP que podem acessar o plano de controle para personalizar o acesso aos endpoints baseados em IP.

Definir o acesso ao endpoint baseado em DNS

É possível gerenciar a autenticação e a autorização para o endpoint baseado em DNS configurando a permissão container.clusters.connect do IAM. Para configurar essa permissão, atribua os seguintes papéis do IAM ao seu projeto Google Cloud :

  • roles/container.developer
  • roles/container.viewer

Opcionalmente, é possível gerenciar a acessibilidade do endpoint baseado em DNS usando os seguintes recursos:

  • VPC Service Controls: o endpoint baseado em DNS oferece suporte a VPC Service Controls para adicionar uma camada de segurança ao acesso ao plano de controle. Os VPC Service Controls funcionam de forma consistente em todas as Google Cloud APIs.

  • Acesso ao endpoint baseado em DNS de clientes sem acesso à Internet pública: o endpoint baseado em DNS pode ser acessado por APIs Google Cloud disponíveis na Internet pública. Para acessar o endpoint baseado em DNS de clientes privados, use o Acesso privado do Google, o gateway do Cloud NAT ou o Private Service Connect para Google Cloud APIs.

    Quando você usa o Private Service Connect para APIs Google Cloud , o GKE redireciona as solicitações de endereços gke.goog para o endereço IP interno adicionado pelo Private Service Connect para APIs do Google, e não para o endereço IP público padrão do Google. Para configurar o Private Service Connect para Google Cloud APIs, siga as etapas em Acessar APIs do Google por endpoints.

  • Acesso ao endpoint baseado em DNS por clientes locais: o endpoint baseado em DNS pode ser acessado por clientes locais pelo Acesso privado do Google. Para configurar o Acesso privado do Google, siga as etapas em Configurar o Acesso privado do Google para hosts locais.

Definir os endereços IP que podem acessar o plano de controle

Para definir os endereços IP que podem acessar o plano de controle, siga estas etapas:

Console

  1. Em Acesso ao plano de controle, selecione Ativar redes autorizadas.
  2. Clique em Adicionar rede autorizada.
  3. Digite um Nome para a rede.
  4. Em Rede, insira um intervalo CIDR para o qual você quer conceder acesso ao plano de controle do cluster.
  5. Clique em Concluído.
  6. Adicione outras redes autorizadas, se necessário.
Definir as regras de firewall de endereços IP do plano de controle

Para definir as regras de firewall de endereço IP do plano de controle, siga estas etapas:

  1. Expanda a seção Mostrar regras de firewall de endereços IP.
  2. Marque a caixa de seleção Acessar usando o endereço IP externo do plano de controle para permitir o acesso ao plano de controle de endereços IP públicos.

    Prática recomendada:

    Defina as redes autorizadas do plano de controle para restringir o acesso a ele.

  3. Selecione a caixa de seleção Acessar usando o endereço IP interno do plano de controle de qualquer região. Endereços IP internos de qualquer Google Cloud região podem acessar o endpoint interno do plano de controle.

  4. Selecione Aplicar redes autorizadas no endpoint interno do plano de controle. Somente os endereços IP definidos na lista Adicionar redes autorizadas podem acessar o endpoint interno do plano de controle. O endpoint interno é ativado por padrão.

  5. Selecione Adicionar Google Cloud endereços IP externos a redes autorizadas. Todos os endereços IP públicos de Google Cloud podem acessar o plano de controle.

gcloud

É possível configurar os endereços IP que podem acessar os endpoints externos e internos do plano de controle usando as seguintes flags:

  • enable-private-endpoint: especifica que o acesso ao endpoint externo está desativado. Omita essa flag se quiser permitir o acesso ao plano de controle por endereços IP externos. Nesse caso, recomendamos que você controle o acesso ao endpoint externo com a flag enable-master-authorized-networks.
  • enable-master-authorized-networks: Especifica que o acesso ao endpoint externo é restrito aos intervalos de endereços IP que você autoriza.
  • master-authorized-networks: lista os valores de CIDR para as redes autorizadas. Esta lista é delimitada por vírgulas. Por exemplo, 8.8.8.8/32,8.8.8.0/24.

    Prática recomendada:

    Use a flag enable-master-authorized-networks para restringir o acesso ao plano de controle.

  • enable-authorized-networks-on-private-endpoint: especifica que o acesso ao endpoint interno é restrito aos intervalos de endereços IP que você autoriza com a flag enable-master-authorized-networks.

  • no-enable-google-cloud-access: nega o acesso ao plano de controle de endereços IP externosGoogle Cloud .

  • enable-master-global-access: permite o acesso de endereços IP em outras Google Cloud regiões.

    É possível continuar a configurar a rede do cluster definindo o isolamento de nó ou pod no nível do cluster.

Também é possível criar um cluster e definir atributos no nível do cluster, como rede e sub-rede de nó, tipo de pilha de IP e alocação de endereço IP. Para saber mais, consulte Criar um cluster nativo de VPC.

Modificar o acesso ao plano de controle

Para alterar o acesso ao plano de controle de um cluster, use a CLI gcloud ou o console do Google Cloud.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster.

  3. Na guia Detalhes do cluster, em Rede do plano de controle, clique em .

  4. Na caixa de diálogo Editar rede do plano de controle, modifique o acesso do plano de controle com base nos requisitos do caso de uso.

  5. Verifique a configuração do plano de controle.

gcloud

Execute o comando abaixo e anexe as flags que atendem ao seu caso de uso. Use as seguintes flags:

  • enable-dns-access: permite o acesso ao plano de controle usando o endpoint baseado em DNS dele.
  • enable-ip-access: permite o acesso ao plano de controle usando endereços IPv4. Omita essa flag se quiser desativar os endpoints interno e externo do plano de controle.
  • enable-private-endpoint: especifica que o acesso ao endpoint externo está desativado. Omita essa flag se quiser permitir o acesso ao plano de controle por endereços IP externos. Nesse caso, recomendamos que você controle o acesso ao endpoint externo com a flag enable-master-authorized-networks.
  • enable-master-authorized-networks: Especifica que o acesso ao endpoint externo é restrito aos intervalos de endereços IP que você autoriza.
  • master-authorized-networks: lista os valores de CIDR para as redes autorizadas. Esta lista é delimitada por vírgulas. Por exemplo, 8.8.8.8/32,8.8.8.0/24.

    Prática recomendada:

    Use a flag enable-master-authorized-networks para restringir o acesso ao plano de controle.

  • enable-authorized-networks-on-private-endpoint: especifica que o acesso ao endpoint interno é restrito aos intervalos de endereços IP que você autoriza com a flag enable-master-authorized-networks.

  • no-enable-google-cloud-access: nega o acesso ao plano de controle de endereços IP externosGoogle Cloud .

  • enable-master-global-access: permite o acesso de endereços IP em outras Google Cloud regiões.

    gcloud container clusters update CLUSTER_NAME
    

    Substitua CLUSTER_NAME pelo nome do cluster.

Verificar a configuração do plano de controle

É possível conferir os endpoints do cluster usando a CLI gcloud ou o Console do Google Cloud.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster.

  3. Na guia Detalhes do cluster, em Plano de controle, é possível verificar as seguintes características dos endpoints do plano de controle:

    • Endpoint DNS inclui o nome do endpoint baseado em DNS do seu cluster, se você tiver ativado esse endpoint.
    • Acessar o plano de controle usando endereços IPv4 inclui o status do endpoint baseado em IP. Se estiver ativado, você poderá conferir as informações dos endpoints públicos e privados.
    • Acesso com o endereço IP interno do plano de controle de qualquer região mostra o status como Ativado quando o plano de controle pode ser acessado por endereços IP do Google de outras regiões.
    • Redes autorizadas mostra a lista de CIDRs que podem acessar o plano de controle, se você tiver ativado as redes autorizadas.
    • A opção Aplicar redes autorizadas no endpoint interno do plano de controle mostra o status Ativado se apenas os CIDRs no campo Redes autorizadas podem acessar o endpoint interno.
    • Adicionar Google Cloud endereços IP externos a redes autorizadas mostra o status Ativado se os endereços IP externos de Google Cloud podem acessar o plano de controle.

Para modificar qualquer atributo, clique em Acessar o plano de controle usando endereços IPv4 e ajuste com base no seu caso de uso.

gcloud

Para verificar a configuração do plano de controle, execute o seguinte comando:

gcloud container clusters describe CLUSTER_NAME

A saída tem um bloco controlPlaneEndpointsConfig que descreve a definição da rede. Você vai ver uma saída semelhante a esta:

controlPlaneEndpointsConfig:
dnsEndpointConfig:
  allowExternalTraffic: true
  endpoint: gke-dc6d549babec45f49a431dc9ca926da159ca-518563762004.us-central1-c.autopush.gke.goog
ipEndpointsConfig:
  authorizedNetworksConfig:
    cidrBlocks:
    - cidrBlock: 8.8.8.8/32
    - cidrBlock: 8.8.8.0/24
    enabled: true
    gcpPublicCidrsAccessEnabled: false
    privateEndpointEnforcementEnabled: true
  enablePublicEndpoint: false
  enabled: true
  globalAccess: true
  privateEndpoint: 10.128.0.13

Neste exemplo, o cluster tem a seguinte configuração:

  • Os endpoints baseados em DNS e endereço IP estão ativados.
  • As redes autorizadas são ativadas e os intervalos CIDR são definidos. Essas redes autorizadas são aplicadas ao endereço IP interno.
  • O acesso ao plano de controle a partir de Google Cloud endereços IP externos é negado.

Exemplos de configuração de acesso ao plano de controle

Esta seção detalha a configuração dos seguintes exemplos de isolamento de rede. Avalie estes exemplos para saber se eles são semelhantes ao seu caso de uso:

  • Exemplo 1: o plano de controle pode ser acessado de determinados endereços IP definidos por você. Isso pode incluir endereços IP de outras Google Cloud regiões ou endereços IP reservados pelo Google.
  • Exemplo 2: o plano de controle não é acessível por nenhum endereço IP externo.
Exemplo 1: o plano de controle pode ser acessado de determinados endereços IP

Nesta seção, você cria um cluster com as seguintes configurações de isolamento de rede:

  • O plano de controle tem o endpoint baseado em DNS ativado.
  • O plano de controle tem o endpoint externo ativado, além do endpoint interno ativado por padrão.
  • O plano de controle tem redes autorizadas definidas, permitindo que apenas as seguintes redes autorizadas acessem o plano de controle:

Para criar esse cluster, use a CLI ou o console do Google Cloud.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Configure o cluster de acordo com seus requisitos.

  4. No menu de navegação, clique em Rede.

  5. Em Acesso ao plano de controle, configure os endpoints do plano de controle:

    1. Marque a caixa de seleção Acesso usando DNS.
    2. Marque a caixa de seleção Acesso usando endereços IPV4.
  6. Selecione Ativar redes autorizadas.

  7. Clique em Adicionar rede autorizada.

  8. Digite um Nome para a rede.

  9. Em Rede, insira um intervalo CIDR para o qual você quer conceder acesso ao plano de controle do cluster.

  10. Clique em Concluído.

  11. Adicione outras redes autorizadas, se necessário.

  12. Expanda a seção Mostrar regras de firewall de endereços IP.

  13. Selecione Acessar com o endereço IP interno do plano de controle de qualquer região. Endereços IP internos de qualquer Google Cloud região podem acessar o plano de controle pelo endereço IP interno.

  14. Selecione Adicionar Google Cloud endereços IP externos a redes autorizadas. Todos os endereços IP externos de Google Cloud podem acessar o plano de controle.

Para continuar a configurar a rede do cluster, defina o isolamento de nó ou pod no nível do cluster.

gcloud

Execute este comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-master-authorized-networks \
    --enable-master-global-access \
    --master-authorized-networks CIDR1,CIDR2,...

Substitua:

  • CLUSTER_NAME: o nome do cluster do GKE.
  • CIDR1,CIDR2,...: uma lista delimitada por vírgulas de valores de CIDR para as redes autorizadas. Por exemplo, 8.8.8.8/32,8.8.8.0/24.
Exemplo 2: o plano de controle pode ser acessado por endereços IP internos

Nesta seção, você cria um cluster com as seguintes configurações de isolamento de rede:

  • O plano de controle tem o endpoint baseado em DNS ativado.
  • O plano de controle tem o endpoint externo desativado.
  • O plano de controle tem redes autorizadas ativadas.
  • Todo acesso ao plano de controle pelo endereço IP interno de qualquer Google Cloud região é permitido.
  • Google Cloud Endereços IP externos não têm acesso ao cluster.

É possível criar esse cluster usando a CLI ou o console do Google Cloud.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Configure o cluster de acordo com seus requisitos.

  4. No menu de navegação, clique em Rede.

  5. Em Acesso ao plano de controle, configure os endpoints do plano de controle:

    1. Marque a caixa de seleção Acesso usando DNS.
    2. Marque a caixa de seleção Acesso usando endereços IPV4.
  6. Expanda a seção Mostrar regras de firewall de endereços IP.

  7. Desmarque a opção Acessar usando o endereço IP externo do plano de controle. O plano de controle não é acessível por nenhum endereço IP externo.

  8. Em Acesso ao plano de controle, selecione Ativar redes autorizadas.

  9. Selecione a caixa de seleção Acessar usando o endereço IP interno do plano de controle de qualquer região. Endereços IP internos de qualquer Google Cloud região podem acessar o plano de controle pelo endereço IP interno.

É possível continuar a configuração da rede do cluster definindo o isolamento de nó ou pod no nível do cluster.

gcloud

Execute este comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-private-endpoint \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,... \
    --no-enable-google-cloud-access \
    --enable-master-global-access

Substitua:

  • CLUSTER_NAME: o nome do cluster.
  • CIDR1,CIDR2,...: uma lista delimitada por vírgulas de valores de CIDR para as redes autorizadas. Por exemplo, 8.8.8.8/32,8.8.8.0/24.

Configurar a rede de clusters

Nesta seção, você vai configurar o cluster para ter nós com acesso interno (particular) ou externo (público). O GKE permite combinar a configuração de rede do nó dependendo do tipo de cluster que você usa:

  • Cluster padrão: é possível criar ou atualizar os pools de nós para provisionar nós particulares ou públicos no mesmo cluster. Por exemplo, se você criar um pool de nós com nós particulares, o GKE vai provisionar os nós com apenas endereços IP internos. O GKE não modifica os pools de nós atuais. Também é possível definir a configuração de rede padrão no nível do cluster. O GKE aplica essa configuração de rede padrão apenas quando os novos pools de nós não têm nenhuma configuração de rede definida.
  • Clusters do Autopilot: é possível criar ou atualizar o cluster para definir a configuração de rede padrão para todas as cargas de trabalho. O GKE programa cargas de trabalho novas e atuais em nós públicos ou privados com base na sua configuração. Também é possível definir explicitamente a configuração da rede de cluster de uma carga de trabalho individual.

Configurar seu cluster

Nesta seção, configure a rede do cluster no nível do cluster. O GKE considera essa configuração quando o pool de nós ou a carga de trabalho não tem essa configuração definida.

Para definir a configuração no nível do cluster, use a CLI ou o console do Google Cloud.

Console

Criar um cluster

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar e, na seção Padrão ou Autopilot, clique em Configurar.

  3. Configure o cluster de acordo com seus requisitos.

  4. No menu de navegação, clique em Rede.

  5. Na seção Rede de cluster, conclua o seguinte com base no seu caso de uso:

    1. Selecione Ativar nós particulares para provisionar nós com apenas endereços IP internos (nós particulares) que impedem que clientes externos acessem os nós. Você pode mudar essas configurações a qualquer momento.
    2. Desmarque a opção Ativar nós particulares para provisionar nós apenas com endereços IP externos (públicos), o que permite que clientes externos acessem os nós.
  6. Na seção Opções avançadas de rede, configure outros atributos nativos da VPC. Para saber mais, consulte Criar um cluster nativo de VPC.

  7. Clique em Criar.

Atualizar um cluster

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster.

  3. Em Nós particulares, na guia Configuração padrão do novo pool de nós, clique em Editar nós particulares.

  4. Na caixa de diálogo Editar nós particulares, faça o seguinte:

    1. Selecione Ativar nós particulares para provisionar nós com apenas endereços IP internos (nós particulares) que impedem que clientes externos acessem os nós. Você pode mudar essas configurações a qualquer momento.
    2. Desmarque a opção Ativar nós particulares para provisionar nós apenas com endereços IP externos (públicos), o que permite que clientes externos acessem os nós.
  5. Clique em Salvar alterações.

gcloud

Use qualquer uma das seguintes flags para definir a rede de clusters:

  • enable-private-nodes: provisionar nós com apenas endereços IP internos (nós particulares). Considere as seguintes condições ao usar essa flag:
    • A flag enable-ip-alias é necessária ao usar enable-private-nodes.
    • A flag master-ipv4-cidr é opcional para criar sub-redes particulares. Se você usar essa flag, o GKE criará uma nova sub-rede que usa os valores definidos em master-ipv4-cidr e a nova sub-rede para provisionar o endereço IP interno para o plano de controle.
  • no-enable-private-nodes: provisionar nós com apenas endereços IP externos (nós públicos).

Em clusters do Autopilot, crie ou atualize o cluster com a flag enable-private-nodes.

  • Para criar um cluster, use o seguinte comando:

    gcloud container clusters create-auto CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Para atualizar um cluster, use o comando a seguir.

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    A atualização do cluster só entra em vigor depois que todos os pools de nós são reprogramados. Esse processo pode levar várias horas.

Em clusters padrão, crie ou atualize o cluster com a flag enable-private-nodes.

  • Para criar um cluster, use o seguinte comando:

    gcloud container clusters create CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Para atualizar um cluster, use o seguinte comando:

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    A atualização do cluster só entra em vigor em novos pools de nós. O GKE não atualiza essa configuração nos pools de nós atuais.

A configuração do cluster é substituída pela configuração de rede no nível da carga de trabalho ou do pool de nós.

Configurar os pools de nós ou as cargas de trabalho

Para configurar nós particulares ou públicos no nível da carga de trabalho em clusters do Autopilot ou em pools de nós para clusters padrão, use a CLI do Google Cloud ou o console do Google Cloud. Se você não definir a configuração de rede no nível da carga de trabalho ou do pool de nós, o GKE vai aplicar a configuração padrão no nível do cluster.

Console

Em clusters padrão, siga estas etapas:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na página Detalhes do cluster, clique no nome do cluster que você quer modificar.

  3. Clique em Adicionar pool de nós.

  4. Configure a caixa de seleção Ativar nós particulares com base no seu caso de uso:

    1. Selecione Ativar nós particulares para provisionar nós apenas com endereços IP internos (nós particulares).
    2. Desmarque a opção Ativar nós particulares para provisionar nós apenas com endereços IP externos (públicos), o que permite que clientes externos acessem os nós. Essa configuração pode ser alterada a qualquer momento.
  5. Configure o novo pool de nós.

  6. Clique em Criar.

Para saber mais sobre o gerenciamento de pools de nós, consulte Adicionar e gerenciar pools de nós.

gcloud

  • Em clusters do Autopilot, para solicitar que o GKE programe um pod em nós particulares, adicione o nodeSelector a seguir à especificação do pod:

    cloud.google.com/private-node=true
    

    Use private-node=true no nodeSelector do pod para programar um pod em nós com apenas endereços IP internos (nós particulares).

    O GKE recria seus pods em nós particulares ou públicos, com base na sua configuração. Para evitar a interrupção da carga de trabalho, migre cada carga de trabalho de maneira independente e monitore a migração.

  • Em clusters padrão, para provisionar nós por meio de endereços IP privados em um pool de nós atual, execute o seguinte comando:

    gcloud container node-pools update NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    Substitua:

    • NODE_POOL_NAME: o nome do pool de nós que você quer editar.
    • CLUSTER_NAME: o nome do cluster atual.

    Use qualquer uma das flags a seguir para definir a configuração de rede do pool de nós:

    • enable-private-nodes: provisionar nós com apenas endereços IP internos (nós particulares).
    • no-enable-private-nodes: provisionar nós com apenas endereços IP externos (nós públicos).

Configurações avançadas

As seções a seguir descrevem configurações avançadas que podem ser necessárias ao configurar o isolamento de rede do cluster.

Como usar o Cloud Shell para acessar um cluster com o endpoint externo desativado

Se o endpoint externo do plano de controle do cluster estiver desativado, não será possível acessar o plano de controle do GKE com o Cloud Shell. Se você quiser usar o Cloud Shell para acessar o cluster, recomendamos ativar o endpoint baseado em DNS.

Para verificar o acesso ao cluster, siga estas etapas:

  1. Se você tiver ativado o endpoint baseado em DNS, execute o seguinte comando para receber as credenciais do cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --dns-endpoint
    

    Se você tiver ativado o endpoint baseado em IP, execute o seguinte comando para receber as credenciais do cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --project=PROJECT_ID \
        --internal-ip
    

    Substitua PROJECT_ID pela ID do seu projeto.

  2. Use kubectl no Cloud Shell para acessar o cluster:

    kubectl get nodes
    

    O resultado será assim:

    NAME                                               STATUS   ROLES    AGE    VERSION
    gke-cluster-1-default-pool-7d914212-18jv   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-3d9p   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-wgqf   Ready    <none>   104m   v1.21.5-gke.1302
    

O comando get-credentials usa automaticamente o endpoint baseado em DNS se o acesso ao endpoint baseado em IP estiver desativado.

Adicionar regras de firewall para casos de uso específicos

Esta seção explica como adicionar uma regra de firewall a um cluster. Por padrão, as regras de firewall restringem o plano de controle do cluster a apenas iniciar conexões TCP com os nós e pods nas portas 443 (HTTPS) e 10250 (kubelet). Para alguns recursos do Kubernetes, talvez seja necessário adicionar regras de firewall para permitir o acesso em outras portas. Não crie regras de firewall ou regras de políticas hierárquicas de firewall que tenham uma prioridade mais alta do que as regras de firewall criadas automaticamente.

Os recursos do Kubernetes que exigem regras de firewall adicionais incluem:

Adicionar uma regra de firewall permite o tráfego do plano de controle do cluster para todos os itens a seguir:

  • A porta especificada de cada nó (hostPort).
  • a porta especificada de cada pod em execução nesses nós
  • A porta especificada de cada Service em execução nesses nós

Para saber mais sobre as regras de firewall, consulte Regras de firewall na documentação do Cloud Load Balancing

Para adicionar uma regra de firewall a um cluster, você precisa registrar o bloco CIDR do plano de controle do cluster e o destino usado. Depois de registrá-la, é possível criar a regra.

Ver o bloco CIDR do plano de controle

Você precisa do bloco CIDR do plano de controle do cluster para adicionar uma regra de firewall.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster.

Na guia Detalhes, em Rede, anote o valor do campo Intervalo de endereços do plano de controle.

gcloud

Execute este comando:

gcloud container clusters describe CLUSTER_NAME

Substitua CLUSTER_NAME pelo nome do cluster.

Na saída do comando, anote o valor no campo masterIpv4CidrBlock.

Ver as regras de firewall atuais

É necessário especificar o destino (neste caso, os nós de destino) que as regras de firewall do cluster usam.

Console

  1. Acesse a página de políticas de firewall no console do Google Cloud.

    Acessar as políticas de firewall

  2. Em Filtrar tabela para regras de firewall da VPC, insira gke-CLUSTER_NAME.

Nos resultados, anote o valor no campo Destinos.

gcloud

Execute este comando:

gcloud compute firewall-rules list \
    --filter 'name~^gke-CLUSTER_NAME' \
    --format 'table(
        name,
        network,
        direction,
        sourceRanges.list():label=SRC_RANGES,
        allowed[].map().firewall_rule().list():label=ALLOW,
        targetTags.list():label=TARGET_TAGS
    )'

Na saída do comando, anote o valor no campo Destinos.

Para conferir as regras de firewall de uma VPC compartilhada, adicione a flag --project HOST_PROJECT_ID ao comando.

Adicionar uma regra de firewall

Console

  1. Acesse a página de políticas de firewall no console do Google Cloud.

    Acessar as políticas de firewall

  2. Clique em Criar regra de firewall.

  3. Em Nome, insira o nome desejado para a regra de firewall.

  4. Na lista Rede, selecione a rede relevante.

  5. Em Direção de tráfego, clique em Entrada.

  6. Em Ação se houver correspondência, clique em Permitir.

  7. Na lista Destinos, selecione Tags de destino especificadas.

  8. Em Tags de destino, insira o valor de destino que você anotou anteriormente.

  9. Na lista Filtro de origem, selecione Intervalos IPv4.

  10. Em Intervalos de IPv4 de origem, insira o bloco CIDR do plano de controle do cluster.

  11. Em Protocolos e portas, clique em Protocolos e portas especificados e marque a caixa de seleção do protocolo relevante (tcp ou udp) e insira o número da porta no campo do protocolo.

  12. Clique em Criar.

gcloud

Execute este comando:

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --action ALLOW \
    --direction INGRESS \
    --source-ranges CONTROL_PLANE_RANGE \
    --rules PROTOCOL:PORT \
    --target-tags TARGET

Substitua:

  • FIREWALL_RULE_NAME: o nome escolhido para a regra de firewall.
  • CONTROL_PLANE_RANGE: o intervalo de endereços IP do plano de controle de cluster (masterIpv4CidrBlock) coletado anteriormente.
  • PROTOCOL:PORT: é a porta desejada e o protocolo dela, tcp ou udp.
  • TARGET: é o valor de destino (Targets) coletado anteriormente.

Para adicionar uma regra de firewall a uma VPC compartilhada, adicione as seguintes flags ao comando:

--project HOST_PROJECT_ID
--network NETWORK_ID

Como conceder aos nós privados acesso à Internet de saída

Para fornecer acesso de Internet de saída aos seus nós particulares, como para extrair imagens de um registro externo, use o Cloud NAT para criar e configurar um Cloud Router. O Cloud NAT permite que nós particulares estabeleçam conexões de saída pela Internet para enviar e receber pacotes.

O Cloud Router permite que todos os nós da região usem o Cloud NAT para todos os intervalos de IP de alias e principais. Ele também aloca automaticamente os endereços IP externos para o gateway NAT.

Para instruções sobre como criar e configurar um Cloud Router, consulte Criar uma configuração do Cloud NAT usando o Cloud Router na documentação do Cloud NAT.

Como implantar um aplicativo de contêiner do Windows Server

Para saber como implantar um aplicativo de contêiner do Windows Server em um cluster com nós particulares, consulte a documentação do pool de nós do Windows.

A seguir