Crie um cluster nativo de VPC

Esta página explica como configurar clusters nativos da VPC no Google Kubernetes Engine (GKE).

Para saber mais sobre as vantagens e os requisitos dos clusters nativos de VPC, consulte a vista geral dos clusters nativos de VPC.

Para clusters do GKE Autopilot, as redes nativas da VPC estão ativadas por predefinição e não podem ser substituídas.

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.

Limitações

  • Não pode converter um cluster nativo de VPC num cluster baseado em rotas, nem converter um cluster baseado em rotas num cluster nativo de VPC.

  • Os clusters nativos de VPC requerem redes VPC. As redes antigas não são suportadas.

  • Tal como acontece com qualquer cluster do GKE, os endereços Service (ClusterIP) só estão disponíveis a partir do cluster. Se precisar de aceder a um serviço Kubernetes a partir de instâncias de VM fora do cluster, mas na rede VPC e na região do cluster, crie um balanceador de carga de rede de encaminhamento interno.

  • Se usar todos os endereços IP do pod numa sub-rede, não pode substituir o intervalo de endereços IP secundários da sub-rede sem colocar o cluster num estado instável. No entanto, pode criar intervalos de endereços IP de pods adicionais através do CIDR de vários pods não contíguos.

Crie um cluster

Esta secção mostra como concluir as seguintes tarefas no momento da criação do cluster:

  • Crie um cluster e uma sub-rede em simultâneo.
  • Crie um cluster numa sub-rede existente.
  • Crie um cluster e selecione o intervalo de endereços IP do plano de controlo.
  • Crie um cluster com rede de pilha dupla numa nova sub-rede (disponível na versão 1.25 ou posterior dos clusters do Autopilot e na versão 1.24 ou posterior dos clusters Standard).
  • Crie um cluster de pilha dupla e uma sub-rede de pilha dupla em simultâneo (disponível na versão 1.25 ou posterior dos clusters do Autopilot e na versão 1.24 ou posterior dos clusters Standard).

Também pode criar um cluster e ativar a gestão automática de endereços IP no cluster (pré-visualização), o que significa que o GKE cria automaticamente sub-redes e gere endereços IP por si. Para mais informações, consulte o artigo Use a gestão automática de endereços IP.

Depois de criar o cluster, pode modificar o acesso ao plano de controlo do cluster. Para saber mais, consulte o artigo Personalize o isolamento de rede no GKE.

Crie um cluster e uma sub-rede em simultâneo

As instruções seguintes demonstram como criar um cluster do GKE e uma sub-rede nativos da VPC ao mesmo tempo. O método de atribuição de intervalo secundário é gerido pelo GKE quando executa estes dois passos com um comando.

Se usar a VPC partilhada, não pode criar o cluster e a sub-rede em simultâneo. Em alternativa, os administradores de rede no projeto anfitrião da VPC partilhada têm de criar primeiro a sub-rede. Em seguida, pode criar o cluster numa sub-rede existente com um método de atribuição de intervalo secundário gerido pelo utilizador.

gcloud

Para criar um cluster e uma sub-rede nativos da VPC em simultâneo, execute o seguinte comando:

gcloud container clusters create CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --enable-ip-alias \
    --create-subnetwork name=SUBNET_NAME,range=NODE_IP_RANGE \
    --cluster-ipv4-cidr=POD_IP_RANGE \
    --services-ipv4-cidr=SERVICES_IP_RANGE

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster do GKE.
  • COMPUTE_LOCATION: a localização do Compute Engine para o cluster.
  • SUBNET_NAME: o nome da sub-rede a criar. A região da sub-rede é a mesma região que o cluster (ou a região que contém o cluster zonal). Use uma string vazia (name="") se quiser que o GKE gere um nome para si.
  • NODE_IP_RANGE: um intervalo de endereços IP na notação CIDR, como 10.5.0.0/20, ou o tamanho da máscara de sub-rede de um bloco CIDR, como /20. Isto é usado para criar o intervalo de endereços IP primário da sub-rede para nós. Se for omitido, o GKE escolhe um intervalo de IPs disponível na VPC com um tamanho de /20.
  • POD_IP_RANGE: um intervalo de endereços IP na notação CIDR, como 10.0.0.0/14, ou o tamanho da máscara de sub-rede de um bloco CIDR, como /14. Isto é usado para criar o intervalo de endereços IP secundários da sub-rede para pods. Se for omitido, o GKE usa um intervalo /14 escolhido aleatoriamente que contém 218 endereços. O intervalo escolhido automaticamente é selecionado aleatoriamente a partir de 10.0.0.0/8 (um intervalo de 224 endereços) e não inclui intervalos de endereços IP atribuídos a VMs, rotas existentes nem intervalos atribuídos a outros clusters. O intervalo escolhido automaticamente pode entrar em conflito com endereços IP reservados, rotas dinâmicas ou rotas em VPCs que estabelecem peering com este cluster. Se usar qualquer um destes elementos, deve especificar --cluster-ipv4-cidr para evitar conflitos.
  • SERVICES_IP_RANGE: um intervalo de endereços IP na notação CIDR, como 10.4.0.0/19, ou o tamanho da máscara de sub-rede de um bloco CIDR, como /19. Este intervalo é usado para criar o intervalo de endereços IP secundário da sub-rede para serviços. Se for omitido, o GKE usa /20, o tamanho do intervalo de endereços IP dos serviços predefinido.

