Esta página descreve como criar sub-redes adicionais no segmento de rede de dados da sua organização para suportar os requisitos de rede externos. Tem de adicionar sub-redes para garantir que os seus serviços externos, como a tradução de endereços de rede (NAT) de saída e os equilibradores de carga externos, têm um número suficiente de endereços IP para suportar os respetivos requisitos de rede para a ligação a redes externas fora da sua organização.
Existem várias tarefas descritas nesta página que não se destinam a ser concluídas por ordem:
- Crie uma sub-rede de ramificação zonal para serviços externos: Esta tarefa é útil para organizar ou atribuir ainda mais os endereços IP externos existentes da sua zona aos serviços.
- Crie uma sub-rede folha para um serviço individual: Esta tarefa é útil quando tem um novo serviço que ainda não tem um endereço IP para usar.
- Atribua uma sub-rede zonal a partir do intervalo de endereços IP globais: Esta tarefa é útil quando a sua zona já não tem espaço de endereços IP externos suficiente.
- Divida a sub-rede global de raiz sem atribuição de zona: esta tarefa é útil para organizar ainda mais os endereços IP externos no servidor da API global antes de os atribuir a uma zona.
- Adicione uma nova sub-rede global de intervalo raiz de rede: Esta tarefa é útil quando o seu segmento de rede de dados já não tem espaço de endereço IP externo global suficiente para atribuir às suas zonas.
Para uma vista geral das sub-redes e dos respetivos conceitos antes de concluir as tarefas nesta página, consulte Sub-redes e endereços IP.
Esta página destina-se aos administradores de rede no grupo de administradores da plataforma e aos programadores de aplicações no grupo de operadores de aplicações, que são responsáveis pela gestão do tráfego de rede da respetiva organização. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.
Antes de começar
Para receber a autorização de que precisa para criar sub-redes, peça ao administrador de IAM da organização que lhe conceda a função de IAM de administrador da organização de sub-redes (subnet-org-admin
). Esta função não está associada a um espaço de nomes.
Crie uma sub-rede de filial zonal para serviços externos
Pode criar uma sub-rede externa zonal a partir da sub-rede raiz zonal existente da zona para subdividir ainda mais os endereços IP no seu segmento de rede de dados zonal. Tem de criar este tipo de sub-rede no espaço de nomes platform
. Se a sub-rede raiz zonal principal não tiver endereços IP suficientes disponíveis,
atribua outra sub-rede zonal a partir do intervalo de endereços IP global
primeiro e, em seguida, regresse a este procedimento.
Numa janela de terminal, crie a nova sub-rede externa no servidor da API de gestão zonal:
kubectl -kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: data 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 o seguinte:
MANAGEMENT_API_SERVER_KUBECONFIG
: o caminho para o ficheiro kubeconfig do servidor da API de gestão. Para mais informações, consulte o artigo Recursos do servidor da API de gestão zonal.SUBNET_NAME
: o nome da sua nova sub-rede.CIDR_PREFIX_LENGTH
: o comprimento do prefixo CIDR da sub-rede recém-criada que é alocada dinamicamente, como20
. Para definir o CIDR de forma estática, substitua o campoprefixLength
pelo campocidr
e, em seguida, defina o bloco CIDR, como10.0.10.0/27
.PARENT_SUBNET_NAME
: o nome da sub-rede principal, comodata-external-zone0-cidr
. Normalmente, a sub-rede principal é uma sub-rede raiz zonal no segmento de rede de dados.
Consulte a documentação de referência da API para o recurso
Subnet
para mais informações.Pode continuar a subdividir as suas sub-redes zonais ou criar uma sub-rede folha para atribuir um endereço IP individual diretamente a um serviço externo.
Crie uma sub-rede folha para um serviço individual
Tem de criar uma sub-rede folha para atribuir um único endereço IP ao seu serviço.
Esta sub-rede folha tem de ter o valor do campo type: Leaf
e residir no mesmo espaço de nomes do projeto que o seu serviço externo, como um balanceador de carga externo ou um NAT de saída.
A sub-rede folha tem de ser configurada com um valor prefixLength
de 32
, uma vez que se destina a atribuir um único endereço IP. O valor parentReference
faz referência a uma sub-rede atribuída anteriormente, como a sub-rede zonal principal que criou em Crie uma sub-rede de ramificação zonal para cargas de trabalho.
Numa janela do terminal, crie a sub-rede folha no servidor da API de gestão:
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/network-segment: data name: SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_SUBNET namespace: platform type: Leaf EOF
Substitua o seguinte:
MANAGEMENT_API_SERVER_KUBECONFIG
: o caminho para o ficheiro kubeconfig do servidor da API de gestão. Para mais informações, consulte o artigo Recursos do servidor da API de gestão zonal.SUBNET_NAME
: o nome da sub-rede folha.PROJECT_NAMESPACE
: o espaço de nomes do projeto correspondente ao seu projeto onde os seus serviços estão localizados.PARENT_SUBNET
: o nome da sub-rede principal a partir da qual esta sub-rede folha vai obter o respetivo endereço IP.
O seu endereço IP individual está agora disponível para utilização pelo seu serviço externo. Para mais informações sobre como configurar o endereço IP do seu serviço, consulte a documentação do serviço correspondente, como Configurar equilibradores de carga externos.
Atribua uma sub-rede zonal a partir do intervalo de endereços IP global
Se a sua zona não fornecer endereços IP suficientes para os seus serviços externos a partir do intervalo de endereços IP da sub-rede raiz zonal existente, pode atribuir endereços IP adicionais a partir do intervalo raiz de endereços IP global.
Conclua os passos seguintes para o segmento de rede de dados no espaço de nomes platform
Numa janela de terminal, descreva todas as sub-redes raiz do segmento de rede de dados e verifique os respetivos CIDRs disponíveis:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/network-segment=data,ipam.gdc.goog/usage=network-root-range
Substitua
GLOBAL_API_SERVER_KUBECONFIG
pelo caminho para o ficheiro kubeconfig do servidor da API global. Para mais informações, consulte o artigo Recursos do servidor da API global. As etiquetas são constantes e têm de permanecer iguais.O resultado é semelhante ao seguinte:
Name: data-external-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=data-external-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/network-segment=data 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: data-external-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>
Tome nota dos valores
Status.ipv4Allocation.Available CIDRs
como os CIDRs disponíveis, que serão referenciados no passo seguinte. 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 sua saída, consoante o número de sub-redes raiz que tiver. Por isso, tome nota de todos os CIDRs disponíveis e de qual sub-rede o CIDR disponível é proveniente.Compare o CIDR disponível mais elevado que anotou no passo anterior com o tamanho do CIDR que tem de atribuir à sua zona. Se o CIDR disponível mais elevado não for suficientemente elevado para atribuir a sua nova sub-rede, adicione uma nova sub-rede global de intervalo de raiz de rede antes de continuar. Tenha em atenção a sub-rede principal a partir da qual decide obter o CIDR para a sua nova sub-rede.
Por exemplo, se precisar de um
/13
CIDR, mas os CIDRs disponíveis apenas incluírem/15
e/16
, tem de criar uma nova sub-rede global de intervalo de raiz de rede. Se precisar de uma sub-rede/15
, pode atribuir uma nova sub-rede zonal a partir do CIDR/15
existente.Crie a nova sub-rede no servidor da API global:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: data 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 o seguinte:
GLOBAL_API_SERVER_KUBECONFIG
: o caminho para o ficheiro kubeconfig do servidor da API global. Para mais informações, consulte os recursos do servidor da API global.SUBNET_NAME
: o nome da nova sub-rede.CIDR_PREFIX_LENGTH
: o comprimento do prefixo CIDR da nova sub-rede que é alocada dinamicamente, como20
. Para definir o CIDR de forma estática, substitua o campoprefixLength
pelo campocidr
e, em seguida, defina o bloco CIDR, como10.0.10.0/27
.ZONE_NAME
: a zona para a qual atribuir a sub-rede, comozone1
.PARENT_SUBNET_NAME
: o nome da sub-rede principal, comodata-external-root-cidr
, ou o novo intervalo raiz da rede da sub-rede global que criou.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 da API global verificando se o respetivo tipo de estado
Ready
étrue
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
O resultado é semelhante ao seguinte:
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 gestão zonal e se o respetivo tipo de estado
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 para o ficheiro kubeconfig do servidor da API de gestão. Para mais informações, consulte o artigo Recursos do servidor da API de gestão zonal.O resultado é semelhante ao seguinte:
status: conditions: - lastTransitionTime: "2025-06-06T07:29:34Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
A partir desta nova sub-rede zonal, pode criar mais sub-redes secundárias zonais ou atribuir um endereço IP individual diretamente a um serviço externo.
Divida a sub-rede global raiz sem atribuição de zona
Se quiser continuar a organizar o seu intervalo de endereços IP acessível globalmente a partir da sub-rede raiz global sem atribuir os endereços IP aos seus serviços externos zonais, crie uma sub-rede global e não defina uma estratégia de propagação no recurso personalizado Subnet
.
Conclua os passos seguintes no espaço de nomes platform
para dividir a sua sub-rede raiz global apenas no âmbito global:
Numa janela de terminal, descreva todas as sub-redes raiz do segmento de rede de dados e verifique os respetivos CIDRs disponíveis:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/network-segment=data,ipam.gdc.goog/usage=network-root-range
Substitua
GLOBAL_API_SERVER_KUBECONFIG
pelo caminho para o ficheiro kubeconfig do servidor da API global. Para mais informações, consulte o artigo Recursos do servidor da API global. As etiquetas são constantes e têm de permanecer iguais.O resultado é semelhante ao seguinte:
Name: data-external-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=data-external-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/network-segment=data 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: data-external-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>
Tome nota dos valores
Status.ipv4Allocation.Available CIDRs
como os CIDRs disponíveis, que serão referenciados no passo seguinte. 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 sua saída, consoante o número de sub-redes raiz que tiver. Por isso, tome nota de todos os CIDRs disponíveis e de qual sub-rede o CIDR disponível é proveniente.Compare o CIDR disponível mais elevado que anotou no passo anterior com o tamanho do CIDR que precisa de atribuir à sua nova sub-rede global. Se o CIDR disponível mais elevado não for suficientemente grande para atribuir a sua nova sub-rede, adicione uma nova sub-rede global de intervalo de raiz de rede antes de continuar. Tenha em atenção a sub-rede principal a partir da qual decide obter o CIDR para a sua nova sub-rede.
Por exemplo, se precisar de um
/13
CIDR, mas os CIDRs disponíveis apenas incluírem/15
e/16
, tem de criar uma nova sub-rede global de intervalo de raiz de rede. Se precisar de uma/15
sub-rede, pode atribuir a nova sub-rede global a partir do/15
CIDR existente.Crie a nova sub-rede no servidor da API global:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: data 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 o seguinte:
GLOBAL_API_SERVER_KUBECONFIG
: o caminho para o ficheiro kubeconfig do servidor da API global. Para mais informações, consulte os recursos do servidor da API global.SUBNET_NAME
: o nome da nova sub-rede.CIDR_PREFIX_LENGTH
: o comprimento do prefixo CIDR da nova sub-rede que é alocada dinamicamente, como20
. Para definir o CIDR de forma estática, substitua o campoprefixLength
pelo campocidr
e, em seguida, defina o bloco CIDR, como10.0.10.0/27
.PARENT_SUBNET_NAME
: o nome da sub-rede principal, comodata-external-root-cidr
, ou o novo intervalo global da raiz da rede da sub-rede que criou.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 da API global verificando se o respetivo tipo de estado
Ready
étrue
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
O resultado é semelhante ao seguinte:
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 a sua organização no segmento de rede de dados está disponível. Pode criar uma sub-rede para uma zona específica a partir desta nova sub-rede principal global.
Adicione um novo intervalo de raiz da rede, uma sub-rede global
As sub-redes globais com a etiqueta ipam.gdc.goog/usage: network-root-range
alojam o CIDR para todas as zonas da rede. Se o CIDR estiver esgotado, tem de criar uma sub-rede de intervalo raiz da rede no servidor da API global. Pode criar vários
sub-redes globais raiz, se necessário.
Para criar uma nova sub-rede de intervalo de raiz da rede, conclua o seguinte:
Numa janela de terminal, crie a nova sub-rede global do intervalo de raiz da rede para o segmento de rede de dados no espaço de nomes
platform
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: data ipam.gdc.goog/usage: network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: cidr: NEW_CIDR type: Root EOF
Substitua o seguinte:
GLOBAL_API_SERVER_KUBECONFIG
: o caminho para o ficheiro kubeconfig do servidor da API global. Para mais informações, consulte os recursos do servidor da API global.SUBNET_NAME
: o nome da nova sub-rede.NEW_CIDR
: o novo CIDR para a sub-rede. Este CIDR não pode sobrepor-se a nenhum CIDR em todas as sub-redes existentes com a etiquetaipam.gdc.goog/usage: network-root-range
no mesmo servidor da API global.
Esta nova sub-rede de intervalo de raiz global pode ser subdividida no servidor de API global ou atribuída a uma zona específica.