Crea un clúster nativo de la VPC


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

  • No puedes convertir un clúster nativo de la VPC en un clúster basado en rutas, y no puedes convertir un clúster basado en rutas en un clúster nativo de la VPC.
  • 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, como 10.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, como 10.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 de 10.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, como 10.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 VPC default 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, como 10.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 de 10.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 el SUBNET_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

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

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear y, luego, en la sección Standard o Autopilot, haz clic en Configurar.

  3. En el panel de navegación, en Clúster, haz clic en Herramientas de redes.

  4. En la lista desplegable Red, selecciona una VPC.

  5. En la lista desplegable Subred del nodo, selecciona una subred para el clúster.

  6. Asegúrate de que la casilla de verificación Habilitar enrutamiento de tráfico nativo de la VPC (con alias de IP) esté seleccionada.

  7. 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.

  8. En el campo Rango de direcciones de pods, ingresa un rango de pods, como 10.0.0.0/14.

  9. En el campo Rango de direcciones del servicio, ingresa un rango del servicio, como 10.4.0.0/19.

  10. Configura tu clúster.

  11. 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 proyecto
  • CLUSTER_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, como 10.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 marca private-endpoint-subnetwork, pero usas master-ipv4-cidr, GKE crea una nueva subred que usa los valores que definiste en master-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:

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

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. En la sección Standard o Autopilot, haz clic en Configurar.

  4. En Nombre, ingresa el nombre de tu clúster.

  5. Para los clústeres estándar, en el panel de navegación, en Clúster, haz clic en Herramientas de redes.

  6. En la sección Acceso a la red IPv4, haz lo siguiente:

    1. Para crear un clúster de GKE como público, selecciona Clúster público.
    2. 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.

  7. 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.

  8. En la lista Subred del extremo privado, selecciona la subred que creaste.

  9. 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. La subred de pila doble no es compatible con los grupos de nodos de Windows Server.

Antes de configurar clústeres de pila doble, te recomendamos que completes las siguientes acciones:

En esta sección, primero crearás una subred de pila doble y la usarás para crear un clúster.

  1. 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. Usa INTERNAL para clústeres privados y EXTERNAL para clústeres públicos. Si no se especifica --ipv6-access-type, el tipo de acceso predeterminado es EXTERNAL.
    • NETWORK_NAME: El nombre de la red que contendrá la subred nueva. Esta red debe cumplir con los siguientes requisitos:
    • 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.
  2. 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:

Console

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

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. En la sección Standard o Autopilot, haz clic en Configurar.

  4. Configura tu clúster según sea necesario.

  5. En el panel de navegación, en Clúster, haz clic en Herramientas de redes.

  6. En la lista Red, selecciona el nombre de tu red.

  7. En la lista Subred del nodo, selecciona el nombre de tu subred de pila doble.

  8. 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.

  9. 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. Usa INTERNAL para clústeres privados y EXTERNAL para clústeres públicos. Si no se especifica --ipv6-access-type, el tipo de acceso predeterminado es EXTERNAL.
    • NETWORK_NAME: El nombre de la red que contendrá la subred nueva. Esta red debe cumplir con los siguientes requisitos:
    • 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

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

    Ir a Google Kubernetes Engine

  2. Junto al clúster que deseas editar, haz clic en  Acciones y, luego, en  Editar.

  3. En la sección Herramientas de redes, junto a Tipo de pila, haz clic en Editar.

  4. 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.

  5. 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. Usa INTERNAL para clústeres privados y EXTERNAL para clústeres públicos. Si no se especifica --ipv6-access-type, el tipo de acceso predeterminado es EXTERNAL.
  • 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 y EXTERNAL 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:

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

    Ir a Google Kubernetes Engine

  2. 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.

Esta característica no es compatible con los grupos de nodos de Windows Server.

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. Esta función no es compatible con los grupos de nodos de Windows Server.

Tu clúster debe ser un clúster nativo de la VPC para usar rangos de direcciones IP externos utilizados de forma privada. No se admiten clústeres basados en rutas.

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:

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?