Consola

Não pode criar um cluster e uma sub-rede em simultâneo através da consolaTrusted Cloud . Em alternativa, primeiro, crie uma sub-rede e, de seguida, crie o cluster numa sub-rede existente.

API

Para criar um cluster nativo de VPC, defina um objeto IPAllocationPolicy no recurso do cluster:

{
  "name": CLUSTER_NAME,
  "description": DESCRIPTION,
  ...
  "ipAllocationPolicy": {
    "useIpAliases": true,
    "createSubnetwork": true,
    "subnetworkName": SUBNET_NAME
  },
  ...
}

O campo createSubnetwork cria e aprovisiona automaticamente uma sub-rede para o cluster. O campo subnetworkName é opcional. Se o deixar vazio, é escolhido automaticamente um nome para a sub-rede.

Depois de criar o cluster, pode modificar o acesso ao plano de controlo do cluster. Para saber mais, consulte o artigo Personalize o isolamento de rede no GKE.

Crie um cluster numa sub-rede existente

As instruções seguintes demonstram como criar um cluster do GKE nativo da VPC numa sub-rede existente com o seu método de atribuição de intervalo secundário.

gcloud

  • Para usar um método de atribuição de intervalo secundário gerido pelo GKE, execute o seguinte comando:

    gcloud container clusters create CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-ip-alias \
        --subnetwork=SUBNET_NAME \
        --cluster-ipv4-cidr=POD_IP_RANGE \
        --services-ipv4-cidr=SERVICES_IP_RANGE
    
  • Para usar um método de atribuição de intervalo secundário de gestão do utilizador, execute o seguinte comando:

    gcloud container clusters create CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-ip-alias \
        --subnetwork=SUBNET_NAME \
        --cluster-secondary-range-name=SECONDARY_RANGE_PODS \
        --services-secondary-range-name=SECONDARY_RANGE_SERVICES
    

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster do GKE.
  • COMPUTE_LOCATION: a localização do Compute Engine para o cluster.
  • SUBNET_NAME: o nome de uma sub-rede existente. O intervalo de endereços IP principal da sub-rede é usado para nós. A sub-rede tem de existir na mesma região que a usada pelo cluster. Se for omitido, o GKE tenta usar uma sub-rede na rede VPC na região do cluster.default
  • Se o método de atribuição de intervalo secundário for gerido pelo GKE:
    • POD_IP_RANGE: um intervalo de endereços IP na notação CIDR, como 10.0.0.0/14, ou o tamanho de uma máscara de sub-rede de um bloco CIDR, como /14. Isto é usado para criar o intervalo de endereços IP secundários da sub-rede para pods. Se omitir a opção --cluster-ipv4-cidr, o GKE escolhe automaticamente um intervalo /14 (218 endereços). O intervalo escolhido automaticamente é selecionado aleatoriamente a partir de 10.0.0.0/8 (um intervalo de 224 endereços) e não inclui intervalos de endereços IP atribuídos a VMs, rotas existentes ou intervalos atribuídos a outros clusters. O intervalo escolhido automaticamente pode entrar em conflito com endereços IP reservados, rotas dinâmicas ou rotas em VPCs que estabelecem ligação com este cluster. Se usar qualquer um destes elementos, deve especificar --cluster-ipv4-cidr para evitar conflitos.
    • SERVICES_IP_RANGE: um intervalo de endereços IP na notação CIDR (por exemplo, 10.4.0.0/19) ou o tamanho da máscara de sub-rede de um bloco CIDR (por exemplo, /19). Isto é usado para criar o intervalo de endereços IP secundário da sub-rede para serviços.
  • Se o método de atribuição de intervalo secundário for gerido pelo utilizador:
    • SECONDARY_RANGE_PODS: o nome de um intervalo de endereços IP secundário existente no SUBNET_NAME especificado. O GKE usa todo o intervalo de endereços IP secundários da sub-rede para os pods do cluster.
    • SECONDARY_RANGE_SERVICES: o nome de um intervalo de endereços IP secundário existente no SUBNET_NAME.

