Nesta página, descrevemos como criar sub-redes adicionais na nuvem privada virtual (VPC) interna ou na VPC padrão da sua organização para atender aos requisitos de rede interna. É necessário criar uma sub-rede VPC para garantir que as cargas de trabalho internas, como máquinas virtuais (VMs) e contêineres, tenham um número suficiente de endereços IP para atender aos requisitos de rede na organização.
Há várias tarefas descritas nesta página, que não precisam ser concluídas em ordem:
- Criar uma sub-rede de ramificação zonal para cargas de trabalho: essa tarefa é útil para organizar ou alocar ainda mais os endereços IP internos existentes da sua zona para cargas de trabalho.
- Criar uma sub-rede folha para uma carga de trabalho individual: essa tarefa é útil quando você tem uma nova carga de trabalho que ainda não tem um endereço IP para usar.
- Alocar sub-rede zonal do intervalo de endereços IP global: essa tarefa é útil quando a zona não tem mais espaço suficiente para endereços IP internos.
- Dividir a sub-rede global raiz sem alocação de zona: essa tarefa é útil para organizar ainda mais os endereços IP internos no servidor de API global antes de alocá-los a uma zona.
- Adicionar nova sub-rede global de intervalo raiz de rede: essa tarefa é útil quando a VPC padrão não tem mais espaço suficiente de endereços IP internos globais para alocar às suas zonas.
Para uma visão geral das sub-redes e dos conceitos antes de concluir as tarefas nesta página, consulte Sub-redes e endereços IP.
Esta página é destinada a administradores de rede no grupo de administradores da plataforma e desenvolvedores de aplicativos no grupo de operadores de aplicativos, que são responsáveis por gerenciar o tráfego de rede da organização. Para mais informações, consulte Públicos-alvo para documentação isolada do GDC.
Antes de começar
Para receber a permissão necessária para criar sub-redes, peça ao administrador do IAM da organização para conceder a você o papel do IAM de administrador da organização de sub-redes (subnet-org-admin
). Essa função não está vinculada a um namespace.
Criar uma sub-rede de ramificação zonal para cargas de trabalho
É possível criar uma sub-rede interna zonal da sub-rede raiz zonal atual da zona para subdividir ainda mais os endereços IP na sua VPC padrão zonal. É necessário
criar esse tipo de sub-rede no namespace platform
. Se a sub-rede raiz zonal principal não tiver endereços IP suficientes disponíveis, alocar outra sub-rede zonal do intervalo de endereços IP global antes de continuar.
Em uma janela de terminal, crie a nova sub-rede zonal no servidor da API de gerenciamento:
kubectl -kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: default-vpc name: SUBNET_NAME namespace: platform spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH networkSpec: enableGateway: true enableVLANID: false parentReference: name: PARENT_SUBNET_NAME namespace: platform type: Branch EOF
Substitua:
MANAGEMENT_API_SERVER_KUBECONFIG
: o caminho para o arquivo kubeconfig do servidor da API de gerenciamento. Para mais informações, consulte Recursos do servidor da API de gerenciamento zonal.SUBNET_NAME
: o nome da nova sub-rede.CIDR_PREFIX_LENGTH
: o comprimento do prefixo CIDR da nova sub-rede alocada dinamicamente, como20
. Para definir o CIDR de forma estática, substitua o campoprefixLength
pelo campocidr
e defina o bloco CIDR, como10.0.10.0/27
.PARENT_SUBNET_NAME
: o nome da sub-rede principal, comodefault-vpc-zone0-cidr
. A sub-rede principal geralmente é uma sub-rede raiz zonal na VPC padrão.
Consulte a documentação de referência da API para o recurso
Subnet
para mais informações.É possível continuar subdividindo as sub-redes zonais ou criar uma sub-rede folha para alocar um endereço IP individual diretamente a uma carga de trabalho interna.
Criar uma sub-rede leaf para uma carga de trabalho individual
Você precisa criar uma sub-rede folha para alocar um único endereço IP para sua carga de trabalho.
Essa sub-rede folha precisa ter o valor do campo type: Leaf
e estar no mesmo namespace do projeto que o recurso de carga de trabalho, como uma VM ou um contêiner.
A sub-rede leaf precisa ser configurada com um valor prefixLength
de 32
, já que ela
foi criada para alocar um único endereço IP. O valor parentReference
faz referência a uma sub-rede alocada anteriormente, como a sub-rede zonal principal criada em Criar uma sub-rede zonal de ramificação para cargas de trabalho.
Em uma janela de terminal, crie a sub-rede leaf no servidor da API de gerenciamento:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/allocation-preference: default ipam.gdc.goog/vpc: default-vpc name: SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_SUBNET namespace: platform type: Leaf EOF
Substitua:
MANAGEMENT_API_SERVER_KUBECONFIG
: o caminho para o arquivo kubeconfig do servidor da API de gerenciamento. Para mais informações, consulte Recursos do servidor da API de gerenciamento zonal.SUBNET_NAME
: o nome da sub-rede folha.PROJECT_NAMESPACE
: o namespace do projeto correspondente ao projeto em que as cargas de trabalho estão localizadas.PARENT_SUBNET
: o nome da sub-rede principal de que essa sub-rede leaf vai extrair o endereço IP.
Seu endereço IP individual agora está disponível para uso pelas cargas de trabalho internas, como VMs e contêineres. Para mais informações sobre como configurar o endereço IP para suas cargas de trabalho, consulte Implantar cargas de trabalho de máquina virtual ou Implantar cargas de trabalho de contêiner.
Alocar sub-rede zonal do intervalo de endereços IP global
Se a sua zona não fornecer endereços IP suficientes para as cargas de trabalho do intervalo de endereços IP da sub-rede raiz zonal atual, aloque mais endereços IP do intervalo raiz de endereços IP global.
Conclua as etapas a seguir para a rede VPC padrão no namespace platform
:
Em uma janela de terminal, descreva todas as sub-redes raiz da VPC padrão e verifique os CIDRs disponíveis:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=network-root-range
Substitua
GLOBAL_API_SERVER_KUBECONFIG
pelo caminho para o arquivo kubeconfig do servidor de API global. Para mais informações, consulte Recursos globais do servidor de API. Os rótulos são constantes e precisam permanecer iguais.O resultado será assim:
Name: default-vpc-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=default-vpc-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/vpc=default-vpc Annotations: <none> API Version: ipam.global.gdc.goog/v1 Kind: Subnet Metadata: Creation Timestamp: 2025-06-18T23:05:38Z Finalizers: global-subnet-finalizer Generation: 1 Resource Version: 439434 UID: 5ed1c51a-b5ee-473e-a185-8e065a87ae8f Spec: ipv4Request: Cidr: 10.252.0.0/14 Propagation Strategy: None Type: Root Status: Children Refs: Name: default-vpc-zone1-root-cidr Namespace: platform Type: SingleSubnet Conditions: Last Transition Time: 2025-06-18T23:05:38Z Message: IP allocation finished successfully Observed Generation: 1 Reason: AllocationSucceeded Status: True Type: Ready ipv4Allocation: Available CIDRs: 10.254.0.0/15 10.253.0.0/16 Cidr: 10.252.0.0/14 Events: <none>
Anote os valores
Status.ipv4Allocation.Available CIDRs
como os CIDRs disponíveis, que serão referenciados na próxima etapa. Na saída anterior, os intervalos CIDR10.254.0.0/15
e10.253.0.0/16
estão disponíveis. Pode haver várias sub-redes na saída, dependendo do número de sub-redes raiz que você tem. Portanto, anote todos os CIDRs disponíveis e de qual sub-rede eles são.Compare o maior CIDR disponível que você observou na etapa anterior com o tamanho do CIDR que precisa ser alocado para sua zona. Se o maior CIDR disponível não for grande o suficiente para alocar sua nova sub-rede, adicione uma nova sub-rede global de intervalo raiz de rede antes de continuar. Anote a sub-rede principal de que você vai extrair o CIDR para sua nova sub-rede.
Por exemplo, se você precisar de um CIDR
/13
, mas os CIDRs disponíveis incluírem apenas/15
e/16
, adicione uma nova sub-rede global de intervalo raiz de rede. Se você precisar de uma sub-rede/15
, aloque uma nova sub-rede zonal do CIDR/15
atual.Crie a nova sub-rede no servidor de API global:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: default-vpc ipam.gdc.goog/usage: zone-network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH zone: ZONE_NAME propagationStrategy: SingleZone type: Branch parentReference: name: PARENT_SUBNET_NAME namespace: ORG_NAME EOF
Substitua:
GLOBAL_API_SERVER_KUBECONFIG
: o caminho para o arquivo kubeconfig do servidor de API global. Para mais informações, consulte Recursos globais do servidor de API.SUBNET_NAME
: o nome da nova sub-rede;CIDR_PREFIX_LENGTH
: o tamanho do prefixo CIDR da nova sub-rede alocada dinamicamente, como20
. Para definir o CIDR de forma estática, substitua o campoprefixLength
pelo campocidr
e defina o bloco CIDR, como10.0.10.0/27
.ZONE_NAME
: a zona em que a sub-rede será alocada, comozone1
.PARENT_SUBNET_NAME
: o nome da sub-rede principal, comodefault-vpc-root-cidr
, ou a nova sub-rede global do intervalo raiz da rede criada.ORG_NAME
: o nome da organização.
Consulte a documentação de referência da API para o recurso global
Subnet
para mais informações.Verifique se a sub-rede está pronta e disponível no servidor de API global. Para isso, confira se o tipo de status
Ready
étrue
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
O resultado será assim:
status: conditions: - lastTransitionTime: "2025-06-06T07:28:48Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
Verifique se a sub-rede zonal foi criada no servidor da API de gerenciamento zonal e se o tipo de status
Ready
étrue
:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
Substitua
MANAGEMENT_API_SERVER_KUBECONFIG
pelo caminho do arquivo kubeconfig do servidor da API de gerenciamento. Para mais informações, consulte Recursos do servidor da API de gerenciamento zonal.O resultado será assim:
status: conditions: - lastTransitionTime: "2025-06-06T07:29:34Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
Nessa nova sub-rede zonal, é possível criar mais sub-redes filhas zonais ou alocar um endereço IP individual diretamente para uma carga de trabalho interna.
Dividir a sub-rede global raiz sem alocação de zona
Para dividir ainda mais uma sub-rede global sem alocá-la a uma zona para uso dos seus
workloads, crie uma sub-rede global e não defina uma estratégia de propagação
no recurso personalizado Subnet
. Essa abordagem é útil se você quiser continuar organizando seu intervalo de endereços IP acessível globalmente da sub-rede raiz global sem alocar os endereços IP para uma zona.
Conclua as etapas a seguir no namespace platform
para dividir sua sub-rede raiz global apenas no escopo global:
Em uma janela de terminal, descreva todas as sub-redes raiz da VPC padrão e verifique os CIDRs disponíveis:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=network-root-range
Substitua
GLOBAL_API_SERVER_KUBECONFIG
pelo caminho para o arquivo kubeconfig do servidor de API global. Para mais informações, consulte Recursos globais do servidor de API. Os rótulos são constantes e precisam permanecer iguais.O resultado será assim:
Name: default-vpc-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=default-vpc-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/vpc=default-vpc Annotations: <none> API Version: ipam.global.gdc.goog/v1 Kind: Subnet Metadata: Creation Timestamp: 2025-06-18T23:05:38Z Finalizers: global-subnet-finalizer Generation: 1 Resource Version: 439434 UID: 5ed1c51a-b5ee-473e-a185-8e065a87ae8f Spec: ipv4Request: Cidr: 10.252.0.0/14 Propagation Strategy: None Type: Root Status: Children Refs: Name: default-vpc-zone1-root-cidr Namespace: platform Type: SingleSubnet Conditions: Last Transition Time: 2025-06-18T23:05:38Z Message: IP allocation finished successfully Observed Generation: 1 Reason: AllocationSucceeded Status: True Type: Ready ipv4Allocation: Available CIDRs: 10.254.0.0/15 10.253.0.0/16 Cidr: 10.252.0.0/14 Events: <none>
Anote os valores
Status.ipv4Allocation.Available CIDRs
como os CIDRs disponíveis, que serão referenciados na próxima etapa. Na saída anterior, os intervalos CIDR10.254.0.0/15
e10.253.0.0/16
estão disponíveis. Pode haver várias sub-redes na saída, dependendo do número de sub-redes raiz que você tem. Portanto, anote todos os CIDRs disponíveis e de qual sub-rede eles são.Compare o maior CIDR disponível que você anotou na etapa anterior com o tamanho do CIDR que precisa ser alocado para sua nova sub-rede global. Se o maior CIDR disponível não for grande o suficiente para alocar sua nova sub-rede, adicione uma nova sub-rede global de intervalo raiz de rede antes de continuar. Anote a sub-rede principal de que você vai extrair o CIDR para sua nova sub-rede.
Por exemplo, se você precisar de um CIDR
/13
, mas os CIDRs disponíveis incluírem apenas/15
e/16
, crie uma nova sub-rede global de intervalo raiz de rede. Se você precisar de uma sub-rede/15
, aloque a nova sub-rede global do CIDR/15
atual.Crie a nova sub-rede no servidor de API global:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: default-vpc ipam.gdc.goog/usage: zone-network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH propagationStrategy: None type: Branch parentReference: name: PARENT_SUBNET_NAME namespace: ORG_NAME EOF
Substitua:
GLOBAL_API_SERVER_KUBECONFIG
: o caminho para o arquivo kubeconfig do servidor de API global. Para mais informações, consulte Recursos globais do servidor de API.SUBNET_NAME
: o nome da nova sub-rede;CIDR_PREFIX_LENGTH
: o tamanho do prefixo CIDR da nova sub-rede alocada dinamicamente, como20
. Para definir o CIDR de forma estática, substitua o campoprefixLength
pelo campocidr
e defina o bloco CIDR, como10.0.10.0/27
.PARENT_SUBNET_NAME
: o nome da sub-rede principal, comodefault-vpc-root-cidr
, ou a nova sub-rede global do intervalo raiz da rede criada.ORG_NAME
: o nome da organização.
Consulte a documentação de referência da API para o recurso global
Subnet
para mais informações.Verifique se a sub-rede está pronta e disponível no servidor de API global. Para isso, confira se o tipo de status
Ready
étrue
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
O resultado será assim:
status: conditions: - lastTransitionTime: "2025-06-06T07:28:48Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
A nova sub-rede global para sua organização na VPC padrão está disponível. É possível criar uma sub-rede para uma zona específica com base nessa nova sub-rede global principal.
Adicionar nova sub-rede global de intervalo raiz de rede
As sub-redes globais com o rótulo ipam.gdc.goog/usage: network-root-range
hospedam o CIDR de todas as zonas da rede. Se o CIDR estiver esgotado, crie uma
nova sub-rede de intervalo raiz da rede no servidor de API global. É possível criar várias sub-redes globais raiz, se necessário.
Para criar uma sub-rede de intervalo raiz de rede, faça o seguinte:
Em uma janela de terminal, crie a nova sub-rede global de intervalo raiz da rede para a VPC padrão no namespace
platform
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: default-vpc ipam.gdc.goog/usage: network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: cidr: NEW_CIDR type: Root EOF
Substitua:
GLOBAL_API_SERVER_KUBECONFIG
: o caminho para o arquivo kubeconfig do servidor de API global. Para mais informações, consulte Recursos globais do servidor de API.SUBNET_NAME
: o nome da nova sub-rede;NEW_CIDR
: o novo CIDR da sub-rede. Esse CIDR não pode se sobrepor a nenhum CIDR em todas as sub-redes atuais com o rótuloipam.gdc.goog/usage: network-root-range
no mesmo servidor da API global.
Essa nova sub-rede de intervalo de raiz global pode ser subdividida no servidor de API global ou alocada para uma zona específica.
A seguir
- Sub-redes e endereços IP
- Visão geral da rede
- Implantar um aplicativo de VM altamente disponível
- Implantar um aplicativo de contêiner altamente disponível