Personalize o isolamento da rede no GKE

Esta página explica como configurar o isolamento de rede para clusters do Google Kubernetes Engine (GKE) quando cria ou atualiza o cluster.

Prática recomendada:

Planeie e crie o isolamento da rede de clusters com os arquitetos de rede, os administradores de rede ou qualquer outra equipa de engenheiros de rede da sua organização responsável por definir, implementar e manter a arquitetura de rede.

Como funciona o isolamento da rede de clusters

Num cluster do GKE, o isolamento da rede depende de quem pode aceder aos componentes do cluster e como. Pode controlar:

  • Acesso ao plano de controlo: pode personalizar o acesso externo, o acesso limitado ou o acesso não restrito ao plano de controlo.
  • Rede de clusters: pode escolher quem pode aceder aos nós em clusters padrão ou às cargas de trabalho em clusters do Autopilot.

Antes de criar o cluster, considere o seguinte:

  1. Quem pode aceder ao plano de controlo e como é que o plano de controlo é exposto?
  2. Como são expostos os seus nós ou cargas de trabalho?

Para responder a estas perguntas, siga as diretrizes de planeamento e conceção em Acerca do isolamento de rede.

Restrições e limitações

Por predefinição, o GKE cria os seus clusters como clusters nativos de VPC. Os clusters nativos da VPC não suportam redes antigas.

Intervalos secundários de pods ao nível do node pool: quando cria um cluster do GKE, se especificar um intervalo secundário de pods inferior a /24 por node pool através da IU, pode ocorrer o seguinte erro:

Getting Pod secondary range 'pod' must have a CIDR block larger or equal to /24

O GKE não suporta a especificação de um intervalo inferior a /24 ao nível do conjunto de nós. No entanto, a especificação de um intervalo mais pequeno ao nível do cluster é suportada. Isto pode ser feito através da Google Cloud CLI com o argumento --cluster-ipv4-cidr. Para mais informações, consulte o artigo Criar um cluster com um intervalo CIDR específico.

Expanda as secções seguintes para ver as regras relativas aos intervalos de endereços IP e ao tráfego quando cria um cluster.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.

Configure o acesso ao plano de controlo

Quando cria um cluster do GKE em qualquer versão através da CLI Google Cloud ou na versão 1.29 e posteriores através da consola, o plano de controlo é acessível através das seguintes interfaces:

Ponto final baseado em DNS

O acesso ao plano de controlo depende da resolução de DNS do tráfego de origem. Ative o ponto final baseado em DNS para obter as seguintes vantagens:

  • Crie uma política de acesso dinâmico baseada em políticas IAM.
  • Aceda ao plano de controlo a partir de outras redes VPC ou localizações externas sem ter de configurar um anfitrião de bastião ou nós proxy.

Para configurar o acesso ao ponto final baseado em DNS, consulte o artigo Defina o acesso ao ponto final baseado em DNS.

Pontos finais baseados em IP

O acesso aos pontos finais do plano de controlo depende do endereço IP de origem e é controlado pelas suas redes autorizadas. Pode gerir o acesso aos pontos finais baseados em IP do plano de controlo, incluindo:

  • Ative ou desative o ponto final baseado em IP.
  • Ative ou desative o ponto final externo para permitir o acesso a partir de tráfego externo. O ponto final interno está sempre ativado quando ativa os pontos finais baseados em IP do plano de controlo.
  • Adicione redes autorizadas à lista de autorizações ou negue o acesso a partir de endereços IP públicos. Se não configurar redes autorizadas, o plano de controlo fica acessível a partir de qualquer endereço IP externo. Isto inclui a Internet pública ou Google Cloud endereços IP externos sem restrições.
  • Permitir ou negar o acesso a partir de qualquer ou todos os endereços IP privados no cluster.
  • Permitir ou negar o acesso a partir de Google Cloud endereços IP externos, que são endereços IP externos atribuídos a qualquer VM usada por qualquer cliente alojado no Google Cloud.

  • Adicionar à lista de autorizações ou negar acesso a partir de endereços IP noutras Google Cloud regiões.

