Añadir intervalos de direcciones IPv4 de pods

En esta página se explica cómo configurar intervalos de direcciones IPv4 de pods adicionales para un clúster nativo de VPC y cómo especificar intervalos de direcciones IPv4 de pods personalizados para los grupos de nodos de un clúster nativo de VPC.

Los intervalos de direcciones IPv4 de los pods en los clústeres nativos de VPC siempre proceden de los intervalos de direcciones IPv4 secundarios de las subredes. Cuando creas un clúster, le asignas un intervalo de direcciones IPv4 de pod predeterminado.

  • En los clústeres Autopilot y Estándar, puedes configurar un clúster para que use intervalos de direcciones IPv4 de pods adicionales. GKE usa estos intervalos de direcciones IPv4 de pods adicionales para las direcciones IPv4 de pods en los nodos creados en futuros grupos de nodos.
  • En los clústeres estándar, puedes crear grupos de nodos que usen un intervalo de direcciones IPv4 secundarias de subred personalizado para sus direcciones IPv4 de pods.

Antes de empezar

Antes de empezar, asegúrate de que has realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando gcloud components update.
  • Asegúrate de que tienes el rol de gestión de identidades y accesos Administrador de red de Compute del proyecto que contiene la subred del clúster. Es necesario para crear intervalos de direcciones IPv4 secundarias de subredes. Si utilizas una VPC compartida, tendrás que coordinarte con el administrador de la red del proyecto del host de la VPC compartida.
  • Asegúrate de que tu clúster de GKE sea un clúster nativo de VPC. Los clústeres basados en rutas no admiten intervalos de direcciones IPv4 de pods adicionales ni intervalos de direcciones IPv4 de pods personalizados de grupos de nodos.
  • Consulta la sección Pasos siguientes.

Crear un intervalo de direcciones IPv4 secundarias de subred

Para crear un intervalo de direcciones IPv4 secundarias de una subred, utiliza laTrusted Cloud consola o la CLI de Google Cloud. Cada subred admite hasta 30 intervalos de direcciones IPv4 secundarias. Para obtener más información, consulta el artículo sobre cómo editar los intervalos de IPv4 secundarios de la documentación de VPC.

Consola

  1. Ve a la página Redes de VPC de la consola de Trusted Cloud .

    Ir a redes de VPC

  2. En la lista Redes de VPC, selecciona la red que quieras ampliar.

  3. En la lista Subredes, selecciona la que quieras.

  4. Haz clic en Editar.

  5. Haz clic en Añadir intervalo de IPs.

  6. En Nombre del intervalo de subredes, introduce el nombre del nuevo intervalo de direcciones IPv4 secundarias de la subred. Por ejemplo, pod-range-2.

  7. En Intervalo de IPs secundario, introduce el intervalo de direcciones IPv4 en formato CIDR. Por ejemplo, 10.2.204.0/22.

  8. Haz clic en Guardar.

gcloud

gcloud compute networks subnets update SUBNET_NAME \
    --region=REGION \
    --add-secondary-ranges=SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR

Haz los cambios siguientes:

  • SUBNET_NAME: nombre de la subred del clúster (la misma subred asignada al clúster cuando se creó).
  • REGION: la región de la subred del clúster. La región de la subred del clúster es la región que contiene el clúster de GKE.
  • SECONDARY_RANGE_NAME: nombre del nuevo intervalo de direcciones IPv4 secundario de la subred que actuará como intervalo de direcciones IPv4 de pods adicional para el clúster. Por ejemplo, pod-range-2.
  • SECONDARY_RANGE_CIDR: el CIDR que usará el nuevo intervalo de direcciones IPv4 secundarias de la subred. Por ejemplo, 10.2.204.0/22.

Puedes añadir dos o más intervalos de direcciones IPv4 secundarias de subred especificando pares SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR adicionales, separados por comas, después de la marca --add-secondary-ranges.

Asignar intervalos de IPv4 de pods adicionales a un clúster

