En esta página, se describe cómo crear subredes adicionales en la nube privada virtual (VPC) interna o en la VPC predeterminada de tu organización para satisfacer tus requisitos de redes internas. Debes crear una subred de VPC para asegurarte de que tus cargas de trabajo internas, como las máquinas virtuales (VM) y los contenedores, tengan una cantidad suficiente de direcciones IP para satisfacer sus requisitos de redes dentro de tu organización.
En esta página, se describen varias tareas que no están diseñadas para completarse en orden:
- Crea una subred de rama zonal para las cargas de trabajo: Esta tarea es útil para organizar o asignar aún más las direcciones IP internas existentes de tu zona a las cargas de trabajo.
- Crea una subred hoja para una carga de trabajo individual: Esta tarea es útil cuando tienes una carga de trabajo nueva que aún no tiene una dirección IP para usar.
- Asigna una subred zonal desde el rango de direcciones IP globales: Esta tarea es útil cuando tu zona ya no tiene suficiente espacio de direcciones IP internas.
- Divide root global subnet without zone allocation: Esta tarea es útil para organizar aún más las direcciones IP internas en el servidor de la API global antes de asignarlas a una zona.
- Agregar una nueva subred global de rango raíz de red: Esta tarea es útil cuando tu VPC predeterminada ya no tiene suficiente espacio de direcciones IP internas globales para asignar a tus zonas.
Para obtener una descripción general de las subredes y sus conceptos antes de completar las tareas de esta página, consulta Subredes y direcciones IP.
Esta página está destinada a los administradores de red que pertenecen al grupo de administradores de la plataforma y a los desarrolladores de aplicaciones que pertenecen al grupo de operadores de aplicaciones, quienes son responsables de administrar el tráfico de red de su organización. Para obtener más información, consulta Audiences for GDC air-gapped documentation.
Antes de comenzar
Para obtener el permiso que necesitas para crear subredes, pídele a tu administrador de IAM de la organización que te otorgue el rol de IAM de administrador de la organización de subredes (subnet-org-admin
). Este rol no está vinculado a un espacio de nombres.
Crea una subred de rama zonal para las cargas de trabajo
Puedes crear una subred interna zonal a partir de la subred raíz zonal existente de la zona para subdividir aún más las direcciones IP en tu VPC predeterminada zonal. Debes crear este tipo de subred en el espacio de nombres platform
. Si la subred raíz zonal principal no tiene suficientes direcciones IP disponibles, debes asignar otra subred zonal desde el rango de direcciones IP global antes de continuar.
En una ventana de terminal, crea la nueva subred zonal en el servidor de la API de administración:
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
Reemplaza lo siguiente:
MANAGEMENT_API_SERVER_KUBECONFIG
: Es la ruta de acceso al archivo kubeconfig de tu servidor de la API de administración. Para obtener más información, consulta Recursos del servidor de la API de administración zonal.SUBNET_NAME
: Es el nombre de tu nueva subred de red.CIDR_PREFIX_LENGTH
: Es la longitud del prefijo de CIDR de la nueva subred que se asigna de forma dinámica, como20
. Para establecer el CIDR de forma estática, reemplaza el campoprefixLength
por el campocidr
y, luego, establece el bloque CIDR, como10.0.10.0/27
.PARENT_SUBNET_NAME
: Es el nombre de la subred principal, comodefault-vpc-zone0-cidr
. Por lo general, la subred principal es una subred raíz zonal en la VPC predeterminada.
Consulta la documentación de referencia de la API del recurso
Subnet
para obtener más información.Puedes seguir subdividiendo tus subredes zonales o crear una subred hoja para asignar una dirección IP individual directamente a una carga de trabajo interna.
Crea una subred hoja para una carga de trabajo individual
Debes crear una subred hoja para asignar una sola dirección IP a tu carga de trabajo.
Esta subred hoja debe tener el valor de campo type: Leaf
y debe residir en el mismo espacio de nombres del proyecto que tu recurso de carga de trabajo, como una VM o un contenedor.
Tu subred hoja debe configurarse con un valor prefixLength
de 32
, ya que está diseñada para asignar una sola dirección IP. El valor parentReference
hace referencia a una subred asignada previamente, como la subred zonal principal que creaste en Crea una subred de rama zonal para las cargas de trabajo.
En una ventana de terminal, crea la subred hoja en el servidor de la API de administración:
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
Reemplaza lo siguiente:
MANAGEMENT_API_SERVER_KUBECONFIG
: Es la ruta de acceso al archivo kubeconfig de tu servidor de la API de administración. Para obtener más información, consulta Recursos del servidor de la API de administración zonal.SUBNET_NAME
: Es el nombre de la subred hoja.PROJECT_NAMESPACE
: Es el espacio de nombres del proyecto correspondiente a tu proyecto en el que se encuentran tus cargas de trabajo.PARENT_SUBNET
: Es el nombre de la subred principal de la que esta subred secundaria obtendrá su dirección IP.
Tu dirección IP individual ahora está disponible para que la usen tus cargas de trabajo internas, como las VMs y los contenedores. Para obtener más información sobre cómo configurar la dirección IP de tus cargas de trabajo, consulta Implementa cargas de máquina virtual virtuales o Implementa cargas de trabajo de contenedores.
Asigna una subred zonal desde el rango de direcciones IP global
Si tu zona no proporciona suficientes direcciones IP para tus cargas de trabajo desde el rango de direcciones IP de la subred raíz zonal existente, puedes asignar direcciones IP adicionales desde el rango raíz de direcciones IP globales.
Completa los siguientes pasos para la red de VPC predeterminada en el espacio de nombres platform
:
En una ventana de la terminal, describe todas las subredes raíz de la VPC predeterminada y verifica sus CIDR disponibles:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=network-root-range
Reemplaza
GLOBAL_API_SERVER_KUBECONFIG
por la ruta de acceso al archivo kubeconfig del servidor de la API global. Para obtener más información, consulta Recursos globales del servidor de la API. Las etiquetas son constantes y deben permanecer iguales.El resultado es similar a este:
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>
Toma nota de los valores de
Status.ipv4Allocation.Available CIDRs
como los CIDR disponibles, a los que se hará referencia en el siguiente paso. En el resultado anterior, están disponibles los rangos de CIDR10.254.0.0/15
y10.253.0.0/16
. Puede haber varias subredes en tu resultado según la cantidad de subredes raíz que tengas, así que anota todos los CIDR disponibles y de qué subred provienen.Compara el CIDR más grande disponible que anotaste en el paso anterior con el tamaño del CIDR que necesitas asignar a tu zona. Si el CIDR disponible más grande no es lo suficientemente grande para asignar tu nueva subred, agrega una nueva subred global de rango raíz de red antes de continuar. Ten en cuenta la subred principal de la que decides obtener el CIDR para tu nueva subred.
Por ejemplo, si necesitas un CIDR de
/13
, pero los CIDR disponibles solo incluyen/15
y/16
, debes agregar una nueva subred global de rango raíz de red. Si necesitas una subred/15
, puedes asignar una nueva subred zonal desde el CIDR/15
existente.Crea la subred nueva en el servidor de la 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
Reemplaza lo siguiente:
GLOBAL_API_SERVER_KUBECONFIG
: Es la ruta de acceso al archivo kubeconfig del servidor de API global. Para obtener más información, consulta Recursos del servidor de la API global.SUBNET_NAME
: es el nombre de la subred nueva.CIDR_PREFIX_LENGTH
: Es la longitud del prefijo CIDR de la subred nueva que se asigna de forma dinámica, como20
. Para establecer el CIDR de forma estática, reemplaza el campoprefixLength
por el campocidr
y, luego, establece el bloque CIDR, como10.0.10.0/27
.ZONE_NAME
: Es la zona para la que se asignará la subred, comozone1
.PARENT_SUBNET_NAME
: Es el nombre de la subred principal, comodefault-vpc-root-cidr
, o la nueva subred global de rango raíz de la red que creaste.ORG_NAME
: Es el nombre de la organización.
Consulta la documentación de referencia de la API para obtener más información sobre el recurso global
Subnet
.Verifica que la subred esté lista y disponible en el servidor de la API global. Para ello, comprueba que su tipo de estado
Ready
seatrue
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
El resultado es similar a este:
status: conditions: - lastTransitionTime: "2025-06-06T07:28:48Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
Verifica que la subred zonal se cree en el servidor de la API de administración zonal y que su tipo de estado
Ready
seatrue
:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
Reemplaza
MANAGEMENT_API_SERVER_KUBECONFIG
por la ruta de acceso al archivo kubeconfig de tu servidor de la API de administración. Para obtener más información, consulta Recursos del servidor de la API de administración zonal.El resultado es similar a este:
status: conditions: - lastTransitionTime: "2025-06-06T07:29:34Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
Desde esta nueva subred zonal, puedes crear más subredes secundarias zonales o asignar una dirección IP individual directamente a una carga de trabajo interna.
Divide la subred global raíz sin asignación de zona
Para dividir aún más una subred global sin asignarla a una zona para que la usen tus cargas de trabajo, crea una subred global y no definas una estrategia de propagación en el recurso personalizado Subnet
. Este enfoque es útil si deseas seguir organizando tu rango de direcciones IP accesibles a nivel global desde la subred raíz global sin asignar las direcciones IP a una zona.
Completa los siguientes pasos en el espacio de nombres platform
para dividir tu subred raíz global solo dentro del alcance global:
En una ventana de la terminal, describe todas las subredes raíz de la VPC predeterminada y verifica sus CIDR disponibles:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=network-root-range
Reemplaza
GLOBAL_API_SERVER_KUBECONFIG
por la ruta de acceso al archivo kubeconfig del servidor de la API global. Para obtener más información, consulta Recursos globales del servidor de la API. Las etiquetas son constantes y deben permanecer iguales.El resultado es similar a este:
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>
Toma nota de los valores de
Status.ipv4Allocation.Available CIDRs
como los CIDR disponibles, a los que se hará referencia en el siguiente paso. En el resultado anterior, están disponibles los rangos de CIDR10.254.0.0/15
y10.253.0.0/16
. Puede haber varias subredes en tu resultado según la cantidad de subredes raíz que tengas, así que anota todos los CIDR disponibles y de qué subred provienen.Compara el CIDR disponible más grande que anotaste en el paso anterior con el tamaño del CIDR que necesitas asignar a tu nueva subred global. Si el CIDR disponible más grande no es lo suficientemente grande para asignar tu nueva subred, agrega una nueva subred global de rango raíz de red antes de continuar. Ten en cuenta la subred principal de la que decides obtener el CIDR para tu nueva subred.
Por ejemplo, si necesitas un CIDR
/13
, pero los CIDR disponibles solo incluyen/15
y/16
, debes crear una nueva subred global de rango raíz de red. Si necesitas una subred/15
, puedes asignar la nueva subred global desde el CIDR/15
existente.Crea la subred nueva en el servidor de la 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
Reemplaza lo siguiente:
GLOBAL_API_SERVER_KUBECONFIG
: Es la ruta de acceso al archivo kubeconfig del servidor de API global. Para obtener más información, consulta Recursos del servidor de la API global.SUBNET_NAME
: es el nombre de la subred nueva.CIDR_PREFIX_LENGTH
: Es la longitud del prefijo CIDR de la subred nueva que se asigna de forma dinámica, como20
. Para establecer el CIDR de forma estática, reemplaza el campoprefixLength
por el campocidr
y, luego, establece el bloque CIDR, como10.0.10.0/27
.PARENT_SUBNET_NAME
: Es el nombre de la subred principal, comodefault-vpc-root-cidr
, o la nueva subred global de rango raíz de la red que creaste.ORG_NAME
: Es el nombre de la organización.
Consulta la documentación de referencia de la API para obtener más información sobre el recurso global
Subnet
.Verifica que la subred esté lista y disponible en el servidor de la API global. Para ello, comprueba que su tipo de estado
Ready
seatrue
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
El resultado es similar a este:
status: conditions: - lastTransitionTime: "2025-06-06T07:28:48Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
La nueva subred global para tu organización en la VPC predeterminada ya está disponible. Desde esta nueva subred principal global, puedes crear una subred para una zona en particular.
Agrega una nueva subred global de rango raíz de red
Las subredes globales con la etiqueta ipam.gdc.goog/usage: network-root-range
alojan el CIDR para todas las zonas de la red. Si se agota el CIDR, debes crear una nueva subred de rango raíz de la red en el servidor de la API global. Si es necesario, puedes crear varias subredes globales raíz.
Para crear una subred de rango raíz de red nueva, completa los siguientes pasos:
En una ventana de terminal, crea la nueva subred global del rango raíz de la red para la VPC predeterminada en el espacio de nombres
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
Reemplaza lo siguiente:
GLOBAL_API_SERVER_KUBECONFIG
: Es la ruta de acceso al archivo kubeconfig del servidor de API global. Para obtener más información, consulta Recursos del servidor de la API global.SUBNET_NAME
: es el nombre de la subred nueva.NEW_CIDR
: Es el nuevo CIDR de la subred. Este CIDR no puede superponerse con ningún CIDR de todas las subredes existentes con la etiquetaipam.gdc.goog/usage: network-root-range
en el mismo servidor de la API global.
Esta nueva subred de rango raíz global se puede subdividir dentro del servidor de la API global o asignar a una zona específica.
¿Qué sigue?
- Subredes y direcciones IP
- Descripción general de las redes
- Implementa una aplicación de VM con alta disponibilidad
- Implementa una aplicación en contenedores con alta disponibilidad