Consola

  1. Na Trusted Cloud consola, aceda à página Criar um cluster do Autopilot.

    Aceda a Crie um cluster do Autopilot

    Também pode concluir esta tarefa criando um cluster padrão.

  2. No painel de navegação, em Cluster, clique em Rede.
  3. Em Acesso ao plano de controlo, configure o acesso aos pontos finais do plano de controlo.
  4. Na secção Redes de cluster, na lista pendente Rede, selecione uma VPC.
  5. Na lista pendente Sub-rede do nó, selecione uma sub-rede para o cluster.
  6. Certifique-se de que a caixa de verificação Ativar o encaminhamento de tráfego nativo da VPC (usa o IP de alias) está selecionada.
  7. Selecione a caixa de verificação Criar automaticamente intervalos secundários se quiser que o método de atribuição de intervalos secundários seja gerido pelo GKE. Desmarque esta caixa de verificação se já tiver criado intervalos secundários para a sub-rede escolhida e quiser que o método de atribuição de intervalos secundários seja gerido pelo utilizador.
  8. No campo Intervalo de endereços do pod, introduza um intervalo de pods, como 10.0.0.0/14.
  9. No campo Intervalo de moradas de serviço, introduza um intervalo de serviço, como 10.4.0.0/19.
  10. Configure o cluster.
  11. Clique em Criar.

Terraform

Pode criar um cluster nativo da VPC com o Terraform através de um módulo do Terraform.

Por exemplo, pode adicionar o seguinte bloco à sua configuração do Terraform:

module "gke" {
  source  = "terraform-google-modules/kubernetes-engine/google"
  version = "~> 12.0"

  project_id        = "PROJECT_ID"
  name              = "CLUSTER_NAME"
  region            = "COMPUTE_LOCATION"
  network           = "NETWORK_NAME"
  subnetwork        = "SUBNET_NAME"
  ip_range_pods     = "SECONDARY_RANGE_PODS"
  ip_range_services = "SECONDARY_RANGE_SERVICES"
}

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto.
  • CLUSTER_NAME: o nome do cluster do GKE.
  • COMPUTE_LOCATION: a localização do Compute Engine para o cluster. Para o Terraform, a região do Compute Engine.
  • NETWORK_NAME: o nome de uma rede existente.
  • SUBNET_NAME: o nome de uma sub-rede existente. O intervalo de endereços IP principal da sub-rede é usado para nós. A sub-rede tem de existir na mesma região que a usada pelo cluster.
  • SECONDARY_RANGE_PODS: o nome de um intervalo de endereços IP secundário existente em SUBNET_NAME.
  • SECONDARY_RANGE_SERVICES: o nome de um intervalo de endereços IP secundário existente em SUBNET_NAME.

API

Quando cria um cluster nativo de VPC, define um objeto IPAllocationPolicy. Pode fazer referência a intervalos de endereços IP secundários de sub-redes existentes ou especificar blocos CIDR. Faça referência a intervalos de endereços IP secundários de sub-redes existentes para criar um cluster cujo método de atribuição de intervalo secundário seja gerido pelo utilizador. Indique blocos CIDR se quiser que o método de atribuição de intervalos seja gerido pelo GKE.

{
  "name": CLUSTER_NAME,
  "description": DESCRIPTION,
  ...
  "ipAllocationPolicy": {
    "useIpAliases": true,
    "clusterIpv4CidrBlock"      : string,
    "servicesIpv4CidrBlock"     : string,
    "clusterSecondaryRangeName" : string,
    "servicesSecondaryRangeName": string,

  },
  ...
}

Este comando inclui os seguintes valores:

  • "clusterIpv4CidrBlock": o intervalo CIDR para pods. Isto determina o tamanho do intervalo secundário para os pods e pode estar na notação CIDR, como 10.0.0.0/14. É escolhido um espaço vazio com o tamanho indicado a partir do espaço disponível na sua VPC. Se deixar em branco, é encontrado e criado um intervalo válido com um tamanho predefinido.
  • "servicesIpv4CidrBlock": o intervalo CIDR para os Serviços. Veja a descrição de "clusterIpv4CidrBlock".
  • "clusterSecondaryRangeName": o nome do intervalo secundário para agrupamentos. O intervalo secundário já tem de existir e pertencer à sub-rede associada ao cluster.
  • "serviceSecondaryRangeName": o nome do intervalo secundário para os Serviços. O intervalo secundário já tem de existir e pertencer à sub-rede associada ao cluster.