Reveja as limitações da utilização de pontos finais baseados em IP antes de definir o acesso ao plano de controlo.

Crie um cluster e defina o acesso ao plano de controlo

Para criar ou atualizar um cluster do Autopilot ou Standard, use a CLI do Google Cloud ou a Google Cloud consola.

Consola

Para criar um cluster, conclua os seguintes passos:

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Clique em Criar.

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

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

  5. Em Acesso ao plano de controlo, configure os pontos finais do plano de controlo:

    1. Selecione a caixa de verificação Aceder através do DNS para ativar os pontos finais baseados em DNS do plano de controlo.
    2. Selecione a caixa de verificação Aceder através de endereços IPv4 para ativar os pontos finais baseados em IP do plano de controlo. Use a configuração incluída em Defina os endereços IP que podem aceder ao plano de controlo para personalizar o acesso aos pontos finais 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 o seguinte:

  • CLUSTER_NAME: o nome do cluster.

Ambos os comandos incluem flags que permitem o seguinte:

  • enable-dns-access: permite o acesso ao plano de controlo através do ponto final baseado em DNS do plano de controlo.
  • enable-ip-access: Permite o acesso ao plano de controlo através de endereços IPv4. Se quiser desativar os pontos finais internos e externos do plano de controlo, use a flag no-enable-ip-access.

Use as flags indicadas em Defina os endereços IP que podem aceder ao plano de controlo para personalizar o acesso aos pontos finais baseados em IP.

Defina o acesso ao ponto final baseado em DNS

Pode gerir a autenticação e a autorização para o ponto final baseado em DNS configurando a autorização IAM container.clusters.connect. Para configurar esta autorização, atribua uma das seguintes funções do IAM ao seu projetoGoogle Cloud :

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

Opcionalmente, pode gerir a acessibilidade do ponto final baseado em DNS através das seguintes funcionalidades:

  • VPC Service Controls: o ponto final baseado em DNS suporta os VPC Service Controls para adicionar uma camada de segurança ao acesso ao plano de controlo. Os VPC Service Controls funcionam de forma consistente em todas as APIs. Google Cloud

  • Acesso ao ponto final baseado em DNS a partir de clientes sem acesso público à Internet: o ponto final baseado em DNS é acessível através de APIs que estão disponíveis na Internet pública. Google Cloud Para aceder ao ponto final baseado em DNS a partir de clientes privados, pode usar o acesso privado à Google, o gateway Cloud NAT ou o Private Service Connect para Google Cloud APIs.

    Quando usa o Private Service Connect para Google Cloud APIs, o GKE encaminha novamente os pedidos de gke.goog endereços para o endereço IP interno que o Private Service Connect para APIs Google adicionou, e não para o endereço IP público predefinido da Google. Para configurar o Private Service Connect para Google Cloud APIs, conclua os passos em Aceda às APIs Google através de pontos finais.

  • Acesso ao ponto final baseado em DNS a partir de clientes no local: os clientes no local podem aceder ao ponto final baseado em DNS através do acesso privado à Google. Para configurar o acesso privado à Google, conclua os passos em Configure o acesso privado à Google para anfitriões no local.

Defina os endereços IP que podem aceder ao plano de controlo

Para definir os endereços IP que podem aceder ao plano de controlo, conclua os seguintes passos:

Consola

  1. Em Acesso ao plano de controlo, selecione Ativar redes autorizadas.
  2. Clique em Adicionar rede autorizada.
  3. Introduza um Nome para a rede.
  4. Para Rede, introduza um intervalo CIDR ao qual quer conceder acesso ao plano de controlo do cluster.
  5. Clique em Concluído.
  6. Adicione redes autorizadas adicionais, se necessário.
Defina as regras de firewall do endereço IP do plano de controlo