Puedes asignar rangos de direcciones IPv4 de pods adicionales a nivel de clúster, que se aplicarán a los nodos nuevos que crees en los grupos de nodos nuevos del clúster. Para asignar intervalos de direcciones IPv4 de pods adicionales a un clúster, primero debes crear un intervalo de direcciones IPv4 secundario de subred.

Se pueden asignar intervalos de direcciones IPv4 de pods adicionales a un clúster con las siguientes versiones:

  • Clústeres de Autopilot que ejecutan la versión 1.26 de GKE o una posterior
  • Clústeres estándar

Consola

  1. Ve a la página Google Kubernetes Engine en la Trusted Cloud consola.

    Ir a Google Kubernetes Engine

  2. Junto al clúster que quieras editar, haz clic en Acciones y, a continuación, en Editar.

  3. En la sección Redes, junto a Intervalos de IPv4 de pods de clúster (adicional), haz clic en Editar.

  4. En el cuadro de diálogo Editar intervalos de IPv4 de pods de clúster adicionales, haga clic en Intervalos de CIDR secundarios de pods y seleccione los nombres de uno o varios intervalos de direcciones IPv4 secundarios de subredes que ya existan en la subred del clúster. Si no hay más intervalos de direcciones IPv4 secundarias de subred disponibles, primero crea un nuevo intervalo de direcciones IPv4 secundarias de subred y, a continuación, repite estos pasos.

  5. Haz clic en Guardar cambios.

gcloud

  1. Actualiza tu clúster con la marca --additional-pod-ipv4-ranges:

    gcloud container clusters update CLUSTER_NAME \
        --additional-pod-ipv4-ranges=SECONDARY_RANGE_NAME \
        --location=COMPUTE_LOCATION
    

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster.
    • SECONDARY_RANGE_NAME: el nombre de uno o varios intervalos de direcciones IPv4 secundarias de subred que ya existan en la subred del clúster, separados por comas. Si no hay intervalos de direcciones IPv4 secundarias de subred disponibles, crea uno.
    • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.

Buscar intervalos de IPv4 de pods de clústeres

Para buscar el intervalo de direcciones IPv4 de pods predeterminado de un clúster y cualquier intervalo de direcciones IPv4 de pods adicional que se haya asignado al clúster, usa el siguiente comando:

gcloud container clusters describe CLUSTER_NAME \
    --location=COMPUTE_LOCATION

Haz los cambios siguientes:

El resultado es similar al siguiente, que incluye el IPAllocationPolicy del clúster:

ipAllocationPolicy:
  clusterSecondaryRangeName: cluster-pods
  clusterIpv4CidrBlock: 10.10.0.0/23
  additionalPodRangesConfig:
    podRangeNames:
      - pod-range-1
      - pod-range-2

donde:

  • clusterSecondaryRangeName: nombre del intervalo de direcciones IPv4 secundarias de la subred que se usa como intervalo de direcciones IPv4 de pods predeterminado del clúster, definido cuando se creó el clúster.
  • clusterIpv4CidrBlock: el CIDR del intervalo de direcciones IPv4 secundario de la subred para las direcciones IPv4 de los pods, definido cuando se creó el clúster.
  • additionalPodRangesConfig.podRangeNames: lista de los intervalos de direcciones IPv4 secundarias de subred adicionales asignados a las direcciones IPv4 de los pods.

Intervalos de direcciones IPv4 de pods personalizados de grupos de nodos