Depois de criar o cluster, pode modificar o acesso ao plano de controlo do cluster. Para saber mais, consulte o artigo Personalize o isolamento de rede no GKE.

Crie um cluster e selecione o intervalo de endereços IP do plano de controlo

Por predefinição, os clusters na versão 1.29 ou posterior usam o intervalo de sub-rede principal para aprovisionar o endereço IP interno atribuído ao ponto final do plano de controlo. Pode substituir esta definição predefinida selecionando um intervalo de sub-redes diferente apenas durante a criação do cluster.

As secções seguintes mostram como criar um cluster e substituir o intervalo de sub-rede.

gcloud

gcloud container clusters create CLUSTER_NAME \
    --enable-private-nodes \
    --private-endpoint-subnetwork=SUBNET_NAME \
    --location=COMPUTE_LOCATION

Onde:

  • A flag enable-private-nodes é opcional e indica ao GKE para criar o cluster com nós privados.
  • A flag private-endpoint-subnetwork define o intervalo de endereços IP do ponto final interno do plano de controlo. Pode usar a flag master-ipv4-cidr em vez da flag private-endpoint-subnetwork para aprovisionar o endereço IP interno para o plano de controlo. Para escolher que indicador usar, considere as seguintes configurações:
    • Se criar um cluster com a flag enable-private-nodes, as flags master-ipv4-cidr e private-endpoint-subnetwork são opcionais.
    • Se usar a flag private-endpoint-subnetwork, o GKE aprovisiona o ponto final interno do plano de controlo com um endereço IP do intervalo que definir.
    • Se usar a flag master-ipv4-cidr, o GKE cria uma nova sub-rede a partir dos valores que fornecer. O GKE aprovisiona o ponto final interno do plano de controlo com um endereço IP deste novo intervalo.
    • Se omitir os flags private-endpoint-subnetwork e master-ipv4-cidr, o GKE aprovisiona o ponto final interno do plano de controlo com um endereço IP da sub-rede secundária do cluster.

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster do GKE.
  • SUBNET_NAME: o nome de uma sub-rede existente para fornecer o endereço IP interno.
  • COMPUTE_LOCATION: a localização do Compute Engine para o cluster.

O GKE cria um cluster com o Private Service Connect. Depois de criar o cluster, pode modificar o acesso ao plano de controlo do cluster. Para saber mais, consulte o artigo Personalize o isolamento de rede no GKE.

Consola

Para atribuir uma sub-rede ao plano de controlo de um novo cluster, tem de adicionar uma sub-rede primeiro. Conclua os seguintes passos:

  1. Na Trusted Cloud consola, aceda à página Criar um cluster do Autopilot.

    Aceda a Crie um cluster do Autopilot

    Também pode concluir esta tarefa criando um cluster padrão.

  2. Na secção Padrão ou Piloto automático, clique em Configurar.
  3. Em Nome, introduza o nome do cluster.
  4. No painel de navegação, em Cluster, clique em Rede.
  5. Em Acesso ao plano de controlo, configure o acesso aos pontos finais do plano de controlo.
  6. Na secção Rede de clusters, selecione a caixa de verificação Substituir a sub-rede do ponto final privado predefinido do plano de controlo.
  7. Na lista Sub-rede do ponto final privado, selecione a sub-rede criada.
  8. Clique em Concluído. Adicione redes autorizadas adicionais conforme necessário.

Projete metadados para intervalos de endereços IP secundários

Quando cria ou atualiza um cluster do GKE, o GKE adiciona automaticamente entradas de metadados ao nível do projeto, como google_compute_project_metadata, para acompanhar a utilização do intervalo de endereços IP secundários, incluindo em ambientes de VPC partilhada. Estes metadados validam se o GKE atribui corretamente endereços IP para pods e serviços, o que ajuda a evitar conflitos.

O GKE gere automaticamente estes metadados.

Os metadados têm o seguinte formato:

key:   gke-REGION-CLUSTER_NAME-GKE_UID-secondary-ranges
value: pods:SHARED_VPC_NETWORK:SHARED_VPC_SUBNETWORK:CLUSTER_PODS_SECONDARY_RANGE_NAME

