En esta página, se explica cómo configurar clústeres nativos de la VPC en Google Kubernetes Engine (GKE).
Si quieres obtener más información sobre los beneficios y requisitos de los clústeres nativos de la VPC, consulta la descripción general de los clústeres nativos de la VPC.
NPara los clústeres de Autopilot de GKE, las redes nativas de VPC están habilitadas de forma predeterminada y no se pueden anular.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- 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.
Limitaciones
- Los clústeres nativos de la VPC requieren redes de VPC. No se admiten las redes heredadas.
- Al igual que con cualquier clúster de GKE, las direcciones de un objeto Service (ClusterIP) solo están disponibles en el clúster. Si necesitas acceder a un servicio de Kubernetes desde instancias de VM fuera del clúster, pero dentro de su red y región de VPC, crea un Balanceador de cargas de red de transferencia interno.
- Si usas todas las direcciones IP del Pod en una subred, no puedes reemplazar el rango de direcciones IP secundario de la subred sin poner el clúster en un estado inestable. Sin embargo, puedes crear rangos de direcciones IP del Pod adicionales mediante CIDR de varios Pods discontinuos.
Crea un clúster
En esta sección, se muestra cómo completar las siguientes tareas en el momento de la creación del clúster:
- Crea un clúster y una subred simultáneamente
- Crea un clúster en una subred existente
- Crea un clúster y selecciona el rango de direcciones IP del plano de control.
- Crea un clúster con herramientas de redes de pila doble en una subred nueva (disponible en los clústeres de Autopilot versión 1.25 o posterior y en los clústeres Standard versión 1.24 o posterior).
- Crea un clúster de pila doble y una subred de pila doble de forma simultánea (disponible en la versión 1.25 o posterior de los clústeres de Autopilot y en la versión 1.24 o posterior de los clústeres Standard).
Crea un clúster y una subred simultáneamente
Las siguientes instrucciones demuestran cómo crear un clúster y una subred de GKE nativos de la VPC al mismo tiempo. GKE administra el método de asignación del rango secundario cuando realizas estos dos pasos con un comando.
gcloud
Para crear un clúster nativo de la VPC y una subred de forma simultánea, usa el siguiente comando:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--enable-ip-alias \
--create-subnetwork name=SUBNET_NAME,range=NODE_IP_RANGE \
--cluster-ipv4-cidr=POD_IP_RANGE \
--services-ipv4-cidr=SERVICES_IP_RANGE
Reemplaza lo siguiente:
CLUSTER_NAME
: el nombre del clúster de GKE.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster.SUBNET_NAME
: El nombre de la subred que se creará. La región de la subred es la misma región que la del clúster (o la región que contiene el clúster zonal). Usa una string vacía (name=""
) si quieres que GKE genere un nombre automáticamente.NODE_IP_RANGE
: Un rango de direcciones IP en notación de CIDR, como10.5.0.0/20
, o el tamaño de la máscara de subred de un bloque CIDR, como/20
Esto se usa con el fin de crear el rango de direcciones IP principal de la subred para los nodos. Si se omite, GKE selecciona un rango de IP disponible en la VPC con un tamaño de/20
.POD_IP_RANGE
: Un rango de direcciones IP en notación de CIDR, como10.0.0.0/14
, o el tamaño de la máscara de subred de un bloque CIDR, como/14
. Esto se usa con el fin de crear el rango de direcciones IP secundario de la subred para los pods. Si se omite, GKE usa un rango/14
elegido de forma aleatoria que contenga 218 direcciones. Este rango se selecciona de forma aleatoria a partir de10.0.0.0/8
(un rango de 224 direcciones) y no incluirá los rangos de direcciones IP asignados a las VM, rutas existentes o rangos asignados a otros clústeres. El rango elegido de forma automática podría entrar en conflicto con direcciones IP reservadas, rutas dinámicas o rutas dentro de VPC que intercambian el tráfico con este clúster. Si usas alguna de estas opciones, debes especificar--cluster-ipv4-cidr
para evitar conflictos.SERVICES_IP_RANGE
: Un rango de direcciones IP en notación de CIDR, como10.4.0.0/19
, o el tamaño de la máscara de subred de un bloque CIDR, como/19
. Esto se usa con el fin de crear el rango de direcciones IP secundario de la subred para servicios. Si se omite, GKE usa/20
, el tamaño predeterminado del rango de direcciones IP de los servicios.
Console
No puedes crear un clúster y una subred de forma simultánea con la consola de Google Cloud. En su lugar, primero debes crear una subred y, luego, crear el clúster en una subred existente.
API
Para crear un clúster nativo de la VPC, define un objeto IPAllocationPolicy en tu recurso de clúster:
{
"name": CLUSTER_NAME,
"description": DESCRIPTION,
...
"ipAllocationPolicy": {
"useIpAliases": true,
"createSubnetwork": true,
"subnetworkName": SUBNET_NAME
},
...
}
El campo createSubnetwork
crea y aprovisiona de manera automática una subred para el clúster. El campo subnetworkName
es opcional; si se deja vacío, se elige de forma automática un nombre para la subred.
Crea un clúster en una subred existente
En las siguientes instrucciones, se muestra cómo crear un clúster de GKE nativo de VPC en una subred existente con el método de asignación del rango secundario que elijas.
gcloud
Para usar un método de asignación del rango secundario administrado por GKE, ejecuta el siguiente comando:
gcloud container clusters create CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-ip-alias \ --subnetwork=SUBNET_NAME \ --cluster-ipv4-cidr=POD_IP_RANGE \ --services-ipv4-cidr=SERVICES_IP_RANGE
Para usar un método de asignación del rango secundario administrado por el usuario, ejecuta el siguiente comando:
gcloud container clusters create CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-ip-alias \ --subnetwork=SUBNET_NAME \ --cluster-secondary-range-name=SECONDARY_RANGE_PODS \ --services-secondary-range-name=SECONDARY_RANGE_SERVICES
Reemplaza lo siguiente:
CLUSTER_NAME
es el nombre del clúster de GKE.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster.SUBNET_NAME
: Es el nombre de una subred existente. El rango de direcciones IP principal de la subred se usa para los nodos. La subred debe existir en la misma región que usa el clúster. Si se omite, GKE intenta usar una subred en la red de VPCdefault
en la región del clúster.- Si el método de asignación del rango secundario es administrado por GKE:
POD_IP_RANGE
: Un rango de direcciones IP en notación de CIDR, como10.0.0.0/14
, o el tamaño de la máscara de subred de un bloque CIDR, como/14
. Esto se usa con el fin de crear el rango de direcciones IP secundario de la subred para los pods. Si omites la opción--cluster-ipv4-cidr
, GKE elige un rango/14
(218 direcciones) de forma automática. Este rango se selecciona de forma aleatoria a partir de10.0.0.0/8
(un rango de 224 direcciones) y no incluirá los rangos de direcciones IP asignados a las VMs, rutas existentes o rangos asignados a otros clústeres. El rango elegido de forma automática podría entrar en conflicto con direcciones IP reservadas, rutas dinámicas o rutas dentro de VPC que intercambian el tráfico con este clúster. Si usas alguna de estas opciones, debes especificar--cluster-ipv4-cidr
para evitar conflictos.SERVICES_IP_RANGE
: un rango de direcciones IP en una notación de CIDR (por ejemplo,10.4.0.0/19
) o el tamaño de la máscara de subred de un bloque de CIDR (por ejemplo,/19
). Se usa con el fin de crear el rango de direcciones IP secundarias de la subred para los servicios.
- Si el método de asignación del rango secundario es administrado por el usuario:
SECONDARY_RANGE_PODS
: el nombre de un rango de direcciones IP secundario existente en elSUBNET_NAME
especificado. GKE usa todo el rango de direcciones IP secundario de la subred para los Pods del clúster.SECONDARY_RANGE_SERVICES
es el nombre de un rango de direcciones IP secundario existente en el especificado.
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en
Crear y, luego, en la sección Standard o Autopilot, haz clic en Configurar.En el panel de navegación, en Clúster, haz clic en Herramientas de redes.
En la lista desplegable Red, selecciona una VPC.
En la lista desplegable Subred del nodo, selecciona una subred para el clúster.
Asegúrate de que la casilla de verificación Habilitar enrutamiento de tráfico nativo de la VPC (con alias de IP) esté seleccionada.
Selecciona la casilla de verificación Crear rangos secundarios automáticamente si deseas que GKE administre el método de asignación del rango secundario. Desmarca esta casilla de verificación si ya creaste rangos secundarios para la subred elegida y deseas que el método de asignación del rango secundario esté administrado por el usuario.
En el campo Rango de direcciones de pods, ingresa un rango de pods, como
10.0.0.0/14
.En el campo Rango de direcciones del servicio, ingresa un rango del servicio, como
10.4.0.0/19
.Configura tu clúster.
Haz clic en Crear.
Terraform
Puedes crear un clúster nativo de la VPC a través de Terraform mediante el uso de un módulo de Terraform.
Por ejemplo, puedes agregar el siguiente bloque a la configuración de Terraform:
module "gke" {
source = "terraform-google-modules/kubernetes-engine/google"
version = "~> 12.0"
project_id = "PROJECT_ID"
name = "CLUSTER_NAME"
region = "COMPUTE_LOCATION"
network = "NETWORK_NAME"
subnetwork = "SUBNET_NAME"
ip_range_pods = "SECONDARY_RANGE_PODS"
ip_range_services = "SECONDARY_RANGE_SERVICES"
}
Reemplaza lo siguiente:
PROJECT_ID
: el ID de tu proyectoCLUSTER_NAME
: el nombre del clúster de GKE.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster. Para Terraform, la región de Compute Engine.NETWORK_NAME
: el nombre de una red existente.SUBNET_NAME
: Es el nombre de una subred existente. El rango de direcciones IP principal de la subred se usa para los nodos. La subred debe existir en la misma región que usa el clúster.SECONDARY_RANGE_PODS
es el nombre de un rango de direcciones IP secundario existente en el especificado.SECONDARY_RANGE_SERVICES
es el nombre de un rango de direcciones IP secundario existente en el especificado.
API
Cuando creas un clúster nativo de la VPC, defines un objeto IPAllocationPolicy. Puedes hacer referencia a rangos de direcciones IP secundarios existentes de la subred o especificar bloques CIDR. Haz referencia a rangos de direcciones IP secundarios existentes de la subred para crear un clúster cuyo método de asignación del rango secundario sea administrado por el usuario y proporciona bloques CIDR si deseas que el método de asignación del rango sea administrado por GKE.
{
"name": CLUSTER_NAME,
"description": DESCRIPTION,
...
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterIpv4CidrBlock" : string,
"servicesIpv4CidrBlock" : string,
"clusterSecondaryRangeName" : string,
"servicesSecondaryRangeName": string,
},
...
}
Este comando incluye los siguientes valores:
"clusterIpv4CidrBlock"
: Es el rango de CIDR para Pods. Esto determina el tamaño del rango secundario para pods, que puede estar en notación CIDR, como10.0.0.0/14
. Se elige un espacio vacío con el tamaño dado del espacio disponible en tu VPC. Si se deja en blanco, se encuentra un rango válido y se crea con un tamaño predeterminado."servicesIpv4CidrBlock"
: El rango de CIDR para los servicios. Consulta la descripción de"clusterIpv4CidrBlock"
."clusterSecondaryRangeName"
: Es el nombre del rango secundario para los Pods. El rango secundario debe existir previamente y pertenecer a la subred asociada con el clúster."serviceSecondaryRangeName"
: Es el nombre del rango secundario para los servicios. El rango secundario debe existir previamente y pertenecer a la subred asociada con el clúster.
Crea un clúster y selecciona el rango de direcciones IP del plano de control
De forma predeterminada, los clústeres con Private Service Connect usan el rango de subred principal para aprovisionar la dirección IP interna asignada al extremo del plano de control. Puedes anular esta configuración predeterminada si seleccionas un rango de subred diferente solo durante la creación del clúster. En las siguientes secciones, se muestra cómo crear un clúster con Private Service Connect y anular el rango de subred.
gcloud
Crea un clúster con Private Service Connect definido como público
gcloud container clusters create CLUSTER_NAME \
--private-endpoint-subnetwork=SUBNET_NAME \
--location=COMPUTE_LOCATION
Agrega la marca --enable-private-nodes
para crear el clúster de Private Service Connect como privado.
Reemplaza lo siguiente:
CLUSTER_NAME
: el nombre del clúster de GKE.SUBNET_NAME
: Es el nombre de una subred existente.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster.
GKE crea un clúster con Private Service Connect.
Crea un clúster definido como privado:
En la versión 1.29 de GKE y versiones posteriores, puedes crear un clúster con Private Service Connect. Cuando creas una subred en un clúster privado con Private Service Connect, el parámetro --master-ipv4-cidr
es opcional. Para crear un clúster privado, sigue estos pasos:
gcloud container clusters create CLUSTER_NAME --enable-ip-alias \
--enable-private-nodes \
--private-endpoint-subnetwork=SUBNET_NAME \
--region=COMPUTE_REGION
Reemplaza lo siguiente:
CLUSTER_NAME
es el nombre del clúster de GKE.SUBNET_NAME
: Es el nombre de una subred existente. Si no proporcionas un valor para la marcaprivate-endpoint-subnetwork
, pero usasmaster-ipv4-cidr
, GKE crea una nueva subred que usa los valores que definiste enmaster-ipv4-cidr
. GKE usa la subred nueva para aprovisionar la dirección IP interna del plano de control.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster.
Console
Crea un clúster definido como público:
Para asignar una subred al plano de control de un clúster nuevo, primero debes agregar una subred. Realiza los pasos que se indican a continuación:
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en add_box Crear.
En la sección Standard o Autopilot, haz clic en Configurar.
En Nombre, ingresa el nombre de tu clúster.
Para los clústeres estándar, en el panel de navegación, en Clúster, haz clic en Herramientas de redes.
En la sección Acceso a la red IPv4, haz lo siguiente:
- Para crear un clúster de GKE como público, selecciona Clúster público.
- Para crear un clúster de GKE como privado, selecciona Clúster privado.
En ambos casos, puedes cambiar el modo de aislamiento del clúster cuando edites la configuración del clúster.
En la sección Opciones avanzadas de redes, selecciona la casilla de verificación Anular la subred predeterminada del extremo privado del plano de control.
En la lista Subred del extremo privado, selecciona la subred que creaste.
Haz clic en Listo. Agrega redes autorizadas adicionales según sea necesario.
Crea un clúster con herramientas de redes de pila doble
Puedes crear un clúster con herramientas de redes de pila doble IPv4/IPv6 en una subred de pila doble nueva o existente. La subred de pila doble está disponible en los clústeres de Autopilot versión 1.25 o posterior y en los clústeres Standard versión 1.24 o posterior.
Antes de configurar clústeres de pila doble, te recomendamos que completes las siguientes acciones:
- Obtén más información sobre los beneficios y requisitos de los clústeres de GKE con redes de pila doble.
- Consulta las restricciones y limitaciones de las herramientas de redes de pila doble.
En esta sección, primero crearás una subred de pila doble y la usarás para crear un clúster.
Para crear una subred de pila doble, ejecuta el siguiente comando:
gcloud compute networks subnets create SUBNET_NAME \ --stack-type=ipv4-ipv6 \ --ipv6-access-type=ACCESS_TYPE \ --network=NETWORK_NAME \ --range=PRIMARY_RANGE \ --region=COMPUTE_REGION
Reemplaza lo siguiente:
SUBNET_NAME
: Es el nombre de la subred que eliges.ACCESS_TYPE
: Es la enrutabilidad a la Internet pública. UsaINTERNAL
para clústeres privados yEXTERNAL
para clústeres públicos. Si no se especifica--ipv6-access-type
, el tipo de acceso predeterminado esEXTERNAL
.NETWORK_NAME
: El nombre de la red que contendrá la subred nueva. Esta red debe cumplir con los siguientes requisitos:- Debe ser una red de VPC en modo personalizado. Para obtener más información, consulta cómo cambiar una red de VPC del modo automático al modo personalizado.
- Si reemplazas
ACCESS_TYPE
porINTERNAL
, la red debe usar direcciones IPv6 de unidifusión (ULA) únicas.
PRIMARY_RANGE
: El rango de direcciones IP IPv4 principal de la subred nueva, en notación CIDR. Para obtener más información, consulta Rangos de subredes.COMPUTE_REGION
: es la región de procesamiento para el clúster.
Para crear un clúster con una subred de pila doble, usa
gcloud CLI
o la consola de Google Cloud:
gcloud
Para los clústeres Autopilot, ejecuta el siguiente comando:
gcloud container clusters create-auto CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --network=NETWORK_NAME \ --subnetwork=SUBNET_NAME
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster nuevo de Autopilot.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster.NETWORK_NAME
: El nombre de la red de VPC que contiene la subred Esta red de VPC debe ser una red de VPC de modo personalizado Para obtener más información, consulta cómo cambiar una red de VPC del modo automático al modo personalizado.SUBNET_NAME
: el nombre de la subred de pila doble.Los clústeres de Autopilot de GKE se establecen de forma predeterminada en un clúster de pila doble cuando usas una subred de pila doble. Después de la creación del clúster, puedes actualizar el clúster de Autopilot para que sea solo IPv4.
Para los clústeres estándar, ejecuta el siguiente comando:
gcloud container clusters create CLUSTER_NAME \ --enable-ip-alias \ --enable-dataplane-v2 \ --stack-type=ipv4-ipv6 \ --network=NETWORK_NAME \ --subnetwork=SUBNET_NAME \ --location=COMPUTE_LOCATION
Reemplaza lo siguiente:
CLUSTER_NAME
el nombre del clúster nuevo.NETWORK_NAME
: El nombre de la red de VPC que contiene la subred Esta red de VPC debe ser una red de VPC de modo personalizado que use direcciones IPv6 de unidifusión (ULA) únicas. Para obtener más información, consulta cómo cambiar una red de VPC del modo automático al modo personalizado.SUBNET_NAME
: el nombre de la subred.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster.
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en add_box Crear.
En la sección Standard o Autopilot, haz clic en Configurar.
Configura tu clúster según sea necesario.
En el panel de navegación, en Clúster, haz clic en Herramientas de redes.
En la lista Red, selecciona el nombre de tu red.
En la lista Subred del nodo, selecciona el nombre de tu subred de pila doble.
Para los clústeres estándar, selecciona el botón de selección IPv4 e IPv6 (pila doble). Esta opción solo está disponible si seleccionaste una subred de pila doble.
Los clústeres de Autopilot se configuran de forma predeterminada para un clúster de pila doble cuando usas una subred de pila doble.
Haz clic en Crear.
Crea un clúster de pila doble y una subred simultáneamente
Puedes crear una subred y un clúster de pila doble de forma simultánea. GKE crea una subred IPv6 y le asigna un rango principal IPv6 externo a la subred.
Si usas una VPC compartida, no puedes crear el clúster y la subred de forma simultánea. En su lugar, un administrador de red en el proyecto host de la VPC compartida debe crear primero la subred de pila doble.
Para los clústeres Autopilot, ejecuta el siguiente comando:
gcloud container clusters create-auto CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --network=NETWORK_NAME \ --create-subnetwork name=SUBNET_NAME
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster nuevo de Autopilot.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster.NETWORK_NAME
: El nombre de la red de VPC que contiene la subred Esta red de VPC debe ser una red de VPC de modo personalizado que use direcciones IPv6 de unidifusión (ULA) únicas. Para obtener más información, consulta cómo cambiar una red de VPC del modo automático al modo personalizado.SUBNET_NAME
: es el nombre de la subred nueva. GKE puede crear la subred según las políticas de tu organización:- Si las políticas de tu organización permiten la pila doble, y la red es el modo personalizado, GKE crea una subred de pila doble y asigna un rango principal IPv6 externo a la subred .
- Si las políticas de la organización no permiten la pila doble o si la red está en modo automático, GKE crea una subred de pila única (IPv4).
Para los clústeres estándar, ejecuta el siguiente comando:
gcloud container clusters create CLUSTER_NAME \ --enable-ip-alias \ --stack-type=ipv4-ipv6 \ --ipv6-access-type=ACCESS_TYPE \ --network=NETWORK_NAME \ --create-subnetwork name=SUBNET_NAME,range=PRIMARY_RANGE \ --location=COMPUTE_LOCATION
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster nuevo que eliges.ACCESS_TYPE
: La enrutabilidad a la Internet pública. UsaINTERNAL
para clústeres privados yEXTERNAL
para clústeres públicos. Si no se especifica--ipv6-access-type
, el tipo de acceso predeterminado esEXTERNAL
.NETWORK_NAME
: El nombre de la red que contendrá la subred nueva. Esta red debe cumplir con los siguientes requisitos:- Debe ser una red de VPC en modo personalizado. Para obtener más información, consulta cómo cambiar una red de VPC del modo automático al modo personalizado.
- Si reemplazas
ACCESS_TYPE
porINTERNAL
, la red debe usar direcciones IPv6 de unidifusión (ULA) únicas.
SUBNET_NAME
: Es el nombre de la subred nueva que eliges.PRIMARY_RANGE
: El rango de direcciones IPv4 principal de la subred nueva, en notación CIDR. Para obtener más información, consulta Rangos de subredes.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster.
Actualiza el tipo de pila
Puedes cambiar el tipo de pila de un clúster existente o actualizar una subred existente a una subred de pila doble.
Actualiza el tipo de pila en un clúster existente
Antes de cambiar el tipo de pila en un clúster existente, ten en cuenta las siguientes limitaciones:
El cambio del tipo de pila es compatible con los clústeres de GKE nuevos que ejecutan la versión 1.25 o posterior. Los clústeres de GKE que se actualizaron de las versiones 1.24 a las 1.25 o 1.26 pueden obtener errores de validación cuando se habilita la red de pila doble. En caso de error, comunícate con el equipo de asistencia al cliente de Google Cloud.
Cambiar el tipo de pila es una operación perjudicial porque GKE reinicia los componentes en el plano de control y en los nodos.
GKE respeta los períodos de mantenimiento configurados cuando se vuelven a crear los nodos. Esto significa que el tipo de pila del clúster no funcionará en el clúster hasta que se produzca el siguiente período de mantenimiento. Si no quieres esperar, puedes actualizar de forma manual el grupo de nodos si configuras la marca
--cluster-version
en la misma versión de GKE que ya ejecuta el plano de control. Si usas esta solución alternativa, debes usar la CLI de gcloud. Si deseas obtener más información, consulta Advertencias para los períodos de mantenimiento.El cambio del tipo de pila no cambia automáticamente la familia de IP de los objetos Service existentes. Se aplican las siguientes condiciones:
- Si cambias una sola pila por pila doble, los servicios existentes seguirán siendo una sola pila.
- Si cambias una pila doble a una sola, los servicios existentes con direcciones IPv6 entrarán en un estado de error. Borra el Service y crea uno con el
ipFamilies
correcto. Para obtener más información, consulta un ejemplo de configuración de un Deployment.
Para actualizar un clúster nativo de la VPC existente, puedes usar gcloud CLI o la consola de Google Cloud:
gcloud
Ejecuta el comando siguiente:
gcloud container clusters update CLUSTER_NAME \
--stack-type=STACK_TYPE \
--location=COMPUTE_LOCATION
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster que deseas actualizar.STACK_TYPE
: Es el tipo de pila. Reemplaza- por uno de los siguientes valores:
ipv4
: para actualizar un clúster de pila doble a un clúster solo IPv4. GKE usa el rango de direcciones IPv4 principal de la subred del clúster.ipv4-ipv6
: para actualizar un clúster de IPv4 existente a pila doble. Solo puedes cambiar un clúster a pila doble si la subred subyacente es compatible con pila doble. Para obtener más información, consulta Actualiza una subred existente a una subred de pila doble.
COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster.
Console
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 Tipo de pila, haz clic en edit Editar.
En el cuadro de diálogo Editar tipo de pila, selecciona la casilla de verificación para el tipo de pila del clúster que necesitas.
Haz clic en Save Changes.
Actualiza una subred existente a una subred de pila doble (disponible en la versión 1.25 o posterior de los clústeres de Autopilot y en la versión 1.24 o posterior de los clústeres Standard).
Actualiza una subred existente a una subred de pila doble
Para actualizar una subred existente a una subred de doble pila, ejecuta el siguiente comando. La actualización de una subred no afecta a ningún clúster de IPv4 existente en la subred.
gcloud compute networks subnets update SUBNET_NAME \
--stack-type=ipv4-ipv6 \
--ipv6-access-type=ACCESS_TYPE \
--region=COMPUTE_REGION
Reemplaza lo siguiente:
SUBNET_NAME
: El nombre de la subred.ACCESS_TYPE
: Es la enrutabilidad a la Internet pública. UsaINTERNAL
para clústeres privados yEXTERNAL
para clústeres públicos. Si no se especifica--ipv6-access-type
, el tipo de acceso predeterminado esEXTERNAL
.COMPUTE_REGION
: es la región de procesamiento para el clúster.
Verifica el tipo de pila, el pod y los rangos de direcciones IP del servicio
Después de crear un clúster nativo de la VPC, puedes verificar sus rangos del pod y el servicio.
gcloud
Para verificar el clúster, ejecuta el siguiente comando:
gcloud container clusters describe CLUSTER_NAME
El resultado tiene un bloque ipAllocationPolicy
. El campo stackType
describe el tipo de definición de red. Para cada tipo, puedes ver la siguiente información de red:
Información de red IPv4:
clusterIpv4Cidr
es el rango secundario para los pods.servicesIpv4Cidr
es el rango secundario para Services.
Información de red IPv6 (si un clúster tiene herramientas de redes de pila doble):
ipv6AccessType
: La enrutabilidad a la Internet pública.INTERNAL
para direcciones IPv6 privadas yEXTERNAL
para direcciones IPv6 públicas.subnetIpv6CidrBlock
: El rango de direcciones IPv6 secundario para la subred nueva.servicesIpv6CidrBlock
: El rango de direcciones asignado para los Services IPv6 en el clúster de pila doble.
Console
Para verificar el clúster, realiza los siguientes pasos:
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que quieres inspeccionar.
Los rangos secundarios se muestran en la sección Herramientas de redes:
- Rango de direcciones de contenedor es el rango secundario para Pods
- Rango de direcciones de servicio es el rango secundario para servicios
Configuración avanzada para direcciones IP internas
En las siguientes secciones, se muestra cómo usar rangos de direcciones IP privadas que no son RFC 1918 y cómo habilitar rangos de direcciones IP públicas de uso privado.
Usa rangos de direcciones IP que no sean RFC 1918
Los clústeres de GKE pueden usar rangos de direcciones IP fuera de los rangos RFC 1918 para nodos, Pods y objetos Service. Consulta los rangos válidos en la documentación de red de la VPC a fin de obtener una lista de los rangos privados que no son RFC 1918 y que se pueden usar como direcciones IP internas para los rangos de subred.
Los rangos de direcciones IP que no son RFC 1918 son compatibles con clústeres privados y no privados.
Los rangos privados que no son RFC 1918 son rangos de subred; puedes usarlos de forma exclusiva o junto con rangos de subred RFC 1918. Los nodos, los Pods y los objetos Service continúan usando rangos de subredes como se describe en Rangos de IP para clústeres nativos de la VPC. Si usas rangos que no son RFC 1918, ten en cuenta lo siguiente:
Los rangos de subred, incluso los que usan rangos que no son RFC 1918, deben asignarse de forma manual o mediante GKE antes de que se creen los nodos del clúster. No puedes cambiar a rangos de subred que no sean RFC 1918 o dejar de usarlos a menos que reemplaces el clúster.
Los balanceadores de cargas de red de transferencia internos solo usan direcciones IP del rango de direcciones IP principal de la subred. Para crear un balanceador de cargas de red de transferencia interno con una dirección que no sea RFC 1918, el rango de direcciones IP principal de la subred no debe ser RFC 1918.
Los destinos fuera del clúster pueden tener dificultades para recibir el tráfico de rangos privados que no sean RFC 1918. Por ejemplo, los rangos privados RFC 1112 (clase E) suelen usarse como direcciones de multidifusión. Si un destino fuera del clúster no puede procesar paquetes cuyas fuentes sean direcciones IP privadas fuera del rango RFC 1918, puedes realizar lo siguiente:
- Usar un rango RFC 1918 para el rango de direcciones IP principal de la subred. De esta manera, los nodos del clúster usan direcciones RFC 1918.
- Asegurarte de que el clúster ejecute el agente de enmascaramiento de IP y que los destinos no estén en la lista
nonMasqueradeCIDRs
. De esta manera, cambiaron las fuentes (SNAT) de los paquetes que se envían desde los Pods a direcciones de nodo, que son RFC 1918.
Habilita rangos de direcciones IP externa que se usan de forma privada
Los clústeres de GKE pueden usar de forma privada ciertos rangos de direcciones IP externa, como rangos de direcciones IP de subred internos. Puedes usar cualquier dirección IP externa de forma privada, excepto ciertos rangos restringidos, como se describe en la documentación de la red de VPC.
Los rangos externos de uso privado son rangos de subred. Puedes usarlos de forma exclusiva o junto con otros rangos de subred que usen direcciones privadas. Los nodos, los Pods y los objetos Service continúan usando los rangos de subredes como se describe en Rangos de IP para clústeres nativos de la VPC. Ten en cuenta lo siguiente cuando reutilices direcciones IP externos de forma privada:
Cuando usas un rango de direcciones IP externas como un rango de subred, tu clúster ya no puede comunicarse con los sistemas de Internet que usan ese rango externo; el rango se convierte en un rango de direcciones IP internas en la red de VPC del clúster.
Los rangos de subred, incluso los que utilizan los rangos de direcciones IP externos de forma privada, deben asignarse de forma manual o mediante GKE antes de que se creen los nodos del clúster. No puedes cambiar a direcciones IP externas utilizados de forma privada o dejar de usarlas, a menos que reemplaces el clúster.
De forma predeterminada, GKE implementa SNAT en los nodos para los destinos de IP externa. Si configuraste el CIDR del Pod para usar direcciones IP externas, las reglas de SNAT se aplican al tráfico de Pod a Pod. Para evitar que esto suceda, tienes 2 opciones:
- Crea tu clúster con la marca
--disable-default-snat
. Para obtener más detalles sobre esta marca, consulta Enmascaramiento de IP en GKE. - Configura el configMap
ip-masq-agent
, que se incluye en la listanonMasqueradeCIDRs
, al menos el CIDR del pod, el CIDR de Service y la subred de los nodos.
En el caso de los clústeres estándar, si la versión del clúster es 1.14 o posterior, ambas opciones funcionarán. Si la versión de tu clúster es anterior a la 1.14, solo puedes usar la segunda opción (configurar ip-masq-agent
).
¿Qué sigue?
- Consulta la descripción general de redes de GKE.
- Obtén información sobre el balanceo de cargas interno.
- Obtén información sobre cómo configurar redes autorizadas.
- Obtén información para crear políticas de red de clústeres.