Se asignan subredes raíz globales a cada zona aislada de Google Distributed Cloud (GDC) con la subred de la API pública de gestión de direcciones IP (IPAM). Las subredes raíz globales alojan el grupo de intervalos de direcciones IP raíz (CIDR) que se divide en cada zona para inicializar todos los clústeres de la organización del arrendatario, incluidos el clúster de infraestructura de la organización y las VMs de carga de trabajo. También se pone a disposición de las subredes raíz una pequeña parte del intervalo de direcciones IP como grupo de direcciones IP de difusión general.
Una vez que se haya creado una organización, podrás completar las siguientes tareas operativas para las subredes de tu universo de GDC:
- Crea las subredes necesarias para una zona nueva.
- Crea subredes adicionales para una zona ya creada.
- Crea subredes de nodos adicionales para la organización.
Crear subredes globales de intervalo raíz para la nueva zona
Cada zona debe tener subredes globales de intervalo raíz. Durante la fase de bootstrap inicial de la organización del universo de GDC, cada zona tiene las subredes globales generadas automáticamente. Sin embargo, si se añade una zona después de la instalación inicial, debes crear manualmente las subredes globales del intervalo raíz de la nueva zona.
Define el intervalo CIDR de las subredes del intervalo raíz de la red de la nueva zona
Al igual que en las directrices de instalación de la organización para definir un intervalo CIDR, los intervalos CIDR no pueden superponerse entre sí ni con las subredes globales raíz zone-infra-cidr y las subredes con la etiqueta ipam.gdc.goog/usage: network-root-range en su especificación de recurso personalizado.
El zone-infra-cidr se encuentra en cada zona y se puede obtener del cuestionario de información del cliente (CIQ) si el cliente lo ha definido.
Para recuperar el
zone-infra-cidr, ejecuta el siguiente comando:kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get cidrclaim -n gpc-system zone-infra-cidrToma nota del intervalo CIDR.
Debes tener un espacio de nombres con un nombre que coincida con el que asignarás a tu organización. Confirma que este espacio de nombres existe:
kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get namespace ORG_NAMEObtén las subredes globales raíz:
En el clúster de administrador raíz global, ejecuta lo siguiente:
kubectl –kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet \ -n ORG_NAME -l ipam.gdc.goog/usage=network-root-rangeEn el servidor de la API de administrador de la organización global, ejecuta el siguiente comando:
kubectl –kubeconfig GLOBAL_ORG_API_SERVER_KUBECONFIG get subnet \ -n platform -l ipam.gdc.goog/usage=network-root-rangeAnota todos los intervalos CIDR de la salida.
Confirma que los nuevos intervalos CIDR planificados no se solapan con ninguno de los intervalos CIDR anteriores.
Una vez que haya confirmado que el nuevo intervalo CIDR es válido para la nueva zona, confirme que cumple las siguientes reglas:
| Campo de intervalo CIDR. | Tamaño mínimo | VPC/VRF | Servidor de API global |
|---|---|---|---|
zoneInfraVPCCIDR |
17 | VPC de infraestructura | Raíz global |
zoneDefaultVPCCIDR |
18 | VPC predeterminada | Organización mundial |
zoneOrgAdminExternalCIDR |
23 | Segmento de red de administrador | Raíz global |
zoneOrgDataExternalCIDR |
23 | Segmento de red de datos | Raíz global |
Crear subredes en el servidor de la API de administrador raíz global
Para crear las subredes en el servidor de la API de administrador raíz global, sigue estos pasos:
Lista las zonas de tu universo y busca el nombre de la nueva zona:
kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get zone -ACrea la subred
infra-vpcde la zona de la organización:kubectl apply -f --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: infra-vpc ipam.gdc.goog/usage: zone-network-root-range annotations: ipam.gdc.goog/pivot-destination: global-org name: infra-vpc-NEW_ZONE_NAME-root-cidr namespace: ORG_NAME spec: ipv4Request: cidr: zoneInfraVPCCIDR zone: NEW_ZONE_NAME propagationStrategy: SingleZone type: Root EOFCrea la subred del segmento de red de datos de intervalo raíz de red de la zona de la organización:
kubectl apply -f --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG - <<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 annotations: ipam.gdc.goog/pivot-destination: global-org name: data-external-NEW_ZONE_NAME-root-cidr namespace: ORG_NAME spec: ipv4Request: cidr: zoneOrgDataExternalCIDR zone: NEW_ZONE_NAME propagationStrategy: SingleZone type: Root EOFCrea la subred del segmento de red de administrador del intervalo raíz de la red de la zona de la nueva zona de la organización:
kubectl apply -f --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: admin ipam.gdc.goog/usage: zone-network-root-range annotations: ipam.gdc.goog/pivot-destination: global-org name: admin-external-NEW_ZONE_NAME-root-cidr namespace: ORG_NAME spec: ipv4Request: cidr: zoneOrgAdminExternalCIDR zone: NEW_ZONE_NAME propagationStrategy: SingleZone type: Root EOF
Crear subredes en el servidor de la API de administrador de la organización global
Debes crear la subred de VPC predeterminada en el servidor de la API de administrador de la organización global de la organización en el espacio de nombres platform después de que se esté ejecutando el servidor de la API.
Crea y aplica el siguiente recurso personalizado Subnet:
kubectl apply -f --kubeconfig=GLOBAL_ORG_API_SERVER_KUBECONFIG - <<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: default-vpc-NEW_ZONE_NAME-root-cidr
namespace: platform
spec:
type: Root
ipv4Request:
cidr: zoneDefaultVPCCIDR
zone: NEW_ZONE_NAME
propagationStrategy: SingleZone
EOF
Subredes de escalado
El recurso público Subnet no admite el aumento de resolución automático. Para añadir más intervalos CIDR a una VPC o un segmento de red gestionados por el cliente, debes crear subredes y agruparlas con determinadas etiquetas. Debido al acceso necesario al clúster de administrador raíz, un cliente no puede aumentar la escala de sus subredes de forma independiente.
Reglas de agrupación de subredes
Las subredes se agrupan en diferentes categorías por etiquetas:
| Categoría | Etiqueta |
|---|---|
| VPC predeterminada | ipam.gdc.goog/vpc: default-vpc |
| VPC de infraestructura | ipam.gdc.goog/vpc: infra-vpc |
| Segmento de red de administrador | ipam.gdc.goog/network-segment: admin |
| Segmento de red de datos | ipam.gdc.goog/network-segment: data |
Durante el arranque inicial, se especificaron cuatro intervalos CIDR en el
cuestionario de incorporación de la organización (OIQ). Esas cuatro subredes globales se crearon en el servidor de la API global durante la creación de la organización del cliente.
Esas subredes globales son el intervalo CIDR de nivel raíz de cada categoría en todas las zonas de una organización. Todas las subredes globales de nivel raíz tienen la etiqueta ipam.gdc.goog/usage: network-root-range.
En cada zona, se crea una subred global secundaria en el servidor de la API global. Para ello, se extrae de las subredes de nivel raíz. Cada subred global secundaria aloja el intervalo CIDR de una categoría de la zona específica y tiene la etiqueta ipam.gdc.goog/usage: zone-network-root-range. La subred global secundaria de una zona se propaga automáticamente a la zona específica.
Casos prácticos habituales de aumento de resolución
Para asignar de forma más eficiente subredes adicionales a fin de ampliar las subredes que ya tienes, consulta los casos de uso recomendados para cada categoría de subred. Determina la categoría que quieres mejorar antes de empezar el proceso.
VPC predeterminada
Las subredes de default-vpc se usan principalmente para asignar los CIDR de pods y servicios al clúster de servicio compartido, al clúster de usuario y a default-vpc-default-node-subnet para la dirección IP del nodo del clúster y la dirección IP de la carga de trabajo de la organización.
La imposibilidad de crear un clúster de usuarios es un caso habitual en el que puede ser necesario aumentar la escala de la subred.
Es posible que no se pueda crear un clúster de usuarios porque no se encuentre la subred principal del pod o el CIDR de servicio del clúster de usuarios. Un mensaje de ejemplo de este error es similar al siguiente:
could not find parent for subnet platform/user-vm-1-service-cidr
Este problema puede deberse a varios motivos relacionados directamente con la necesidad de ampliar una subred. Sigue estos pasos para confirmarlo:
Comprueba los campos
podCIDRSizeyserviceCIDRSizede la sección.spec.clusterNetworkdel recurso personalizadoCluster:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get cluster \ -n platform USER_CLUSTER_NAME -oyamlEl resultado es similar al siguiente:
Example: spec: clusterNetwork: podCIDRSize: 20 serviceCIDRSize: 20Busca las subredes principales de la subred:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet -n platform -l \ ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=zone-network-root-rangeEl resultado es similar al siguiente:
Example: NAME PARENT READY IPV4 CIDR IPV6 CIDR default-vpc-zone0-cidr True 198.51.100.0/18Busca todas las subredes asignadas por las subredes principales:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet -n platform -l \ ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage!=zone-network-root-rangeEl resultado es similar al siguiente:
Example: default-vpc-default-node-subnet {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.100.0/23 g-org-1-shared-service-pod-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.16.0/20 g-org-1-shared-service-service-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.2.0/23 user-vm-1-pod-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.8.0/21 user-vm-1-service-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.4.0/23 user-vm-2-pod-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.32.0/21 user-vm-2-service-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.6.0/23
En este ejemplo, un CIDR principal /18 ha asignado cuatro CIDRs /23, un CIDR /20 y dos CIDRs /21. El nuevo clúster de usuarios solicita un CIDR /20 para podCIDRSize y un CIDR /20 para serviceCIDRSize, lo que no es suficiente.
En este caso, debes añadir más subredes a una categoría de la VPC predeterminada.
VPC de infraestructura
Las subredes de infra-vpc se usan principalmente para asignar los CIDR de pods y servicios de una organización al clúster de infraestructura y al clúster perimetral de la organización, así como la dirección IP de los nodos del clúster perimetral.
Como pertenece a la configuración interna de la infraestructura de los centros de datos de Google, y cada organización solo tiene un clúster de infraestructura de organización y un clúster perimetral, normalmente no será necesario realizar operaciones de ampliación de infra-vpc.
Segmento de red de administrador
Las subredes del segmento de red de administración se usan principalmente para asignar direcciones IP en el VRF de administración de la organización. Se ha creado una subred de nodo predeterminada o una subred con información de la pasarela en la organización. Esa subred predeterminada asigna la dirección IP de la infraestructura de la organización, la dirección IP del nodo del clúster y la dirección IP del nodo del clúster perimetral.
Como el segmento de red de administrador pertenece a la configuración de infraestructura de GDC interna y cada organización solo puede tener un clúster de infraestructura de organización y un clúster perimetral, normalmente no será necesario aumentar la escala de esta subred.
Segmento de red de datos
Las subredes del segmento de red de datos se usan principalmente para asignar direcciones IP en el VRF de datos de la organización. Se ha creado una subred de nodo predeterminada o una subred con información de la pasarela en la organización. Esa subred predeterminada asigna las direcciones IP de la dirección IP del nodo del clúster de infraestructura de la organización y la dirección IP del nodo del clúster perimetral.
Como el segmento de red de datos pertenece a la configuración de la infraestructura interna de GDC y cada organización solo puede tener un clúster de infraestructura de organización y un clúster perimetral, normalmente no será necesario aumentar la escala de esta subred.
Añadir más subredes a una categoría
Puedes añadir más subredes a una categoría en función del tipo de subred. Se pueden añadir más subredes a los siguientes tipos:
- VPC de infraestructura
- Segmento de red de administrador
- Segmento de red de datos
- VPC predeterminada
Determina el tipo de subred al que quieres añadir más subredes y, a continuación, completa los siguientes pasos para ese tipo de subred:
En el servidor de la API de administrador raíz global, obtén el tipo de subred raíz y comprueba su campo CIDR
maskSizedesdesubnet.status.ipv4Allocation.cidr:kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet -n ORG_NAME \ -l ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage=network-root-rangeHaz los cambios siguientes:
GLOBAL_ROOT_ADMIN_KUBECONFIG: la ruta al archivo kubeconfig del clúster de administrador raíz.ORG_NAME: el nombre de la organización.SUBNET_TYPE: el tipo de subred, comovpc=infra-vpc,network-segment=admin,network-segment=dataovpc=default-vpc.
Anota este valor como el CIDR total, que se usará más adelante.
Obtén todas las subredes secundarias de la subred raíz y comprueba cada campo CIDR
maskSizedesubnet.status.ipv4Allocation.cidr:kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet -n ORG_NAME \ -l ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage!=network-root-rangeAnota cada valor como CIDR usado, ya que lo necesitarás más adelante.
Calcula el CIDR disponible de la subred en función del CIDR total y del CIDR usado. Si el CIDR disponible no es lo suficientemente grande como para asignar la nueva subred, añade una nueva subred global de intervalo raíz de red. A continuación, ve al siguiente paso.
Crea la nueva subred en el servidor de la API de administrador raíz global:
kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/SUBNET_TYPE_LABEL ipam.gdc.goog/usage: zone-network-root-range annotations: ipam.gdc.goog/pivot-destination: global-org name: SUBNET_NAME namespace: ORG_NAME spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH zone: ZONE_NAME propagationStrategy: SingleZone type: Branch parentReference: name: PARENT_SUBNET_NAME namespace: ORG_NAME EOFHaz los cambios siguientes:
GLOBAL_ROOT_ADMIN_KUBECONFIG: la ruta al archivo kubeconfig del clúster de administrador raíz.SUBNET_TYPE_LABEL: el tipo de subred, que debe ser uno de los siguientes valores:vpc: infra-vpc,network-segment: admin,network-segment: dataovpc: default-vpc.SUBNET_NAME: el nombre de la nueva subred.ORG_NAME: el nombre de la organización.CIDR_PREFIX_LENGTH: longitud del prefijo de la nueva subred, como20.ZONE_NAME: el nombre de la zona de la subred, comozone1.PARENT_SUBNET_NAME: el nombre de la subred principal, comoinfra-vpc-root-cidr,admin-external-root-cidr,data-external-root-cidrodefault-vpc-root-cidr.
Verifica que la subred esté lista comprobando que su estado
Readytype estrue.Verifica que se haya creado una subred global en el servidor de API global de la organización y que esté lista:
kubectl --kubeconfig GLOBAL_ORG_ADMIN_KUBECONFIG get subnet -n NAMESPACE -l \ ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage=zone-network-root-rangeSustituye NAMESPACE por el espacio de nombres de la subred. Usa
infra-networkpara la subredinfra-vpcyplatformpara los demás tipos de subred.Verifica que la subred zonal se haya creado en el espacio de nombres de la organización del clúster de administrador raíz y que esté lista:
kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get subnet -n ORG_NAME \ -l ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage=zone-network-root-rangeVerifica que la subred zonal se haya creado en el servidor de la API Management en el espacio de nombres
platformy que esté lista:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet -n NAMESPACE \ -l ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage=zone-network-root-range
El aumento de la subred de tu organización en la zona que has especificado se ha completado. Tus administradores pueden crear más subredes secundarias a partir de la nueva subred.
Añadir una nueva subred global de intervalo raíz de red
Las subredes globales con la etiqueta ipam.gdc.goog/usage: network-root-range alojan el CIDR de todas las zonas de esta categoría. Si se agota, debes crear una nueva network-root-rangesubred en el servidor de la API global. Si es necesario, puedes crear varias subredes globales raíz.
Para crear una subred network-root-range, sigue estos pasos:
Crea un archivo YAML, como
subnet-network-root.yaml, para la nueva subred global del intervalo raíz de la red:apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/SUBNET_TYPE ipam.gdc.goog/usage: network-root-range annotations: ipam.gdc.goog/pivot-destination: global-org name: SUBNET_NAME namespace: ORG_NAME spec: ipv4Request: cidr: NEW_CIDR type: RootHaz los cambios siguientes:
SUBNET_TYPE: el tipo de subred, que debe ser uno de los siguientes valores:vpc: infra-vpc,network-segment: admin,network-segment: dataovpc: default-vpc.API_SERVER_ANNOTATION: la anotación para identificar que esta subred debe cambiar a otro servidor de API. Parainfra-vpco los segmentos de trabajo de administrador y de red de datos, usaipam.gdc.goog/pivot-destination: global-org. Si vas a añadir un nuevo intervalo raízdefault-vpc, no definas esta anotación.SUBNET_NAME: el nombre de la nueva subred.ORG_NAME: el nombre de la organización.NEW_CIDR: el nuevo CIDR de la subred. Este CIDR no puede solaparse con ningún CIDR de las subredes que tengan la etiquetaipam.gdc.goog/usage: network-root-rangeen el mismo servidor de API de administrador raíz global.