En los clústeres estándar que ejecutan GKE 1.20.4-gke.500 o versiones posteriores, puedes asignar un intervalo de IPv4 de pod personalizado a un grupo de nodos nuevo mediante uno de los siguientes métodos:

  • Intervalo de direcciones IPv4 de Pod personalizado del grupo de nodos gestionado por GKE: con esta opción, puedes crear un grupo de nodos y proporcionar a GKE la información necesaria para crear un intervalo de direcciones IPv4 secundario de subred en la subred del clúster. A cada nodo nuevo que se crea en el nuevo grupo de nodos se le asigna un intervalo de direcciones IP de alias para sus direcciones IPv4 de pods, y cada intervalo de direcciones IP de alias procede del nuevo intervalo de direcciones IPv4 secundario de la subred que crea GKE. Esta opción solo se puede usar si tanto el clúster como la red VPC que contiene la subred del clúster están en el mismo proyecto.

  • Intervalo de direcciones IPv4 de Pod personalizado de un grupo de nodos gestionado por el usuario: con esta opción, creas un grupo de nodos en el que GKE usa un intervalo de direcciones IPv4 secundario de una subred. A cada nodo nuevo que se cree en el nuevo pool de nodos se le asigna un intervalo de direcciones IP de alias para sus direcciones IPv4 de pods. Cada intervalo de direcciones IP de alias procede del intervalo de direcciones IPv4 secundario de la subred que indiques a GKE que utilice. Si tu clúster se encuentra en un proyecto de servicio de VPC compartida y la subred del clúster está en la red de VPC compartida del proyecto del host, debes usar esta opción.

El intervalo de direcciones IPv4 de pods personalizado de un grupo de nodos prevalece sobre todos los intervalos de direcciones IPv4 de pods definidos a nivel de clúster, incluidos los intervalos de direcciones IPv4 de pods adicionales asignados al clúster. Los intervalos de direcciones IPv4 de pods personalizados asignados a los grupos de nodos también se denominan CIDR de varios pods no contiguos.

Ejemplo de intervalo de direcciones IPv4 de pods personalizado de un grupo de nodos

En el siguiente diagrama se muestra un clúster nativo de VPC con intervalos de direcciones IPv4 de pods gestionados por el usuario:

Añadir un grupo de nodos a un clúster con un intervalo de direcciones IP de pods secundario agotado mediante CIDR de varios pods no contiguo
Diagrama: intervalo de direcciones IPv4 de pods personalizado de un grupo de nodos de ejemplo

En el diagrama anterior:

  • El número máximo de pods por nodo de cada grupo de nodos del clúster se ha definido en 64. Para admitir un máximo de 64 pods por nodo, GKE crea cada nodo con un intervalo de direcciones IP de alias /25, lo que proporciona 128 direcciones IPv4 de pod por nodo.
  • El intervalo de direcciones IPv4 de los pods predeterminado del clúster es /24. Como cada nodo requiere un /25 para las direcciones IPv4 de los pods, el intervalo de direcciones IPv4 de los pods predeterminado del clúster solo admite dos nodos.
  • Para admitir nodos adicionales, un administrador de clúster ha creado un grupo de nodos adicional, manteniendo el máximo de 64 pods por nodo. El nodo adicional usa un intervalo de direcciones IPv4 de pod personalizado, que admite 32 nodos adicionales./20

Intervalo de direcciones IPv4 de pods personalizado del grupo de nodos gestionado por GKE

Para crear un grupo de nodos con un intervalo de direcciones IPv4 de Pod personalizado gestionado por GKE, usa la CLI de gcloud o la API de GKE de la siguiente manera:

gcloud

gcloud container node-pools create POOL_NAME \
  --cluster=CLUSTER_NAME \
  --location=COMPUTE_LOCATION \
  --create-pod-ipv4-range=name=SECONDARY_RANGE_NAME,range=CIDR_OR_NETMASK

Haz los cambios siguientes:

  • POOL_NAME: el nombre del nuevo grupo de nodos.
  • CLUSTER_NAME: el nombre del clúster.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.
  • SECONDARY_RANGE_NAME: nombre del intervalo de direcciones IPv4 secundarias de la subred que crea GKE. Si lo omite name=SECONDARY_RANGE_NAME, GKE generará automáticamente el nombre del nuevo intervalo de direcciones IPv4 secundarias de la subred.
  • CIDR_OR_NETMASK: el intervalo de direcciones IPv4 de los pods. Se expresa en formato CIDR (por ejemplo, 10.12.4.0/20) o como una máscara de subred (por ejemplo, /20).
    • Si solo proporcionas una máscara de subred, GKE intentará crear un intervalo de direcciones IPv4 secundario de subred que no entre en conflicto con los intervalos de direcciones IPv4 de subred de la red de VPC que contenga la subred del clúster.
    • Si omite range=CIDR_OR_NETMASK, GKE intenta crear un nuevo intervalo de direcciones IPv4 secundarias de la subred /14 que no entre en conflicto con los intervalos de direcciones IPv4 de las subredes de la red de VPC que contiene la subred del clúster.

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "createPodRange": true,
    "podRange": "SECONDARY_RANGE_NAME",
    "podIpv4CidrBlock": "CIDR_OR_NETMASK"
    }
}