where:

  • REGION: a Trusted Cloud by S3NS região onde o cluster está localizado.

  • CLUSTER_NAME: o nome do cluster do GKE.

  • GKE_UID: um identificador exclusivo para o cluster do GKE.

  • VPC_NETWORK: o nome da rede VPC usada pelo cluster.

  • VPC_SUBNETWORK: o nome da sub-rede na rede VPC usada pelo cluster.

  • CLUSTER_PODS_SECONDARY_RANGE_NAME: o nome do intervalo de endereços IP secundário usado para os pods do cluster.

Crie um cluster com rede de pilha dupla

Pode criar um cluster com rede de pilha dupla IPv4/IPv6 numa sub-rede de pilha dupla nova ou existente. A sub-rede de pilha dupla está disponível na versão 1.25 ou posterior dos clusters do Autopilot e na versão 1.24 ou posterior dos clusters Standard. A sub-rede de pilha dupla não é suportada com pools de nós do Windows Server.

Antes de configurar clusters de pilha dupla, recomendamos que conclua as seguintes ações:

Nesta secção, começa por criar uma sub-rede de pilha dupla e usa esta sub-rede para criar um cluster.

  1. Para criar uma sub-rede de pilha dupla, execute o seguinte comando:

    gcloud compute networks subnets create SUBNET_NAME \
        --stack-type=ipv4-ipv6 \
        --ipv6-access-type=ACCESS_TYPE \
        --network=NETWORK_NAME \
        --range=PRIMARY_RANGE \
        --region=COMPUTE_REGION
    

    Substitua o seguinte:

    • SUBNET_NAME: o nome da sub-rede que escolher.
    • ACCESS_TYPE: a capacidade de encaminhamento para a Internet pública. Use INTERNAL para endereços IPv6 internos ou EXTERNAL para endereços IPv6 externos. Se --ipv6-access-type não for especificado, o tipo de acesso predefinido é EXTERNAL.
    • NETWORK_NAME: o nome da rede que vai conter a nova sub-rede. Esta rede tem de cumprir as seguintes condições:
    • PRIMARY_RANGE: o intervalo de endereços IP IPv4 principal para a nova sub-rede, na notação CIDR. Para mais informações, consulte o artigo Intervalos de sub-redes.
    • COMPUTE_REGION: a região de computação do cluster.
  2. Para criar um cluster com uma sub-rede de pilha dupla, use o comando gcloud CLI ou a consola Trusted Cloud :

gcloud

  • Para clusters do Autopilot, execute o seguinte comando:

      gcloud container clusters create-auto CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --network=NETWORK_NAME \
          --subnetwork=SUBNET_NAME
    

    Substitua o seguinte:

    • CLUSTER_NAME: o nome do novo cluster do Autopilot.
    • COMPUTE_LOCATION: a localização do Compute Engine para o cluster.
    • NETWORK_NAME: o nome de uma rede de VPC que contém a sub-rede. Esta rede VPC tem de ser uma rede VPC de modo personalizado. Para mais informações, veja como mudar uma rede VPC do modo automático para o modo personalizado.
    • SUBNET_NAME: o nome da sub-rede de pilha dupla.

      Os clusters do GKE Autopilot usam por predefinição um cluster de pilha dupla quando usa uma sub-rede de pilha dupla. Após a criação do cluster, pode atualizar o cluster do Autopilot para ser apenas IPv4.

  • Para clusters padrão, execute o seguinte comando:

    gcloud container clusters create CLUSTER_NAME \
        --enable-ip-alias \
        --enable-dataplane-v2 \
        --stack-type=ipv4-ipv6 \
        --network=NETWORK_NAME \
        --subnetwork=SUBNET_NAME \
        --location=COMPUTE_LOCATION
    

    Substitua o seguinte:

Consola

  1. Na Trusted Cloud consola, aceda à página Criar um cluster do Autopilot.

    Aceda a Crie um cluster do Autopilot

    Também pode concluir esta tarefa criando um cluster padrão.

  2. Na secção Padrão ou Piloto automático, clique em Configurar.
  3. Configure o cluster conforme necessário.
  4. No painel de navegação, em Cluster, clique em Rede.
  5. Em Acesso ao plano de controlo, configure o acesso aos pontos finais do plano de controlo.
  6. Na secção Rede de cluster, na lista Rede, selecione o nome da sua rede.
  7. Na lista Sub-rede do nó, selecione o nome da sua sub-rede de pilha dupla.
  8. Para clusters padrão, selecione o botão de rádio IPv4 e IPv6 (pilha dupla). Esta opção só está disponível se tiver selecionado uma sub-rede de pilha dupla.

    Os clusters do Autopilot usam por predefinição um cluster de pilha dupla quando usa uma sub-rede de pilha dupla.

  9. Clique em Criar.

