Hay subredes raíz globales asignadas para cada zona aislada de Google Distributed Cloud (GDC) con la subred de la API pública de administración de direcciones IP (IPAM). Las subredes raíz globales alojan el grupo de rangos de direcciones IP raíz (CIDR) que se divide en cada zona para iniciar todos los clústeres dentro de la organización del arrendatario, incluidos el clúster de infraestructura de la organización y las VMs de carga de trabajo. Una pequeña parte del rango de direcciones IP también está disponible para las subredes raíz como el grupo de direcciones IP de Anycast.
Después de crear una organización, puedes 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 existente.
- Crea subredes de nodos adicionales para la organización.
Crea subredes globales de rango raíz para la zona nueva
Cada zona debe tener subredes globales de rango raíz. Durante la fase de arranque inicial de la organización del universo de GDC, cada zona tiene las subredes globales generadas automáticamente. Sin embargo, si se agrega una zona nueva después de la instalación inicial, debes crear manualmente las subredes globales del rango raíz para la zona nueva.
Define el rango CIDR para las subredes del rango raíz de la red de la zona nueva
Al igual que en la guía de instalación de la organización para definir un rango de CIDR, los rangos de CIDR no pueden superponerse entre sí ni con zone-infra-cidr ni con las subredes globales raíz existentes, que son subredes con la etiqueta ipam.gdc.goog/usage: network-root-range en su especificación de recursos personalizados.
El zone-infra-cidr existe en cada zona y se puede recuperar del Cuestionario de admisión del cliente (CIQ) si el cliente lo definió.
Para recuperar el
zone-infra-cidr, ejecuta el siguiente comando:kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get cidrclaim -n gpc-system zone-infra-cidrObserva el rango de CIDR.
Debes tener un espacio de nombres con un nombre que coincida con el que le asignarás a tu organización. Confirma que este espacio de nombres exista:
kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get namespace ORG_NAMERecupera las subredes globales raíz existentes:
Para el clúster de administrador raíz global, ejecuta el siguiente comando:
kubectl –kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet \ -n ORG_NAME -l ipam.gdc.goog/usage=network-root-rangePara el servidor de la API de administrador de la organización global, ejecuta lo siguiente:
kubectl –kubeconfig GLOBAL_ORG_API_SERVER_KUBECONFIG get subnet \ -n platform -l ipam.gdc.goog/usage=network-root-rangeAnota todos los rangos de CIDR del resultado.
Confirma que los nuevos rangos de CIDR planificados no se superpongan con ninguno de los rangos de CIDR anteriores.
Después de confirmar que tu nuevo rango de CIDR es válido para la nueva zona, confirma que cumple con las siguientes reglas:
| Es el campo de rango de CIDR. | Tamaño mínimo | VPC/VRF | Servidor de la API global |
|---|---|---|---|
zoneInfraVPCCIDR |
17 | VPC de infraestructura | Raíz global |
zoneDefaultVPCCIDR |
18 | VPC predeterminada | Organización global |
zoneOrgAdminExternalCIDR |
23 | Segmento de red de administrador | Raíz global |
zoneOrgDataExternalCIDR |
23 | Segmento de red de datos | Raíz global |
Crea 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, completa los siguientes pasos:
Enumera las zonas de tu universo y busca el nombre de la zona nueva:
kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get zone -ACrea la subred
infra-vpcdel rango raíz de la red de la zona para 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/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 del rango raíz de la red de la zona para 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: 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 administración del rango raíz de la red de la zona para la zona nueva 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
Crea subredes en el servidor de la API del administrador de la organización global
Debes crear la subred de VPC predeterminada en el servidor de la API del administrador global de la organización dentro del espacio de nombres platform después de que se ejecute 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 aumento
El recurso Subnet público no admite el aumento de escala automático. Para agregar más rangos de CIDR a una VPC o un segmento de red administrados por el cliente, debes crear subredes nuevas y agruparlas con ciertas etiquetas. Debido al acceso requerido 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 según las 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 inicio inicial, se especificaron cuatro rangos de CIDR en el Cuestionario de admisió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 rango de CIDR de nivel raíz para 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.
Para cada zona, se crea una subred global secundaria en el servidor de la API global, que se extrae de las subredes de nivel raíz. Cada subred global secundaria aloja el rango de CIDR para una categoría en 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 de uso típicos de la mejora de resolución
Para asignar de manera más eficiente subredes adicionales para aumentar la escala de tus subredes existentes, considera los casos de uso recomendados para cada categoría de subred. Determina la categoría que deseas mejorar antes de comenzar el proceso.
VPC predeterminada
Las subredes en default-vpc se usan principalmente para asignar los CIDR de pod y servicio para el clúster de servicio compartido, el clúster de usuario y 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.
El error en la creación de un clúster de usuario es una situación común en la que podría ser necesario aumentar la escala de la subred.
Es posible que falle la creación de un clúster de usuario debido a que no se puede encontrar la subred principal para el CIDR del pod o del servicio del clúster de usuario. Un mensaje de muestra para esta falla 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 aumentar la escala de una subred. Sigue estos pasos para confirmar:
Verifica los campos
podCIDRSizeyserviceCIDRSizeen 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 existente:
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 de /18 asignó cuatro CIDR de /23, un CIDR de /20, dos CIDR de /21, y el nuevo clúster de usuario solicita un CIDR de /20 para podCIDRSize y un CIDR de /20 para serviceCIDRSize, lo que es insuficiente.
En este caso, debes agregar más subredes para una categoría de la VPC predeterminada.
VPC de infraestructura
Las subredes en infra-vpc se usan principalmente para asignar los CIDR de pod y servicio de una organización para el clúster de infraestructura y el clúster de perímetro de la organización, así como la dirección IP del nodo para el clúster de perímetro.
Dado que esto pertenece a la configuración interna de la infraestructura de GDC, y cada organización solo tiene un clúster de infraestructura de la organización y un clúster de perímetro, por lo general, infra-vpc no necesitará operaciones de aumento de escala.
Segmento de red de administrador
Las subredes del segmento de red de administración se usan principalmente para asignar direcciones IP en el reenvío y el enrutamiento virtuales (VRF) del administrador de la organización. Se crea una subred de nodo predeterminada o la subred con información de la puerta de enlace en la organización. Esa subred predeterminada asigna 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.
Dado que el segmento de red de administrador pertenece a la configuración interna de la infraestructura de GDC, y cada organización solo puede tener un clúster de infraestructura de la organización y un clúster perimetral, por lo general, esta subred no necesitará un aumento de escala.
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 crea una subred de nodo predeterminada o una subred con información de la puerta de enlace en la organización. Esa subred predeterminada asigna las direcciones IP para 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.
Dado que el segmento de red de datos pertenece a la configuración interna de la infraestructura de GDC, y cada organización solo puede tener un clúster de infraestructura de la organización y un clúster de perímetro, por lo general, esta subred no necesitará una ampliación.
Agrega más subredes para una categoría
Puedes agregar más subredes para una categoría según el tipo de subred. Los siguientes tipos son aptos para agregar más subredes:
- VPC de infraestructura
- Segmento de red de administrador
- Segmento de red de datos
- VPC predeterminada
Determina el tipo de subred para el que deseas agregar más subredes y, luego, 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 verifica 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-rangeReemplaza lo siguiente:
GLOBAL_ROOT_ADMIN_KUBECONFIG: Es la ruta al archivo kubeconfig del clúster de administrador raíz.ORG_NAME: Es el nombre de la organización.SUBNET_TYPE: Es el tipo de subred, comovpc=infra-vpc,network-segment=admin,network-segment=dataovpc=default-vpc.
Toma nota de este valor como el CIDR total, al que se hará referencia más adelante.
Obtén todas las subredes secundarias de la subred raíz y verifica 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-rangeToma nota de cada valor como el CIDR utilizado, al que se hará referencia más adelante.
Calcula el CIDR disponible de la subred en función del CIDR total y el CIDR utilizado. Si el CIDR disponible no es lo suficientemente grande para asignar la nueva subred, agrega una nueva subred global de rango raíz de red. Luego, continúa con el siguiente paso.
Crea la subred nueva 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 EOFReemplaza lo siguiente:
GLOBAL_ROOT_ADMIN_KUBECONFIG: Es la ruta al archivo kubeconfig del clúster de administrador raíz.SUBNET_TYPE_LABEL: Es 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: es el nombre de la subred nueva.ORG_NAME: Es el nombre de la organización.CIDR_PREFIX_LENGTH: Es la longitud del prefijo de la subred nueva, como20.ZONE_NAME: Es el nombre de la zona de la subred, comozone1.PARENT_SUBNET_NAME: Es el nombre de la subred principal, comoinfra-vpc-root-cidr,admin-external-root-cidr,data-external-root-cidrodefault-vpc-root-cidr.
Para verificar que la subred esté lista, comprueba que su tipo de estado
Readyseatrue.Verifica que se haya creado una subred global en el servidor de la 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-rangeReemplaza NAMESPACE por el espacio de nombres de la subred. Usa
infra-networkpara la subredinfra-vpcyplatformpara los otros tipos de subredes.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 de 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
Se completó la mejora de la subred para tu organización en la zona que especificaste. Tus administradores pueden crear más subredes secundarias a partir de la subred nueva.
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 esta categoría. Si se agota, debes crear una subred network-root-range nueva en el servidor de la API global. Si es necesario, puedes crear varias subredes globales raíz.
Para crear una subred network-root-range nueva, completa los siguientes pasos:
Crea un archivo YAML, como
subnet-network-root.yaml, para el nuevo rango raíz de la red de la subred global: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: RootReemplaza lo siguiente:
SUBNET_TYPE: Es 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: Es la anotación para identificar que esta subred debe cambiar a otro servidor de API. Parainfra-vpco los segmentos de trabajo de administración y de red de datos, usaipam.gdc.goog/pivot-destination: global-org. Si agregas un nuevo intervalo raízdefault-vpc, no establezcas esta anotación.SUBNET_NAME: es el nombre de la subred nueva.ORG_NAME: Es el nombre de la organización.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-rangeen el mismo servidor de la API de administrador raíz global.