Para definir as regras de firewall do endereço IP do plano de controlo, conclua os seguintes passos:

  1. Expanda a secção Mostrar regras de firewall de endereços IP.
  2. Selecione a caixa de verificação Aceder através do endereço IP externo do plano de controlo para permitir o acesso ao plano de controlo a partir de endereços IP públicos.

    Prática recomendada:

    Defina redes autorizadas do plano de controlo para restringir o acesso ao plano de controlo.

  3. Selecione a caixa de verificação Aceder através do endereço IP interno do plano de controlo a partir de qualquer região. Os endereços IP internos de qualquer Google Cloud região podem aceder ao ponto final interno do plano de controlo.

  4. Selecione Impor redes autorizadas no ponto final interno do plano de controlo. Apenas os endereços IP que definiu na lista Adicionar redes autorizadas podem aceder ao ponto final interno do plano de controlo. O ponto final interno está ativado por predefinição.

  5. Selecione Adicionar Google Cloud endereços IP externos a redes autorizadas. Todos os endereços IP públicos de Google Cloud podem aceder ao plano de controlo.

gcloud

Pode configurar os endereços IP que podem aceder aos pontos finais externos e internos do plano de controlo através das seguintes flags:

  • enable-private-endpoint: especifica que o acesso ao ponto final externo está desativado. Omita esta flag se quiser permitir o acesso ao plano de controlo a partir de endereços IP externos. Neste caso, recomendamos vivamente que controle o acesso ao ponto final externo com a flag enable-master-authorized-networks.
  • enable-master-authorized-networks: Especifica que o acesso ao ponto final externo está restrito a intervalos de endereços IP que autoriza.
  • master-authorized-networks: lista os valores CIDR das redes autorizadas. Esta lista é uma 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 que o acesso ao plano de controlo seja restrito.

  • enable-authorized-networks-on-private-endpoint: especifica que o acesso ao ponto final interno está restrito a intervalos de endereços IP que autoriza com a flag enable-master-authorized-networks.

  • no-enable-google-cloud-access: nega o acesso ao plano de controlo a partir de Google Cloud endereços IP externos. Tenha em atenção que a atualização desta definição não entra em vigor imediatamente. Pode demorar várias horas para que o GKE propague e aplique as alterações às regras de firewall.

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

    Pode continuar a configurar a rede de clusters definindo o isolamento de nós ou pods ao nível do cluster.

Também pode criar um cluster e definir atributos ao nível do cluster, como a rede e a sub-rede de nós, o tipo de pilha de IP e a atribuição de endereços IP. Para saber mais, consulte o artigo Crie um cluster nativo de VPC.

Modifique o acesso ao plano de controlo

Para alterar o acesso ao plano de controlo de um cluster, use a CLI gcloud ou a Google Cloud consola.

Consola

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

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

  3. No separador Detalhes do cluster, em Rede do plano de controlo, clique em .

  4. Na caixa de diálogo Editar rede do plano de controlo, modifique o acesso ao plano de controlo com base nos requisitos do seu exemplo de utilização.

  5. Valide a configuração do plano de controlo.

gcloud

Execute o seguinte comando e anexe os indicadores que se adequam ao seu exemplo de utilização. Pode usar as seguintes flags:

  • enable-dns-access: permite o acesso ao plano de controlo através do ponto final baseado em DNS do plano de controlo.
  • enable-ip-access: Permite o acesso ao plano de controlo através de endereços IPv4. Se quiser desativar os pontos finais internos e externos do plano de controlo, use a flag no-enable-ip-access.
  • enable-private-endpoint: especifica que o acesso ao ponto final externo está desativado. Omita esta flag se quiser permitir o acesso ao plano de controlo a partir de endereços IP externos. Neste caso, recomendamos vivamente que controle o acesso ao ponto final externo com a flag enable-master-authorized-networks.
  • enable-master-authorized-networks: Especifica que o acesso ao ponto final externo está restrito a intervalos de endereços IP que autoriza.
  • master-authorized-networks: lista os valores CIDR das redes autorizadas. Esta lista é uma 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 que o acesso ao plano de controlo seja restrito.

  • enable-authorized-networks-on-private-endpoint: especifica que o acesso ao ponto final interno está restrito a intervalos de endereços IP que autoriza com a flag enable-master-authorized-networks.

  • no-enable-google-cloud-access: nega o acesso ao plano de controlo a partir de Google Cloud endereços IP externos. Tenha em atenção que a atualização desta definição não entra em vigor imediatamente. Pode demorar várias horas para que o GKE propague e aplique as alterações às regras de firewall.

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

    gcloud container clusters update CLUSTER_NAME
    

    Substitua CLUSTER_NAME pelo nome do cluster.

