Esta página mostra como atribuir sub-redes adicionais a um cluster nativo da VPC. As sub-redes adicionais atribuídas a um cluster permitem-lhe criar novos conjuntos de nós em que os endereços IPv4 para os nós e os pods provêm dos intervalos de sub-redes adicionais.
Esta página destina-se a especialistas de redes que concebem e arquitetam a rede para a respetiva organização. Para saber mais sobre as funções comuns e exemplos de tarefas que referimos no Google Cloud conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE Enterprise.
Vista geral
Quando cria um novo cluster do GKE nativo da VPC, seleciona uma sub-rede predefinida para o cluster. A sub-rede predefinida do cluster fornece endereços IPv4 para nós, pods e serviços, conforme descrito nos intervalos de endereços IP para clusters nativos da VPC.
Pode atribuir até oito sub-redes adicionais a um cluster nativo da VPC, o que permite um crescimento significativo do cluster. Cada sub-rede adicional atribuída é denominada sub-rede não predefinida.
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.
Requisitos e limitações
Esta secção descreve os requisitos e as limitações que se aplicam quando atribui e usa sub-redes adicionais a um cluster. Tem de cumprir todos os requisitos antes de atribuir sub-redes adicionais.
- Certifique-se de que o cluster do GKE é um cluster nativo da VPC que executa a versão 1.30.3-gke.1211000 ou posterior do GKE. Os clusters baseados em rotas e os clusters em redes antigas não suportam sub-redes adicionais.
- Pode atribuir até oito sub-redes adicionais por cluster.
- As sub-redes adicionais fornecem apenas endereços IPv4 para nós e pods. Não é possível usar sub-redes adicionais para fornecer endereços IPv6 para nós ou pods.
- Apenas os novos conjuntos de nós podem usar as sub-redes adicionais, e não os conjuntos de nós existentes. Quando cria um novo node pool e estão disponíveis várias sub-redes não predefinidas, o GKE seleciona a melhor sub-rede para o node pool com base nos requisitos de endereços IP e na disponibilidade de endereços IP em todas as sub-redes do cluster.
- Os intervalos de endereços IPv4 secundários de sub-redes numa sub-rede não predefinida só podem ser usados por um único cluster.
- Se usar a compatibilidade com várias redes para Pods, os intervalos de endereços IPv4 principal e do Pod de uma sub-rede adicional não podem sobrepor-se a intervalos CIDR configurados na sua configuração de várias redes. As sub-redes adicionais que configurar aplicam-se apenas à rede predefinida. Esta limitação significa que quaisquer interfaces de rede adicionais nos seus nós e pods não podem usar os endereços IP fornecidos por estas sub-redes adicionais.
- Se o conjunto de endereços IP na sub-rede predefinida estiver esgotado, não pode dimensionar automaticamente o cluster, mesmo que use sub-redes adicionais.
Requisitos do balanceador de carga para clusters com sub-redes adicionais
Esta secção descreve os requisitos do equilibrador de carga que se aplicam quando usa sub-redes adicionais no seu cluster. Estes requisitos aplicam-se sempre que criar um serviço de entrada externo, um gateway externo ou um serviço de LoadBalancer externo.
- Para usar um serviço Ingress, Gateway ou LoadBalancer externo num cluster com sub-redes adicionais, o cluster tem de executar a versão 1.33.2-gke.4780000 ou posterior do GKE.
- Os objetos de entrada externos que usam o controlador de entrada do GKE têm de usar o balanceamento de carga nativo do contentor.
- Ative a divisão em subconjuntos do GKE para serviços LoadBalancer internos. A subdivisão do GKE afeta apenas os serviços LoadBalancer internos novos. Por conseguinte, tem de eliminar e recriar todos os serviços existentes no cluster depois de ativar a subdivisão do GKE.
Para criar um Network Load Balancer de encaminhamento externo baseado em serviços de back-end, os novos serviços LoadBalancer externos têm de incluir a anotação
cloud.google.com/l4-rbs: "enabled"
. Esta anotação afeta apenas os serviços LoadBalancer externos novos e não se aplica aos serviços LoadBalancer externos existentes. Elimine e recrie todos os serviços LoadBalancer externos que foram criados sem a anotaçãocloud.google.com/l4-rbs: "enabled"
.O tipo de back-end usado (back-ends de
GCE_VM_IP
NEG ou back-ends de grupo de instâncias) depende da versão do GKE quando cria o serviço LoadBalancer externo. Para mais informações, consulte o artigo Agrupamento de nós.
Adicione uma nova sub-rede com um intervalo de endereços IPv4 de pods
Crie uma nova sub-rede e adicione um novo intervalo de endereços IPv4 secundários da sub-rede. A sub-rede tem de estar na mesma região e rede de VPC que o cluster:
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK \ --region=REGION \ --range=PRIMARY_RANGE \ --add-secondary-ranges=POD_RANGE_NAME=SECONDARY_RANGE
Substitua o seguinte:
SUBNET_NAME
: o nome da nova sub-rede.NETWORK
: o nome da rede VPC que contém a nova sub-rede.REGION
: a região em que a sub-rede está localizada.PRIMARY_RANGE
: o intervalo IPv4 principal para a nova sub-rede, na notação CIDR. Para mais informações, consulte os intervalos de sub-redes IPv4.POD_RANGE_NAME
: um nome para o intervalo secundário.SECONDARY_RANGE
: o intervalo IPv4 secundário na notação CIDR. Para ver os intervalos válidos, consulte os intervalos de sub-redes IPv4.
Para mais informações, consulte o artigo Trabalhe com sub-redes.
Atualize o cluster para usar a sub-rede adicional através da CLI gcloud:
gcloud container clusters update CLUSTER_NAME \ --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster existente.SUBNET_NAME
: o nome da nova sub-rede que criou.POD_RANGE_NAME
: o nome do intervalo de endereços IPv4 secundário da sub-rede que quer usar para o intervalo de endereços IPv4 do pod.
Adicione uma nova sub-rede com vários intervalos de endereços IPv4 de pods
Crie uma nova sub-rede na mesma região e rede VPC que o cluster. Defina o intervalo de endereços IPv4 principal da sub-rede como um intervalo de endereços IPv4 adicional para os nós.
Para cada intervalo de endereços IPv4 de pods adicional de que precisa, adicione um novo intervalo de endereços IPv4 secundário de sub-rede à sub-rede que criou no passo anterior.
Atualize o cluster para usar a sub-rede adicional através da CLI gcloud. O exemplo seguinte adiciona uma sub-rede que tem dois intervalos de endereços IPv4 secundários para pods.
gcloud container clusters update CLUSTER_NAME \ --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME_1 \ --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME_2
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster existente.SUBNET_NAME
: o nome da nova sub-rede que criou.POD_RANGE_NAME_1
ePOD_RANGE_NAME_2
: os nomes dos intervalos de endereços IPv4 secundários da sub-rede que quer usar para intervalos de endereços IPv4 de pods.
Valide as sub-redes
Por cluster: para ver os detalhes de todas as sub-redes associadas a um cluster, execute o seguinte comando:
gcloud container clusters describe CLUSTER_NAME
Substitua CLUSTER_NAME
pelo nome do seu cluster.
O resultado é semelhante ao seguinte:
ipAllocationPolicy:
additionalIPRangesConfig:
- podIpv4RangeNames:
- pod-range-1
subnetwork: projects/user-gke-dev-2/regions/us-central1/subnetworks/shared-msc-subnets
Por conjunto de nós: para ver os detalhes de todas as sub-redes associadas a um conjunto de nós, execute o seguinte comando:
gcloud container node-pools describe POOL_NAME \
--cluster=CLUSTER_NAME \
Substitua o seguinte:
POOL_NAME
: o nome do node pool.CLUSTER_NAME
: o nome do cluster.
O resultado é semelhante ao seguinte:
name: pool-1
networkConfig:
podRange: pod-range-1
subnetwork: projects/user-gke-dev-2/regions/us-central1/subnetworks/shared-msc-subnets
Remova uma sub-rede não predefinida
A remoção de uma sub-rede não predefinida de um cluster indica ao cluster que deixe de usar os intervalos da sub-rede em qualquer um dos node pools do cluster. A remoção tem os seguintes efeitos:
- Não é possível usar o intervalo de endereços IPv4 principal da sub-rede não predefinida para intervalos de endereços IPv4 de nós.
- Não é possível usar os intervalos IPv4 secundários da sub-rede na sub-rede não predefinida para intervalos IPv4 de pods.
Antes de remover uma sub-rede não predefinida, tem de eliminar todos os conjuntos de nós que usam esta sub-rede.
Para remover uma sub-rede não predefinida do cluster, execute o seguinte comando:
gcloud container clusters update CLUSTER_NAME \
--remove-additional-ip-ranges= subnetwork=SUBNET_NAME
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster.SUBNET_NAME
: o nome da sub-rede que quer remover do cluster.
Depois de remover uma sub-rede não predefinida do cluster, pode eliminar a sub-rede não predefinida.
Remova um intervalo IPv4 secundário de sub-rede não predefinido
Quando remove um intervalo IPv4 secundário de sub-rede não predefinido de um cluster, o GKE instrui o cluster a não usar esse intervalo para intervalos IPv4 de pods em nenhum conjunto de nós. Se o intervalo IPv4 secundário da sub-rede não predefinida que remove for o único intervalo da sub-rede não predefinida usado por este cluster, o GKE também indica ao cluster que deixe de usar o endereço IPv4 principal desta sub-rede para endereços IPv4 de nós.
Antes de remover um intervalo IPv4 secundário de sub-rede não predefinido, tem de eliminar todos os conjuntos de nós que usam o intervalo para endereços IPv4 de pods.
Para remover um intervalo IPv4 secundário de sub-rede não predefinido do cluster, execute o seguinte comando:
gcloud container clusters update CLUSTER_NAME \
--remove-additional-ip-ranges=\
subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster.SUBNET_NAME
: o nome da sub-rede não predefinida.POD_RANGE_NAME
: o nome do intervalo IPv4 secundário da sub-rede não predefinida que quer remover do cluster.
Depois de remover um intervalo IPv4 secundário de uma sub-rede não predefinida do cluster, pode eliminar o intervalo IPv4 secundário da sub-rede não predefinida.
O que se segue?
- Saiba mais sobre os clusters nativos de VPC.
- Leia mais sobre como adicionar intervalos de endereços IPv4 de pods.
- Saiba mais sobre a otimização da atribuição de endereços IP configurando o número máximo de agrupamentos por nó.