Crie um cluster de pilha dupla e uma sub-rede em simultâneo

Pode criar uma sub-rede e um cluster de pilha dupla em simultâneo. O GKE cria uma sub-rede IPv6 e atribui um intervalo principal IPv6 externo à sub-rede.

Se usar a VPC partilhada, não pode criar o cluster e a sub-rede em simultâneo. Em alternativa, um administrador de rede no projeto anfitrião da VPC partilhada tem de criar primeiro a sub-rede de pilha dupla.

  • Para clusters do Autopilot, execute o seguinte comando:

    gcloud container clusters create-auto CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --network=NETWORK_NAME \
        --create-subnetwork name=SUBNET_NAME
    

    Substitua o seguinte:

  • Para clusters padrão, execute o seguinte comando:

    gcloud container clusters create CLUSTER_NAME \
        --enable-ip-alias \
        --stack-type=ipv4-ipv6 \
        --ipv6-access-type=ACCESS_TYPE \
        --network=NETWORK_NAME \
        --create-subnetwork name=SUBNET_NAME,range=PRIMARY_RANGE \
        --location=COMPUTE_LOCATION
    

    Substitua o seguinte:

    • CLUSTER_NAME: o nome do novo cluster que escolher.
    • ACCESS_TYPE: a capacidade de encaminhamento para a Internet pública. Use INTERNAL para endereços IPv6 internos ou EXTERNAL para endereços IPv6 externos. Se --ipv6-access-type não for especificado, o tipo de acesso predefinido é EXTERNAL.
    • NETWORK_NAME: o nome da rede que vai conter a nova sub-rede. Esta rede tem de cumprir as seguintes condições:
    • SUBNET_NAME: o nome da nova sub-rede que escolher.
    • PRIMARY_RANGE: o intervalo de endereços IPv4 principal para a nova sub-rede, na notação CIDR. Para mais informações, consulte o artigo Intervalos de sub-redes.
    • COMPUTE_LOCATION: a localização do Compute Engine para o cluster.

Atualize o tipo de stack

Pode alterar o tipo de pilha de um cluster existente ou atualizar uma sub-rede existente para uma sub-rede de pilha dupla.

Atualize o tipo de pilha num cluster existente

Antes de alterar o tipo de pilha num cluster existente, considere as seguintes limitações:

  • A alteração do tipo de pilha é suportada em novos clusters do GKE com a versão 1.25 ou posterior. Os clusters do GKE que foram atualizados das versões 1.24 para as versões 1.25 ou 1.26 podem receber erros de validação quando ativam a rede de pilha dupla.

  • A alteração do tipo de pilha é uma operação disruptiva porque o GKE reinicia os componentes no plano de controlo e nos nós.

  • O GKE respeita os períodos de manutenção configurados quando recria nós. Isto significa que o tipo de pilha do cluster não vai estar operacional no cluster até ocorrer o próximo período de manutenção. Se preferir não esperar, pode atualizar manualmente o conjunto de nós definindo a flag --cluster-version para a mesma versão do GKE que o plano de controlo já está a executar. Tem de usar a CLI gcloud se usar esta solução alternativa. Para mais informações, consulte as restrições para janelas de manutenção.

  • A alteração do tipo de pilha não altera automaticamente a família de IPs dos serviços existentes. Aplicam-se as seguintes condições:

    • Se alterar uma única pilha para pilha dupla, os serviços existentes permanecem com uma única pilha.
    • Se alterar uma pilha dupla para uma pilha única, os serviços existentes com endereços IPv6 entram num estado de erro. Elimine o serviço e crie um com o ipFamilies correto. Para saber mais, consulte um exemplo de como configurar uma implementação.

Para atualizar um cluster nativo de VPC existente, pode usar a CLI gcloud ou a Trusted Cloud consola:

gcloud