Valide a configuração do plano de controlo

Pode ver os pontos finais do cluster através da CLI gcloud ou da Google Cloud consola.

Consola

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

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

  3. No separador Detalhes do cluster, em Plano de controlo, pode verificar as seguintes caraterísticas dos pontos finais do plano de controlo:

    • O ponto final de DNS inclui o nome do ponto final baseado em DNS do seu cluster, se tiver ativado este ponto final.
    • O acesso ao plano de controlo através de endereços IPv4 inclui o estado do ponto final baseado em IP. Se estiver ativada, pode ver as informações dos pontos finais públicos e privados.
    • A opção Aceder através do endereço IP interno do plano de controlo a partir de qualquer região mostra o estado como Ativado quando o plano de controlo pode ser acedido por endereços IP da Google de outras regiões.
    • Redes autorizadas mostra a lista de CIDRs que podem aceder ao plano de controlo, se tiver ativado as redes autorizadas.
    • A opção Aplique redes autorizadas no ponto final interno do plano de controlo mostra o estado Ativado se apenas os CIDRs no campo Redes autorizadas puderem aceder ao ponto final interno.
    • Adicionar Google Cloud endereços IP externos a redes autorizadas mostra o estado Ativado se os endereços IP externos de Google Cloud puderem aceder ao plano de controlo.

Para modificar qualquer atributo, clique em Acesso ao plano de controlo através de endereços IPv4 e ajuste com base no seu exemplo de utilização.

gcloud

Para validar a configuração do plano de controlo, execute o seguinte comando:

gcloud container clusters describe CLUSTER_NAME

A saída tem um bloco controlPlaneEndpointsConfig que descreve a definição de rede. Pode ver um resultado semelhante ao seguinte:

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 pontos finais baseados em DNS e endereços IP estão ativados.
  • As redes autorizadas estão ativadas e os intervalos CIDR estão definidos. Estas redes autorizadas são aplicadas ao endereço IP interno.
  • O acesso ao plano de controlo a partir de Google Cloud endereços IP externos é negado.

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

Esta secção detalha a configuração dos seguintes exemplos de isolamento de rede. Avalie estes exemplos para verificar a semelhança com o seu exemplo de utilização:

  • Exemplo 1: o plano de controlo é acessível a partir de determinados endereços IP que define. Estes podem incluir endereços IP de outras Google Cloud regiões ou endereços IP reservados pela Google.
  • Exemplo 2: o plano de controlo não está acessível através de nenhum endereço IP externo.
Exemplo 1: o plano de controlo está acessível a partir de determinados endereços IP

Nesta secção, cria um cluster com as seguintes configurações de isolamento da rede:

  • O plano de controlo tem o ponto final baseado em DNS ativado.
  • O plano de controlo tem o ponto final externo ativado, além do ponto final interno ativado por predefinição.
  • O plano de controlo tem redes autorizadas definidas, o que permite que apenas as seguintes redes autorizadas alcancem o plano de controlo:

Para criar este cluster, use a Google Cloud CLI ou a Google Cloud consola.

Consola

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Clique em Criar.

  3. Configure o cluster de acordo com os seus requisitos.

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

  5. Em Acesso ao plano de controlo, configure os pontos finais do plano de controlo:

    1. Selecione a caixa de verificação Aceder através do DNS.
    2. Selecione a caixa de verificação Aceder através de endereços IPv4.
  6. Selecione Ativar redes autorizadas.

  7. Clique em Adicionar rede autorizada.

  8. Introduza um Nome para a rede.

  9. Para Rede, introduza um intervalo CIDR ao qual quer conceder acesso ao plano de controlo do cluster.

  10. Clique em Concluído.

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

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

  13. Selecione Aceder através do endereço IP interno do plano de controlo a partir de qualquer região. Os endereços IP internos de qualquer Google Cloud região podem aceder ao plano de controlo através do 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 aceder ao plano de controlo.