Haz los cambios siguientes:

  • POOL_NAME: el nombre del nuevo grupo de nodos.
  • SECONDARY_RANGE_NAME: opcional. Es el nombre del intervalo de direcciones IPv4 secundarias de la subred que crea GKE. Si usa "" como valor de networkConfig.podRange o si omite el parámetro podRange en la solicitud, GKE genera automáticamente el nombre del nuevo intervalo de direcciones IPv4 secundarias de la subred.
  • CIDR_OR_NETMASK: el intervalo de direcciones IPv4 de los pods. Se expresa en formato CIDR (por ejemplo, 10.12.4.0/20) o como una máscara de subred (por ejemplo, /20).
    • Si solo proporcionas una máscara de subred, GKE intentará crear un intervalo de direcciones IPv4 secundario de subred que no entre en conflicto con los intervalos de direcciones IPv4 de subred de la red de VPC que contenga la subred del clúster.
    • Si usas "" como valor de networkConfig.podIpv4CidrBlock, GKE intentará crear un nuevo intervalo de direcciones IPv4 secundarias de la subred /14 que no entre en conflicto con los intervalos de direcciones IPv4 de las subredes de la red de VPC que contenga la subred del clúster.

Intervalo de direcciones IPv4 de pods personalizado de un grupo de nodos gestionado por el usuario

Para crear un grupo de nodos con un intervalo de direcciones IPv4 de Pod personalizado gestionado por el usuario, usa la CLI de gcloud o la API de GKE de la siguiente manera:

gcloud

gcloud container node-pools create POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --pod-ipv4-range SECONDARY_RANGE_NAME

Haz los cambios siguientes:

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "createPodRange": false,
    "podRange": "SECONDARY_RANGE_NAME"
    }
}

Haz los cambios siguientes:

Buscar intervalos de IPv4 de pods de un grupo de nodos

Para buscar el intervalo de direcciones IPv4 de los pods de un grupo de nodos, usa el siguiente comando:

gcloud container node-pools describe POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=COMPUTE_LOCATION

Haz los cambios siguientes:

  • POOL_NAME: el nombre del grupo de nodos.
  • CLUSTER_NAME: el nombre del clúster.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.

La salida es similar a la siguiente, que incluye el NodeNetworkConfig del grupo de nodos:

  networkConfig:
    podRange: podrange
    podIpv4CidrBlock: 192.168.0.0/18

donde:

  • podRange: nombre del intervalo de direcciones IPv4 secundarias de la subred para las direcciones IPv4 de los pods del grupo de nodos.
  • podIpv4CidrBlock: el CIDR del intervalo de direcciones IPv4 secundario de la subred para las direcciones IPv4 de los pods del grupo de nodos.

Si el grupo de nodos usa un intervalo de direcciones IPv4 de Pod personalizado, los valores de podRange y podIpv4CidrBlock serán diferentes del intervalo de direcciones IPv4 de Pod predeterminado del clúster.

Pasos siguientes

Después de asignar intervalos de direcciones IPv4 de pods adicionales a un clúster o de configurar intervalos de direcciones IPv4 de pods personalizados para un grupo de nodos, GKE actualiza la regla de firewall de VPC gke-[cluster-name]-[cluster-hash]-all creada automáticamente para que su intervalo de origen incluya todas las direcciones IPv4 de pods.

También puede que tengas que hacer lo siguiente:

Siguientes pasos