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
Ve a la página Redes de VPC de la consola de Trusted Cloud .
En la lista Redes de VPC, selecciona la red que quieras ampliar.
En la lista Subredes, selecciona la que quieras.
Haz clic en Editar.
Haz clic en Añadir intervalo de IPs.
En Nombre del intervalo de subredes, introduce el nombre del nuevo intervalo de direcciones IPv4 secundarias de la subred. Por ejemplo,
pod-range-2
.En Intervalo de IPs secundario, introduce el intervalo de direcciones IPv4 en formato CIDR. Por ejemplo,
10.2.204.0/22
.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
Ve a la página Google Kubernetes Engine en la Trusted Cloud consola.
Junto al clúster que quieras editar, haz clic en more_vert Acciones y, a continuación, en edit Editar.
En la sección Redes, junto a Intervalos de IPv4 de pods de clúster (adicional), haz clic en edit Editar.
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.
Haz clic en Guardar cambios.
gcloud
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:
CLUSTER_NAME
: el nombre del clúster.COMPUTE_LOCATION
: la ubicación de Compute Engine del clúster.
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:
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 proporciona128
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 omitename=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 denetworkConfig.podRange
o si omite el parámetropodRange
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 denetworkConfig.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:
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
: el nombre de un intervalo de direcciones IPv4 secundarias de una subred que ya exista en la subred del clúster. Si es necesario, crea primero un intervalo de direcciones IPv4 secundarias de subred.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": false,
"podRange": "SECONDARY_RANGE_NAME"
}
}
Haz los cambios siguientes:
POOL_NAME
: el nombre del nuevo grupo de nodos.SECONDARY_RANGE_NAME
: el nombre de un intervalo de direcciones IPv4 secundarias de una subred que ya exista en la subred del clúster. Si es necesario, crea primero un intervalo de direcciones IPv4 secundarias de subred.
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:
Actualiza la configuración del agente de enmascaramiento de IP de tu clúster. El conjunto efectivo de CIDRs no de enmascaramiento debe incluir todos los intervalos de direcciones IPv4 de los pods que utilice tu clúster (y sus grupos de nodos). Para obtener más información, consulta Comprobar el estado de
ip-masq-agent
y Configurar e implementarip-masq-agent
.Revisa la configuración de tu clúster
NetworkPolicy
. Es posible que tenga que actualizar los atributosipBlock
que hagan referencia a intervalos de direcciones IPv4 de Pod.Soluciona problemas de conectividad con registros de flujo de VPC y registros de reglas de cortafuegos.
Siguientes pasos
- Más información sobre los clústeres nativos de VPC
- Consulta la información general sobre la red de GKE.
- Más información sobre cómo optimizar la asignación de direcciones IP
- Consulta información valiosa sobre la utilización de direcciones IP de GKE.