Pode continuar a configurar a rede de clusters definindo o isolamento de nós ou pods ao nível do cluster.

gcloud

Execute o seguinte 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 o seguinte:

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

Nesta secção, cria um cluster com as seguintes configurações de isolamento da rede:

  • O plano de controlo tem o ponto final baseado em DNS ativado.
  • O plano de controlo tem o ponto final externo desativado.
  • O plano de controlo tem redes autorizadas ativadas.
  • Todo o acesso ao plano de controlo através do endereço IP interno de qualquer regiãoGoogle Cloud é permitido.
  • Google Cloud Os endereços IP externos não têm acesso ao seu cluster.

Pode criar este cluster através da Google Cloud CLI ou da Google Cloud consola.

Consola

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Clique em Criar.

  3. Configure o cluster de acordo com os seus requisitos.

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

  5. Em Acesso ao plano de controlo, configure os pontos finais do plano de controlo:

    1. Selecione a caixa de verificação Aceder através do DNS.
    2. Selecione a caixa de verificação Aceder através de endereços IPv4.
  6. Expanda a secção Mostrar regras de firewall de endereços IP.

  7. Desmarque a opção Aceder através do endereço IP externo do plano de controlo. O plano de controlo não é acessível por nenhum endereço IP externo.

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

  9. Selecione a caixa de verificação Aceder através do endereço IP interno do plano de controlo a partir de qualquer região. Os endereços IP internos de qualquer Google Cloud região podem aceder ao plano de controlo através do endereço IP interno.

Pode continuar a configuração da rede de clusters definindo o isolamento de nós ou pods ao nível do cluster.

gcloud

Execute o seguinte 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 o seguinte:

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

Configure a rede de clusters

Nesta secção, configura o cluster para ter nós com acesso interno (privado) ou externo (público). O GKE permite-lhe combinar a configuração de rede dos nós consoante o tipo de cluster que usa:

  • Cluster padrão: pode criar ou atualizar os seus conjuntos de nós para aprovisionar nós privados ou públicos no mesmo cluster. Por exemplo, se criar um conjunto de nós com nós privados, o GKE aprovisiona os respetivos nós apenas com endereços IP internos. O GKE não modifica os node pools existentes. Também pode definir a configuração de rede predefinida ao nível do cluster. O GKE aplica esta configuração de rede predefinida apenas quando os novos conjuntos de nós não têm nenhuma configuração de rede definida.
  • Clusters do Autopilot: pode criar ou atualizar o cluster para definir a configuração de rede predefinida para todas as suas cargas de trabalho. O GKE agenda cargas de trabalho novas e existentes em nós públicos ou privados com base na sua configuração. Também pode definir explicitamente a configuração da rede de clusters de uma carga de trabalho individual.

Configure o cluster

Nesta secção, configure a rede de clusters ao nível do cluster. O GKE considera esta configuração quando o seu conjunto de nós ou carga de trabalho não tem esta configuração definida.

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

Consola

Crie um cluster

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

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

  3. Configure o cluster de acordo com os seus requisitos.

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

  5. Na secção Redes de clusters, conclua o seguinte com base no seu exemplo de utilização:

    1. Selecione Ativar nós privados para aprovisionar nós apenas com endereços IP internos (nós privados), o que impede que os clientes externos acedam aos nós. Pode alterar estas definições em qualquer altura.
    2. Desmarque a opção Ativar nós privados para aprovisionar nós apenas com endereços IP externos (públicos), o que permite que os clientes externos acedam aos nós.
  6. Na secção Opções de rede avançadas, configure atributos nativos da VPC adicionais. Para saber mais, consulte o artigo Crie um cluster nativo de VPC.

  7. Clique em Criar.

Atualize um cluster existente

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

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

  3. Em Nós privados, no separador Configuração predefinida do novo conjunto de nós, clique em Editar nós privados.

  4. Na caixa de diálogo Editar nós privados, faça qualquer uma das seguintes ações:

    1. Selecione Ativar nós privados para aprovisionar nós apenas com endereços IP internos (nós privados), o que impede que os clientes externos acedam aos nós. Pode alterar estas definições em qualquer altura.
    2. Desmarque a opção Ativar nós privados para aprovisionar nós apenas com endereços IP externos (públicos), o que permite que os clientes externos acedam aos nós.
  5. Clique em Guardar alterações.