Execute o seguinte comando:

  gcloud container clusters update CLUSTER_NAME \
      --stack-type=STACK_TYPE \
      --location=COMPUTE_LOCATION

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster que quer atualizar.
  • STACK_TYPE: o tipo de pilha. Substitua por um dos seguintes valores:
    • ipv4: para atualizar um cluster de pilha dupla para um cluster apenas IPv4. O GKE usa o intervalo de endereços IPv4 principal da sub-rede do cluster.
    • ipv4-ipv6: para atualizar um cluster IPv4 existente para dual-stack. Só pode alterar um cluster para pilha dupla se a sub-rede subjacente suportar a pilha dupla. Para saber mais, consulte o artigo Atualize uma sub-rede existente para uma sub-rede de pilha dupla.
  • COMPUTE_LOCATION: a localização do Compute Engine para o cluster.

Consola

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

    Aceda ao Google Kubernetes Engine

  2. Junto ao cluster que quer editar, clique em Ações e, de seguida, clique em Editar.

  3. Na secção Rede, junto a Tipo de pilha, clique em Editar.

  4. Na caixa de diálogo Editar tipo de pilha, selecione a caixa de verificação do tipo de pilha de cluster de que precisa.

  5. Clique em Guardar alterações.

Atualize uma sub-rede existente para uma sub-rede de pilha dupla (disponível na versão 1.25 ou posterior dos clusters do Autopilot e na versão 1.24 ou posterior dos clusters Standard).

Atualize uma sub-rede existente para uma sub-rede de pilha dupla

Para atualizar uma sub-rede existente para uma sub-rede de pilha dupla, execute o seguinte comando. A atualização de uma sub-rede não afeta os clusters IPv4 existentes na sub-rede.

gcloud compute networks subnets update SUBNET_NAME \
    --stack-type=ipv4-ipv6 \
    --ipv6-access-type=ACCESS_TYPE \
    --region=COMPUTE_REGION

Substitua o seguinte:

  • SUBNET_NAME: o nome da sub-rede.
  • ACCESS_TYPE: a capacidade de encaminhamento para a Internet pública. Use INTERNAL para endereços IPv6 internos ou EXTERNAL para endereços IPv6 externos. Se --ipv6-access-type não for especificado, o tipo de acesso predefinido é EXTERNAL.
  • COMPUTE_REGION: a região de computação do cluster.

Valide os intervalos de endereços IP do tipo de pilha, do pod e do serviço

Depois de criar um cluster nativo da VPC, pode validar os respetivos intervalos de pods e serviços.

gcloud

Para validar o cluster, execute o seguinte comando:

gcloud container clusters describe CLUSTER_NAME

O resultado tem um bloco ipAllocationPolicy. O campo stackType descreve o tipo de definição de rede. Para cada tipo, pode ver as seguintes informações de rede:

  • Informações da rede IPv4:

    • clusterIpv4Cidr é o intervalo secundário para agrupamentos.
    • servicesIpv4Cidr é o intervalo secundário para os serviços.
  • Informações da rede IPv6 (se um cluster tiver rede de pilha dupla):

    • ipv6AccessType: a capacidade de encaminhamento para a Internet pública. INTERNAL para endereços IPv6 internos e EXTERNAL para endereços IPv6 externos.
    • subnetIpv6CidrBlock: O intervalo de endereços IPv6 secundário para a nova sub-rede.
    • servicesIpv6CidrBlock: O intervalo de endereços atribuído aos serviços IPv6 no cluster de pilha dupla.

Consola

Para validar o cluster, siga estes passos:

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

    Aceda ao Google Kubernetes Engine

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

Os intervalos secundários são apresentados na secção Rede:

  • O intervalo de endereços do agrupamento é o intervalo secundário para agrupamentos
  • O intervalo de moradas de serviço é o intervalo secundário para serviços

Elimine o cluster

Para eliminar o cluster, siga os passos descritos no artigo Eliminar um cluster.

O GKE tenta limpar a sub-rede criada quando o cluster é eliminado. No entanto, se a sub-rede estiver a ser usada por outros recursos, o GKE não elimina a sub-rede, e tem de gerir o ciclo de vida da sub-rede.

Configuração avançada para endereços IP internos

As secções seguintes mostram como usar intervalos de endereços IP privados não RFC 1918 e como ativar intervalos de endereços IP públicos usados de forma privada.

Use intervalos de endereços IP não RFC 1918

Os clusters do GKE podem usar intervalos de endereços IP fora dos intervalos da RFC 1918 para nós, pods e serviços. Consulte os intervalos válidos na documentação da rede VPC para ver uma lista de intervalos privados não RFC 1918 que podem ser usados como endereços IP internos para intervalos de sub-redes.

Esta funcionalidade não é suportada com pools de nós do Windows Server.

