En esta página, se muestra cómo agregar rangos de direcciones IP de Pods secundarios nuevos o existentes a clústeres de GKE con CIDR de varios Pods discontinuos.
Por qué agregar más rangos IPv4 de Pods
Como administrador de la plataforma, puedes agregar más rangos IPv4 de Pods mediante la creación de rangos secundarios adicionales. Esto puede ser útil en las siguientes situaciones:
- Cuando el clúster se queda sin direcciones IP de Pods.
- Cuando quieras asignar direcciones IP de forma eficiente para anticipar el futuro.
- Cuándo puedes usar espacios de direcciones IP fragmentados para tus clústeres.
- Cuando puedes reasignar direcciones IP en respuesta a las necesidades empresariales cambiantes.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Kubernetes Engine de Google. Habilitar la API de Kubernetes Engine de Google
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta
gcloud components update
para obtener la versión más reciente.
- Revisa la sección Agrega más rangos IPv4 de Pods para casos de uso específicos.
- Usa solo clústeres nativos de la VPC.
Agrega más rangos IPv4 de Pods con GKE Autopilot
Para los clústeres de Autopilot de GKE en la versión 1.26 o posterior, puedes agregar más rangos IPv4 de Pods si creas rangos secundarios adicionales y los asignas al clúster.
Crea un rango secundario adicional para una subred
Consola
Ve a la página Redes de VPC en la consola de Google Cloud.
En la lista Redes de VPC, selecciona la red que deseas expandir.
En la lista Subredes, selecciona la subred que desees.
Haga clic en Editar.
Haz clic en Agregar rango de IP.
En Nombre de rango de subred, ingresa el nombre adicional del rango de Pods. Por ejemplo,
pod-range-2
En Rango de IP secundario, ingresa el rango de IP. Por ejemplo,
10.2.204.0/22
Haz clic en Guardar.
gcloud
gcloud compute networks subnets update SUBNET_NAME \
--add-secondary-ranges ADDITIONAL_RANGE=RANGE \
--location=COMPUTE_LOCATION
Reemplaza lo siguiente:
SUBNET_NAME
: El nombre de la subred a la que deseas agregar un rango (debe ser la subred asignada al clúster)ADDITIONAL_RANGE
: El nombre del rango de Pods que se agregará al clúster. Por ejemplo,pod-range-2
Para especificar varios rangos, sepáralos con una coma. Por ejemplo:pod-range-1
,pod-range-2
.RANGE
: El rango de direcciones IP que se agregará al clúster.COMPUTE_LOCATION
: La ubicación de Compute Engine de la subred.
Asigna rangos secundarios adicionales al clúster
Crea rangos secundarios adicionales y asígnalos al clúster. Puedes usar la consola de Google Cloud o Google Cloud CLI:
Consola
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Junto al clúster que deseas editar, haz clic en more_vert Acciones y, luego, en edit Editar.
En la sección Herramientas de redes, junto a Rangos IPv4 del Pod del clúster (adicionales), haz clic en edit Editar.
En el cuadro de diálogo Editar rangos IPv4 de Pod adicionales del clúster, selecciona los Rangos de CIDR secundarios de pods que deseas agregar al clúster. Usa el mismo nombre de rango de Pods que creaste en la subred como rangos secundarios adicionales para el clúster.
Haz clic en Guardar cambios.
gcloud
Actualiza el clúster para usar un rango de direcciones IP adicional:
gcloud container clusters update CLUSTER_NAME \ --additional-pod-ipv4-ranges=ADDITIONAL_RANGE \ --location=COMPUTE_LOCATION
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster. Tu clúster debe ejecutar la versión 1.26.0 o posterior.ADDITIONAL_RANGE
: El nombre del rango de Pod para agregar al clúster. Usa el mismo nombre de rango de Pods que creaste en la subred como rangos secundarios adicionales para el clúster.COMPUTE_LOCATION
: La ubicación de Compute Engine de la subred.
Verifica que la dirección IP nueva esté asignada al clúster:
gcloud container clusters describe CLUSTER_NAME
El resultado es similar a este:
ipAllocationPolicy: additionalPodRangesConfig: podRangeNames: - pod-range-1 - pod-range-2 clusterIpv4Cidr: 10.10.0.0/23 clusterIpv4CidrBlock: 10.10.0.0/23 clusterSecondaryRangeName: cluster-pods
Agrega más rangos IPv4 de Pods con GKE Standard
Para los clústeres de GKE Standard, puedes agregar más rangos IPv4 de Pods mediante cualquiera de los siguientes métodos:
- Crea y asigna rangos secundarios adicionales al clúster: recomendado para los usuarios que no necesitan controlar los rangos de direcciones IP del Pod a nivel del grupo de nodos. Este método está disponible en GKE versión 1.26.0 o posterior. Para obtener más información, consulta Agrega más rangos IPv4 de Pods con GKE Autopilot.
- Crea un grupo de nodos con un rango de direcciones IP del Pod secundario nuevo: se recomienda para los usuarios que necesitan controlar por completo los rangos de direcciones IP del Pod de tus grupos de nodos. Este método está disponible en GKE versión 1.20.4-gke.500 o posterior.
- Crea un grupo de nodos mediante una dirección IP de Pod secundaria existente: se recomienda para los usuarios que necesitan controlar por completo los rangos de direcciones IP de los Pods existentes de los grupos de nodos. Este método está disponible en GKE versión 1.20.4-gke.500 o posterior.
Crea un grupo de nodos con un rango de IP del Pod secundario nuevo
De forma predeterminada, GKE asocia un rango de Pod al grupo de nodos. Puede ser el rango de direcciones IP predeterminado del Pod del clúster o uno de los rangos de Pods adicionales (si existen) asociados con el clúster. Con los rangos secundarios adicionales, puedes especificar un rango de direcciones IPv4 del Pod durante la creación del grupo de nodos, y el grupo de nodos usa ese rango en lugar del rango de direcciones IP del Pod secundario predeterminado del clúster.
En esta sección, crearás un grupo de nodos con un rango de direcciones IP del Pod secundario.
Puedes usar Google Cloud CLI o la API de GKE.
gcloud
gcloud container node-pools create POOL_NAME \
--cluster CLUSTER_NAME \
--create-pod-ipv4-range name=RANGE_NAME,range=RANGE
Reemplaza lo siguiente:
POOL_NAME
: el nombre del grupo de nodos nuevoCLUSTER_NAME
: el nombre del clústerRANGE_NAME
: un nombre opcional del nuevo rango de direcciones IP del Pod secundarioRANGE
: un rango de direcciones IP de Pod opcional proporcionado como una máscara de red (/20
) o un rango CIDR (10.12.4.0/20
). Si proporcionas una máscara de red, GKE asigna un rango de los rangos disponibles en la red del clúster. Si no proporcionas un valor pararange
, GKE asigna de forma automática una máscara de red de/14
, el tamaño predeterminado para el rango de IP secundario para Pods de la subred.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": true,
"podRange": "RANGE_NAME",
"podIpv4CidrBlock": "RANGE"
}
}
Reemplaza lo siguiente:
POOL_NAME
: el nombre del grupo de nodos nuevoRANGE_NAME
: un nombre opcional del nuevo rango de direcciones IP del Pod secundarioRANGE
: un rango de direcciones IP del Pod opcional proporcionado como una máscara de red (/20
) o un rango CIDR (10.12.0.0/20
). Si se especifica una máscara de red, el rango de IP se asigna automáticamente desde el espacio libre en la red del clúster. Si no se proporciona ningún valor, GKE asigna de forma automática una máscara de red/14
, el tamaño predeterminado para el rango de IP secundario de Pods de la subred.
Crea un grupo de nodos con un rango de IP del Pod secundario existente
En esta sección, crearás un grupo de nodos con un rango de direcciones IP del Pod secundario existente.
Puedes usar la CLI de gcloud o la API de GKE.
gcloud
gcloud container node-pools create POOL_NAME \
--cluster CLUSTER_NAME \
--pod-ipv4-range RANGE_NAME
Reemplaza lo siguiente:
POOL_NAME
: el nombre del grupo de nodos nuevoCLUSTER_NAME
: el nombre del clústerRANGE_NAME
: el nombre de un rango de direcciones IP del Pod secundario existente en la subred del clúster.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"podRange": "RANGE_NAME"
}
}
Reemplaza lo siguiente:
POOL_NAME
: el nombre del grupo de nodos nuevoRANGE_NAME
: el nombre de un rango de direcciones IP del Pod secundario existente en la subred del clúster.
Verifica el bloque CIDR del Pod para un grupo de nodos
A fin de determinar qué bloque CIDR del Pod se usa para los Pods en un grupo de nodos determinado, usa el siguiente comando:
gcloud container node-pools describe POOL_NAME \
--cluster CLUSTER_NAME
El resultado es similar a este:
...
networkConfig:
podIpv4CidrBlock: 192.168.0.0/18
podRange: podrange
...
Si el grupo de nodos usa CIDR de varios Pods discontinuos, podRange
y
podIpv4CidrBlock
muestran los valores configurados para este grupo de nodos.
Si el grupo de nodos no usa CIDR de varios pods contiguos, podRange
y podIpv4CidrBlock
muestran los valores predeterminados del clúster, clusterSecondaryRangeName
y clusterIpv4CidrBlock
, de IPAllocationPolicy.
Agrega más rangos IPv4 de Pods para casos de uso específicos
- Si usas
ip-masq-agent
configurado con el parámetrononMasqueradeCIDRs
, debes actualizarnonMasqueradeCIDRs
para incluir todos los rangos secundarios adicionales. - Si usas
NetworkPolicy
configurado con unipBlock
para especificar el tráfico, debes actualizar el valor de CIDR a fin de incluir todos los rangos de CIDR del Pod. - Para una VPC compartida, debes establecer con anterioridad otra cuenta de servicio.
- Para agregar un rango de direcciones IP del Pod secundario al clúster o crear un grupo de nodos con un rango de direcciones IP del Pod secundario nuevo, debes tener el rol de Administrador de red. Un rol de usuario solo puede usar estos recursos si los crea el administrador de red.
- Si tu proyecto tiene más de un clúster, asegúrate de crear y agregar un rango de direcciones IP de Pod secundario en cada clúster.
Cómo funciona CIDR de varios Pods discontinuos
Cuando creas un grupo de nodos nuevo, de forma predeterminada, el grupo de nodos usa el rango de direcciones IP del Pod predeterminado del clúster, también conocido como CIDR del clúster. Con esta característica, puedes especificar un rango de direcciones IP del Pod durante la creación del grupo de nodos, y el grupo de nodos usa ese rango en lugar del rango de direcciones IP predeterminado del Pod del clúster.
En el siguiente diagrama, se muestra un clúster administrado por el usuario con un bloque de CIDR /24 como un rango de direcciones IP de Pods secundario (256 direcciones IP) y dos nodos que usan un bloque CIDR /25 para direcciones IP del Pod (128 direcciones IP cada una). El rango de direcciones IP del Pod secundario está agotado y no puedes agregar otro nodo al clúster. En lugar de borrar y volver a crear el clúster, puedes usar CIDR con varios Pods discontinuos para expandir las direcciones IP del Pod con bloques /20 CIDR. El clúster se expande a fin de incluir un tercer nodo que usa el bloque CIDR /25 para direcciones IP de Pods que provienen del bloque /20.
Regla de firewall modificada
Cuando GKE crea un clúster, crea una regla de firewall para habilitar la comunicación de Pod a Pod, gke-[cluster-name]-[cluster-hash]-all
.
Cuando creas o borras un grupo de nodos con CIDR habilitado para varios Pods, GKE actualiza el valor de origen de esta regla de firewall a todos los CIDR que usan el clúster para las IP de Pods.
Soluciona problemas
Puedes habilitar los registros de flujo de VPC para determinar si los paquetes se envían de forma correcta a los nodos.
¿Qué sigue?
- Obtén más información sobre los clústeres nativos de VPC.
- Lee la descripción general de la red de GKE.
- Obtén más información para optimizar la asignación de direcciones IP.
- Obtén más información sobre las estadísticas de uso de direcciones IP de GKE.