gcloud

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

  • enable-private-nodes: Para aprovisionar nós apenas com endereços IP internos (nós privados). Considere as seguintes condições quando usar esta flag:
    • A flag enable-ip-alias é obrigatória quando usa enable-private-nodes.
    • A flag master-ipv4-cidr é opcional para criar sub-redes privadas. Se usar esta flag, o GKE cria uma nova sub-rede que usa os valores definidos em master-ipv4-cidr e usa a nova sub-rede para aprovisionar o endereço IP interno para o plano de controlo.
  • no-enable-private-nodes: Para aprovisionar nós apenas com endereços IP externos (nós públicos).

Nos 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 seguinte comando.

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

    A atualização do cluster só entra em vigor depois de todos os node pools terem sido reagendados. Este processo pode demorar várias horas.

Nos 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 node pools. O GKE não atualiza esta configuração em node pools existentes.

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

Configure os seus node pools ou cargas de trabalho

Para configurar nós privados ou públicos ao nível da carga de trabalho para clusters do Autopilot ou conjuntos de nós para clusters Standard, use a CLI Google Cloud ou aGoogle Cloud consola. Se não definir a configuração de rede ao nível da carga de trabalho ou do conjunto de nós, o GKE aplica a configuração predefinida ao nível do cluster.

Consola

Nos clusters padrão, conclua os seguintes passos:

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

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

  3. Clique em Adicionar conjunto de nós.

  4. Configure a caixa de verificação Ativar nós privados com base no seu exemplo de utilização:

    1. Selecione Ativar nós privados para aprovisionar nós apenas com endereços IP internos (nós privados).
    2. Desmarque a opção Ativar nós privados para aprovisionar nós apenas com endereços IP externos (públicos), o que permite que os clientes externos acedam aos nós. Pode alterar esta configuração em qualquer altura.
  5. Configure o novo node pool.

  6. Clique em Criar.

Para saber mais sobre a gestão de conjuntos de nós, consulte o artigo Adicione e faça a gestão de conjuntos de nós.

gcloud

  • Nos clusters do Autopilot e nos node pools padrão que usam o aprovisionamento automático de nós, adicione o seguinte nodeSelector à especificação do pod:

    cloud.google.com/private-node=true
    

    Use private-node=true para agendar um pod em nós que tenham apenas endereços IP internos (nós privados).

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

  • Nos clusters padrão, para aprovisionar nós através de endereços IP privados num conjunto de nós existente, execute o seguinte comando:

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

    Substitua o seguinte:

    • NODE_POOL_NAME: o nome do conjunto de nós que quer editar.
    • CLUSTER_NAME: o nome do cluster existente.

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

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

Configurações avançadas

As secções seguintes descrevem as configurações avançadas que pode querer quando configurar o isolamento da rede do cluster.

Usar o Cloud Shell para aceder a um cluster com o ponto final externo desativado

Se o ponto final externo do painel de controlo do cluster estiver desativado, não pode aceder ao painel de controlo do GKE com o Cloud Shell. Se quiser usar o Cloud Shell para aceder ao seu cluster, recomendamos que ative o ponto final baseado em DNS.

Para validar o acesso ao seu cluster, conclua os seguintes passos:

  1. Se ativou o ponto final baseado em DNS, execute o seguinte comando para obter as credenciais do cluster:

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

    Se ativou o ponto final baseado em IP, execute o seguinte comando para obter as credenciais do cluster:

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

    Substitua PROJECT_ID pelo ID do seu projeto.

  2. Use kubectl no Cloud Shell para aceder ao seu cluster:

    kubectl get nodes
    

    O resultado é semelhante ao seguinte:

    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 ponto final baseado em DNS se o acesso ao ponto final baseado em IP estiver desativado.

Adicione regras de firewall para exemplos de utilização específicos