Os intervalos privados não RFC 1918 são intervalos de sub-redes. Pode usá-los exclusivamente ou em conjunto com intervalos de sub-redes RFC 1918. Os nós, os pods e os serviços continuam a usar intervalos de sub-redes, conforme descrito em Intervalos de IP para clusters nativos da VPC. Se usar intervalos não RFC 1918, tenha em atenção o seguinte:

  • Os intervalos de sub-redes, mesmo os que usam intervalos não RFC 1918, têm de ser atribuídos manualmente ou pelo GKE antes de os nós do cluster serem criados. Não pode mudar para nem deixar de usar intervalos de sub-redes não RFC 1918 para endereços IP de nós ou de serviços num cluster existente, a menos que substitua o cluster. No entanto, pode adicionar intervalos CIDR de pods adicionais, incluindo intervalos não RFC 1918, a um cluster nativo da VPC existente. Para mais informações sobre como adicionar intervalos CIDR de pods adicionais, consulte o artigo Expanda os intervalos de endereços IP de um cluster do GKE.

  • Os balanceadores de carga de rede de encaminhamento interno usam apenas endereços IP do intervalo de endereços IP principal da sub-rede. Para criar um Network Load Balancer de encaminhamento interno com um endereço não RFC 1918, o intervalo de endereços IP primário da sua sub-rede tem de ser não RFC 1918.

Os destinos fora do seu cluster podem ter dificuldades em receber tráfego de intervalos privados não RFC 1918. Por exemplo, os intervalos privados RFC 1112 (classe E) são normalmente usados como endereços de multicast. Se um destino fora do seu cluster não conseguir processar pacotes cujas origens sejam endereços IP privados fora do intervalo RFC 1918, pode fazer o seguinte:

  • Use um intervalo RFC 1918 para o intervalo de endereços IP principal da sub-rede. Desta forma, os nós no cluster usam endereços RFC 1918.

  • Certifique-se de que o cluster está a executar o agente de ocultação de IP e que os destinos não estão na lista nonMasqueradeCIDRs. Desta forma, os pacotes enviados a partir de pods têm as respetivas origens alteradas (SNAT) para endereços de nós, que são RFC 1918.

Ative os intervalos de endereços IP externos usados de forma privada

Os clusters do GKE podem usar de forma privada determinados intervalos de endereços IP externos como intervalos de endereços IP internos de sub-rede. Pode usar de forma privada qualquer endereço IP externo, exceto determinados intervalos restritos, conforme descrito na documentação da rede VPC. Esta funcionalidade não é suportada com pools de nós do Windows Server.

O seu cluster tem de ser um cluster nativo da VPC para usar intervalos de endereços IP externos usados de forma privada. Os clusters baseados em rotas não são suportados.

Os intervalos externos usados de forma privada são intervalos de sub-rede. Pode usá-las exclusivamente ou em conjunto com outros intervalos de sub-redes que usam endereços privados. Os nós, os pods e os serviços continuam a usar intervalos de sub-redes, conforme descrito em Intervalos de IP para clusters nativos da VPC. Tenha em atenção o seguinte quando reutilizar endereços IP externos de forma privada:

  • Quando usa um intervalo de endereços IP externos como um intervalo de sub-rede, o cluster deixa de poder comunicar com sistemas na Internet que usam esse intervalo externo. O intervalo torna-se um intervalo de endereços IP internos na rede VPC do cluster.

  • Os intervalos de sub-redes, mesmo os que usam de forma privada intervalos de endereços IP externos, têm de ser atribuídos manualmente ou pelo GKE antes de os nós do cluster serem criados. Não pode mudar para nem deixar de usar intervalos de sub-redes não RFC 1918 para endereços IP de nós ou serviços num cluster existente, a menos que substitua o cluster. No entanto, pode adicionar intervalos de CIDR de pods adicionais, incluindo intervalos não RFC 1918, a um cluster nativo da VPC existente. Para mais informações sobre como adicionar intervalos CIDR de pods adicionais, consulte o artigo Expanda os intervalos de endereços IP de um cluster do GKE.

Por predefinição, o GKE implementa o SNAT nos nós para destinos de IP externos. Se configurou o CIDR do pod para usar endereços IP externos, as regras de SNAT aplicam-se ao tráfego de pod para pod. Para evitar esta situação, tem 2 opções:

Para clusters padrão, se a versão do cluster for 1.14 ou posterior, ambas as opções funcionam. Se a versão do cluster for anterior à 1.14, só pode usar a segunda opção (configurar ip-masq-agent).

O que se segue?