Esta secção explica como adicionar uma regra de firewall a um cluster. Por predefinição, as regras de firewall restringem o plano de controlo do cluster para iniciar apenas ligações TCP aos seus nós e pods nas portas 443 (HTTPS) e 10250 (kubelet). Para algumas funcionalidades do Kubernetes, pode ter de adicionar regras de firewall para permitir o acesso em portas adicionais. Não crie regras de firewall nem regras de políticas de firewall hierárquicas que tenham uma prioridade mais elevada do que as regras de firewall criadas automaticamente.

As funcionalidades do Kubernetes que requerem regras de firewall adicionais incluem:

A adição de uma regra de firewall permite o tráfego do plano de controlo do cluster para todos os seguintes elementos:

  • A porta especificada de cada nó (hostPort).
  • A porta especificada de cada Pod em execução nestes nós.
  • A porta especificada de cada serviço em execução nestes nós.

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

Para adicionar uma regra de firewall num cluster, tem de registar o bloco CIDR do plano de controlo do cluster e o destino usado. Depois de registar esta informação, pode criar a regra.

Veja o bloco CIDR do plano de controlo

Precisa do bloco CIDR do plano de controlo do cluster para adicionar uma regra de firewall.

Consola

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

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

No separador Detalhes, em Rede, tome nota do valor no campo Intervalo de endereços do plano de controlo.

gcloud

Execute o seguinte comando:

gcloud container clusters describe CLUSTER_NAME

Substitua CLUSTER_NAME pelo nome do seu cluster.

No resultado do comando, tome nota do valor no campo masterIpv4CidrBlock.

Veja as regras de firewall existentes

Tem de especificar o destino (neste caso, os nós de destino) que as regras de firewall existentes do cluster usam.

Consola

  1. Aceda à página Políticas de firewall na Google Cloud consola.

    Aceder a Políticas de firewall

  2. Para Filtrar tabela para Regras de firewall de VPC, introduza gke-CLUSTER_NAME.

Nos resultados, tome nota do valor no campo Alvos.

gcloud

Execute o seguinte 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
    )'

No resultado do comando, tome nota do valor no campo Targets.

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

Adicione uma regra de firewall

Consola

  1. Aceda à página Políticas de firewall na Google Cloud consola.

    Aceder a Políticas de firewall

  2. Clique em Criar regra de firewall.

  3. Em Nome, introduza o nome da regra de firewall.

  4. Na lista Rede, selecione a rede relevante.

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

  6. Em Ação em caso de correspondência, clique em Permitir.

  7. Na lista Alvos, selecione Etiquetas de alvos especificadas.

  8. Para Etiquetas de destino, introduza o valor de destino que anotou anteriormente.

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

  10. Para Intervalos IPv4 de origem, introduza o bloco CIDR do painel de controlo do cluster.

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

  12. Clique em Criar.

gcloud

Execute o seguinte 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 o seguinte:

  • FIREWALL_RULE_NAME: o nome que escolher para a regra da firewall.
  • CONTROL_PLANE_RANGE: o intervalo de endereços IP do plano de controlo do cluster (masterIpv4CidrBlock) que recolheu anteriormente.
  • PROTOCOL:PORT: a porta e o respetivo protocolo, tcp ou udp.
  • TARGET: o valor do alvo (Targets) que recolheu anteriormente.

Para adicionar uma regra de firewall para uma VPC partilhada, adicione as seguintes flags ao comando:

--project HOST_PROJECT_ID
--network NETWORK_ID

Conceder acesso à Internet de saída a nós privados

Para fornecer acesso à Internet de saída para os seus nós privados, como extrair imagens de um registo externo, use o Cloud NAT para criar e configurar um Cloud Router. O Cloud NAT permite que os nós privados estabeleçam ligações de saída através da Internet para enviar e receber pacotes.

O Cloud Router permite que todos os seus nós na região usem o Cloud NAT para todos os intervalos de IP de alias primários. Também aloca automaticamente os endereços IP externos para o gateway NAT.

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

Implementar uma aplicação de contentor do Windows Server

Para saber como implementar uma aplicação de contentor do Windows Server num cluster com nós privados, consulte a documentação do conjunto de nós do Windows.

O que se segue?