Crea un clúster nativo de VPC


En esta página se explica cómo configurar clústeres nativos de VPC en Google Kubernetes Engine (GKE).

Para obtener más información sobre las ventajas y los requisitos de los clústeres nativos de VPC, consulta la descripción general de los clústeres nativos de VPC.

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

Limitaciones

  • No puedes convertir un clúster nativo de VPC en un clúster basado en rutas, ni viceversa.

  • Los clústeres nativos de VPC requieren redes VPC. No se admiten las redes antiguas.

  • Al igual que con cualquier clúster de GKE, las direcciones Service (ClusterIP) solo están disponibles desde el clúster. Si necesitas acceder a un servicio de Kubernetes desde instancias de VM que estén fuera del clúster, pero dentro de la red de VPC y la región del clúster, crea un balanceador de carga de red con paso a través interno.

  • Si usas todas las direcciones IP de los pods de una subred, no podrás sustituir el intervalo de direcciones IP secundarias de la subred sin que el clúster se vuelva inestable. Sin embargo, puedes crear intervalos de direcciones IP de pods adicionales con CIDR de varios pods no contiguos.

Crear un clúster

En esta sección se explica cómo completar las siguientes tareas al crear un clúster:

  • Crea un clúster y una subred simultáneamente.
  • Crea un clúster en una subred.
  • Crea un clúster y selecciona el intervalo de direcciones IP del plano de control.
  • Crea un clúster con redes de pila dual en una subred nueva (disponible en clústeres de Autopilot con la versión 1.25 o posterior, y en clústeres estándar con la versión 1.24 o posterior).
  • Crea un clúster de doble pila y una subred de doble pila simultáneamente (disponible en clústeres de Autopilot con la versión 1.25 o posterior, y en clústeres estándar con la versión 1.24 o posterior).

También puedes crear un clúster y habilitar la gestión automática de direcciones IP en tu clúster (vista previa), lo que significa que GKE crea automáticamente subredes y gestiona las direcciones IP por ti. Para obtener más información, consulta el artículo sobre cómo usar la gestión automática de direcciones IP.

Después de crear el clúster, puedes modificar el acceso al plano de control del clúster. Para obtener más información, consulta Personalizar el aislamiento de la red en GKE.

Crear un clúster y una subred simultáneamente

En las siguientes instrucciones se muestra cómo crear un clúster y una subred de GKE nativos de VPC al mismo tiempo. GKE gestiona el método de asignación de intervalo secundario cuando realizas estos dos pasos con un comando.

Si usas VPC compartida, no puedes crear el clúster y la subred al mismo tiempo. En su lugar, un administrador de redes del proyecto host de VPC compartida debe crear primero la subred. Después, puedes crear el clúster en una subred que ya tengas con el método de asignación de intervalo secundario gestionado por el usuario.

gcloud

Para crear un clúster nativo de VPC y una subred simultáneamente, ejecuta 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

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster de GKE.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.
  • SUBNET_NAME: el nombre de la subred que se va a crear. La región de la subred es la misma que la del clúster (o la región que contiene el clúster zonal). Usa una cadena vacía (name="") si quieres que GKE genere un nombre.
  • NODE_IP_RANGE: un intervalo de direcciones IP en notación CIDR, como 10.5.0.0/20, o el tamaño de la máscara de subred de un bloque CIDR, como /20. Se usa para crear el intervalo de direcciones IP principales de la subred para los nodos. Si se omite, GKE elige un intervalo de IPs disponible en la VPC con un tamaño de /20.
  • POD_IP_RANGE: un intervalo de direcciones IP en notación CIDR, como 10.0.0.0/14, o el tamaño de la máscara de subred de un bloque CIDR, como /14. Se usa para crear el intervalo de direcciones IP secundarias de la subred para los pods. Si se omite, GKE usa un intervalo /14 elegido aleatoriamente que contiene 218 direcciones. El intervalo elegido automáticamente se selecciona de forma aleatoria entre 10.0.0.0/8 (un intervalo de 224 direcciones) y no incluye intervalos de direcciones IP asignados a VMs, rutas ni intervalos asignados a otros clústeres. El intervalo elegido automáticamente puede entrar en conflicto con direcciones IP reservadas, rutas dinámicas o rutas de VPCs emparejadas con este clúster. Si usas alguno de estos elementos, debes especificar --cluster-ipv4-cidr para evitar conflictos.
  • SERVICES_IP_RANGE: un intervalo de direcciones IP en notación CIDR, como 10.4.0.0/19, o el tamaño de la máscara de subred de un bloque CIDR, como /19. Se usa para crear el intervalo de direcciones IP secundarias de la subred para los servicios. Si se omite, GKE usa /20, el tamaño predeterminado del intervalo de direcciones IP de los servicios.

Consola

No puedes crear un clúster y una subred simultáneamente con la consola.Google Cloud En su lugar, primero crea una subred y, a continuación, crea el clúster en una subred que ya tengas.

API

Para crear un clúster nativo de VPC, define un objeto IPAllocationPolicy en el recurso de tu clúster:

{
  "name": CLUSTER_NAME,
  "description": DESCRIPTION,
  ...
  "ipAllocationPolicy": {
    "useIpAliases": true,
    "createSubnetwork": true,
    "subnetworkName": SUBNET_NAME
  },
  ...
}

El campo createSubnetwork crea y aprovisiona automáticamente una subred para el clúster. El campo subnetworkName es opcional. Si se deja vacío, se asigna automáticamente un nombre a la subred.

Después de crear el clúster, puedes modificar el acceso al plano de control del clúster. Para obtener más información, consulta Personalizar el aislamiento de la red en GKE.

Crear un clúster en una subred

En las siguientes instrucciones se muestra cómo crear un clúster de GKE nativo de VPC en una subred con el método de asignación de intervalo secundario que elijas.

gcloud

  • Para usar un método de asignación de intervalo secundario gestionado 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 de intervalo secundario gestionado 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
    

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster de GKE.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.
  • SUBNET_NAME: el nombre de una subred. El intervalo de direcciones IP principal de la subred se usa para los nodos. La subred debe estar en la misma región que la que usa el clúster. Si se omite, GKE intentará usar una subred en la red de VPC default de la región del clúster.
  • Si el método de asignación de intervalo secundario está gestionado por GKE:
    • POD_IP_RANGE: un intervalo de direcciones IP en notación CIDR, como 10.0.0.0/14, o el tamaño de la máscara de subred de un bloque CIDR, como /14. Se usa para crear el intervalo de direcciones IP secundarias de la subred para los pods. Si omite la opción --cluster-ipv4-cidr, GKE elige automáticamente un intervalo /14 (218 direcciones). El intervalo elegido automáticamente se selecciona de forma aleatoria entre 10.0.0.0/8 (un intervalo de 224 direcciones) y no incluirá intervalos de direcciones IP asignados a máquinas virtuales, rutas ni intervalos asignados a otros clústeres. El intervalo elegido automáticamente puede entrar en conflicto con direcciones IP reservadas, rutas dinámicas o rutas de las VPCs que se emparejan con este clúster. Si usas alguna de estas opciones, debes especificar --cluster-ipv4-cidr para evitar conflictos.
    • SERVICES_IP_RANGE: un intervalo de direcciones IP en notación CIDR (por ejemplo, 10.4.0.0/19) o el tamaño de la máscara de subred de un bloque CIDR (por ejemplo, /19). Se usa para crear el intervalo de direcciones IP secundario de la subred para los servicios.
  • Si el método de asignación de intervalo secundario es gestionado por el usuario:
    • SECONDARY_RANGE_PODS: el nombre de un intervalo de direcciones IP secundario que ya exista en el SUBNET_NAME especificado. GKE usa todo el intervalo de direcciones IP secundarias de la subred para los pods del clúster.
    • SECONDARY_RANGE_SERVICES: el nombre de un intervalo de direcciones IP secundarias que ya existe en SUBNET_NAME.

Consola

  1. En la Google Cloud consola, ve a la página Crear un clúster de Autopilot.

    Ir a Crear un clúster de Autopilot

    También puedes completar esta tarea creando un clúster estándar.

  2. En el panel de navegación, ve a Clúster y haz clic en Redes.
  3. En Control Plane Access (Acceso al plano de control), configura el acceso a los endpoints del plano de control.
  4. En la sección Redes del clúster, en la lista desplegable Red, selecciona una VPC.
  5. En la lista desplegable Subred de nodos, selecciona una subred para el clúster.
  6. Asegúrate de que la casilla Habilitar el enrutamiento del tráfico nativo de VPC (usa IP de alias) esté marcada.
  7. Seleccione la casilla Crear automáticamente intervalos secundarios si quiere que GKE gestione el método de asignación de intervalos secundarios. Desmarca esta casilla si ya has creado intervalos secundarios para la subred elegida y quieres que el método de asignación de intervalos secundarios sea gestionado por el usuario.
  8. En el campo Intervalo de direcciones de pods, introduce un intervalo de pods, como 10.0.0.0/14.
  9. En el campo Intervalo de direcciones de servicio, introduce un intervalo de servicio, como 10.4.0.0/19.
  10. Configura el clúster.
  11. Haz clic en Crear.

Terraform

Puedes crear un clúster nativo de VPC con Terraform mediante un módulo de Terraform.

Por ejemplo, puedes añadir el siguiente bloque a tu 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"
}

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto.
  • CLUSTER_NAME: el nombre del clúster de GKE.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster. En el caso de Terraform, la región de Compute Engine.
  • NETWORK_NAME: el nombre de una red.
  • SUBNET_NAME: el nombre de una subred. El intervalo de direcciones IP principal de la subred se usa para los nodos. La subred debe estar en la misma región que la que usa el clúster.
  • SECONDARY_RANGE_PODS: el nombre de un intervalo de direcciones IP secundarias que ya existe en SUBNET_NAME.
  • SECONDARY_RANGE_SERVICES: el nombre de un intervalo de direcciones IP secundarias que ya existe en SUBNET_NAME.

API

Cuando creas un clúster nativo de VPC, defines un objeto IPAllocationPolicy. Puedes hacer referencia a intervalos de direcciones IP secundarias de subredes que ya tengas o especificar bloques CIDR. Hacer referencia a intervalos de direcciones IP secundarias de subredes para crear un clúster cuyo método de asignación de intervalos secundarios sea gestionado por el usuario. Proporciona bloques CIDR si quieres que GKE gestione el método de asignación de intervalos.

{
  "name": CLUSTER_NAME,
  "description": DESCRIPTION,
  ...
  "ipAllocationPolicy": {
    "useIpAliases": true,
    "clusterIpv4CidrBlock"      : string,
    "servicesIpv4CidrBlock"     : string,
    "clusterSecondaryRangeName" : string,
    "servicesSecondaryRangeName": string,

  },
  ...
}

Este comando incluye los siguientes valores:

  • "clusterIpv4CidrBlock": el intervalo CIDR de los pods. Determina el tamaño del intervalo secundario de los pods y puede estar en notación CIDR, como 10.0.0.0/14. Se elige un espacio vacío con el tamaño indicado del espacio disponible en tu VPC. Si se deja en blanco, se buscará un intervalo válido y se creará con un tamaño predeterminado.
  • "servicesIpv4CidrBlock": el intervalo CIDR de los servicios. Consulta la descripción de "clusterIpv4CidrBlock".
  • "clusterSecondaryRangeName": nombre del intervalo secundario de los pods. El intervalo secundario ya debe existir y pertenecer a la subred asociada al clúster.
  • "serviceSecondaryRangeName": el nombre del intervalo secundario de los servicios. El intervalo secundario ya debe existir y pertenecer a la subred asociada al clúster.

Después de crear el clúster, puedes modificar el acceso al plano de control del clúster. Para obtener más información, consulta Personalizar el aislamiento de la red en GKE.

Crear un clúster y seleccionar el intervalo de direcciones IP del plano de control

De forma predeterminada, los clústeres de la versión 1.29 o posterior usan el intervalo de subred principal para aprovisionar la dirección IP interna asignada al endpoint del plano de control. Puedes anular este ajuste predeterminado seleccionando otro intervalo de subred solo durante la creación del clúster.

En las siguientes secciones se muestra cómo crear un clúster y anular el intervalo de subred.

gcloud

gcloud container clusters create CLUSTER_NAME \
    --enable-private-nodes \
    --private-endpoint-subnetwork=SUBNET_NAME \
    --location=COMPUTE_LOCATION

Donde:

  • La marca enable-private-nodes es opcional e indica a GKE que cree el clúster con nodos privados.
  • La marca private-endpoint-subnetwork define el intervalo de direcciones IP del endpoint interno del plano de control. Puedes usar la marca master-ipv4-cidr en lugar de la marca private-endpoint-subnetwork para aprovisionar la dirección IP interna del plano de control. Para elegir la marca que quieres usar, ten en cuenta las siguientes configuraciones:
    • Si creas un clúster con la marca enable-private-nodes, las marcas master-ipv4-cidr y private-endpoint-subnetwork son opcionales.
    • Si usas la marca private-endpoint-subnetwork, GKE aprovisiona el endpoint interno del plano de control con una dirección IP del intervalo que definas.
    • Si usa la marca master-ipv4-cidr, GKE crea una subred a partir de los valores que proporcione. GKE proporciona el endpoint interno del plano de control con una dirección IP de este nuevo intervalo.
    • Si omite las marcas private-endpoint-subnetwork y master-ipv4-cidr, GKE aprovisiona el endpoint interno del plano de control con una dirección IP de la subred secundaria del clúster.

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster de GKE.
  • SUBNET_NAME: el nombre de una subred para proporcionar la dirección IP interna.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.

GKE crea un clúster con Private Service Connect. Después de crear el clúster, puedes modificar el acceso al plano de control del clúster. Para obtener más información, consulta Personalizar el aislamiento de la red en GKE.

Consola

Para asignar una subred al plano de control de un nuevo clúster, primero debes añadir una subred. Sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Crear un clúster de Autopilot.

    Ir a Crear un clúster de Autopilot

    También puedes completar esta tarea creando un clúster estándar.

  2. En la sección Estándar o Autopiloto, haz clic en Configurar.
  3. En Nombre, introduce el nombre del clúster.
  4. En el panel de navegación, ve a Clúster y haz clic en Redes.
  5. En Control Plane Access (Acceso al plano de control), configura el acceso a los endpoints del plano de control.
  6. En la sección Redes del clúster, marca la casilla Anular la subred del endpoint privado predeterminado del plano de control.
  7. En la lista Subred del endpoint privado, selecciona la subred que has creado.
  8. Haz clic en Listo. Añade más redes autorizadas según sea necesario.

Metadatos de proyecto de intervalos de direcciones IP secundarias

Cuando creas o actualizas un clúster de GKE, GKE añade automáticamente entradas de metadatos a nivel de proyecto, como google_compute_project_metadata, para monitorizar el uso de los intervalos de direcciones IP secundarias, incluso en entornos de VPC compartida. Estos metadatos verifican que GKE asigna correctamente las direcciones IP a los pods y los servicios, lo que ayuda a evitar conflictos.

GKE gestiona automáticamente estos metadatos.

Los metadatos tienen el siguiente formato:

key:   gke-REGION-CLUSTER_NAME-GKE_UID-secondary-ranges
value: pods:SHARED_VPC_NETWORK:SHARED_VPC_SUBNETWORK:CLUSTER_PODS_SECONDARY_RANGE_NAME

donde:

  • REGION: la Google Cloud región en la que se encuentra el clúster.

  • CLUSTER_NAME: el nombre del clúster de GKE.

  • GKE_UID: identificador único del clúster de GKE.

  • VPC_NETWORK: el nombre de la red de VPC que usa el clúster.

  • VPC_SUBNETWORK: el nombre de la subred de la red de VPC que usa el clúster.

  • CLUSTER_PODS_SECONDARY_RANGE_NAME: el nombre del intervalo de direcciones IP secundario que se usa para los pods del clúster.

Crear un clúster con redes de pila dual

Puedes crear un clúster con una red de doble pila IPv4/IPv6 en una subred de doble pila nueva o ya creada. Las subredes de doble pila están disponibles en los clústeres de Autopilot con la versión 1.25 o posterior, y en los clústeres estándar con la versión 1.24 o posterior. Las subredes de pila dual no se admiten en los grupos de nodos de Windows Server.

Antes de configurar clústeres de doble pila, te recomendamos que hagas lo siguiente:

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

  1. Para crear una subred de pila dual, 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
    

    Haz los cambios siguientes:

    • SUBNET_NAME: el nombre de la subred que elijas.
    • ACCESS_TYPE: la capacidad de enrutamiento a Internet público. Usa INTERNAL para las direcciones IPv6 internas o EXTERNAL para las direcciones IPv6 externas. Si no se especifica --ipv6-access-type, el tipo de acceso predeterminado es EXTERNAL.
    • NETWORK_NAME: el nombre de la red que contendrá la nueva subred. Esta red debe cumplir las siguientes condiciones:
    • PRIMARY_RANGE: el intervalo de direcciones IP IPv4 principal de la nueva subred, en notación CIDR. Para obtener más información, consulta Intervalos de subredes.
    • COMPUTE_REGION: la región de cálculo del clúster.
  2. Para crear un clúster con una subred de doble pila, usa la consola gcloud CLI o la Google Cloud :

gcloud

  • En los clústeres Autopilot, ejecuta el siguiente comando:

      gcloud container clusters create-auto CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --network=NETWORK_NAME \
          --subnetwork=SUBNET_NAME
    

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del nuevo clúster de Autopilot.
    • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.
    • NETWORK_NAME: el nombre de una red VPC que contiene la subred. Esta red de VPC debe ser una red de VPC en modo personalizado. Para obtener más información, consulta cómo cambiar una red VPC del modo automático al modo personalizado.
    • SUBNET_NAME: el nombre de la subred de doble pila.

      Los clústeres de Autopilot de GKE usan de forma predeterminada un clúster de doble pila cuando se utiliza una subred de doble pila. Una vez creado el clúster, puedes actualizarlo para que solo use IPv4.

  • En 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
    

    Haz los cambios siguientes:

Consola

  1. En la Google Cloud consola, ve a la página Crear un clúster de Autopilot.

    Ir a Crear un clúster de Autopilot

    También puedes completar esta tarea creando un clúster estándar.

  2. En la sección Estándar o Autopiloto, haz clic en Configurar.
  3. Configura el clúster según sea necesario.
  4. En el panel de navegación, ve a Clúster y haz clic en Redes.
  5. En Control Plane Access (Acceso al plano de control), configura el acceso a los endpoints del plano de control.
  6. En la sección Redes de clústeres, en la lista Red, selecciona el nombre de tu red.
  7. En la lista Subred de nodos, selecciona el nombre de tu subred de pila dual.
  8. En el caso de los clústeres estándar, selecciona el botón de radio IPv4 e IPv6 (doble pila). Esta opción solo está disponible si has seleccionado una subred de pila dual.

    Los clústeres de Autopilot usan de forma predeterminada un clúster de doble pila cuando se utiliza una subred de doble pila.

  9. Haz clic en Crear.

Crear un clúster de doble pila y una subred simultáneamente

Puedes crear una subred y un clúster de doble pila simultáneamente. GKE crea una subred IPv6 y le asigna un intervalo principal IPv6 externo.

Si usas VPC compartida, no puedes crear el clúster y la subred al mismo tiempo. En su lugar, un administrador de redes del proyecto host de VPC compartida debe crear primero la subred de doble pila.

  • En 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
    

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del nuevo clúster de Autopilot.
    • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.
    • NETWORK_NAME: el nombre de una red VPC que contiene la subred. Esta red de VPC debe ser una red de VPC en modo personalizado que use direcciones de unicast IPv6 locales únicas (ULA). Para obtener más información, consulta cómo cambiar una red VPC del modo automático al modo personalizado.
    • SUBNET_NAME: el nombre de la nueva subred. GKE puede crear la subred en función de tus políticas de la organización:
      • Si las políticas de tu organización permiten el doble pila y la red está en modo personalizado, GKE crea una subred de doble pila y le asigna un intervalo principal IPv6 externo .
      • Si las políticas de tu organización no permiten el doble pila o si la red está en modo automático, GKE crea una sola subred de pila (IPv4).
  • En 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
    

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del nuevo clúster que elijas.
    • ACCESS_TYPE: la capacidad de enrutamiento a Internet público. Usa INTERNAL para las direcciones IPv6 internas o EXTERNAL para las direcciones IPv6 externas. Si no se especifica --ipv6-access-type, el tipo de acceso predeterminado es EXTERNAL.
    • NETWORK_NAME: el nombre de la red que contendrá la nueva subred. Esta red debe cumplir las siguientes condiciones:
    • SUBNET_NAME: el nombre de la nueva subred que elijas.
    • PRIMARY_RANGE: el intervalo de direcciones IPv4 principal de la nueva subred, en notación CIDR. Para obtener más información, consulta Intervalos de subredes.
    • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.

Actualizar el tipo de pila

Puedes cambiar el tipo de pila de un clúster o actualizar una subred a una subred de doble pila.

Actualizar el tipo de pila en un clúster

Antes de cambiar el tipo de pila de un clúster, ten en cuenta las siguientes limitaciones:

  • Se puede cambiar el tipo de pila en los clústeres de GKE nuevos que ejecuten la versión 1.25 o una posterior. Los clústeres de GKE que se hayan actualizado de la versión 1.24 a la 1.25 o la 1.26 pueden recibir errores de validación al habilitar la red de pila dual. Si se produce algún error, ponte en contacto con el Google Cloud equipo de Asistencia.

  • Cambiar el tipo de pila es una operación disruptiva porque GKE reinicia los componentes del plano de control y de los nodos.

  • GKE respeta las ventanas de mantenimiento que hayas configurado al recrear nodos. Esto significa que el tipo de pila del clúster no estará operativo en el clúster hasta que se produzca la siguiente ventana de mantenimiento. Si no quieres esperar, puedes actualizar manualmente el grupo de nodos definiendo la marca --cluster-version en la misma versión de GKE que ya está ejecutando el plano de control. Debes usar la CLI de gcloud si utilizas esta solución alternativa. Para obtener más información, consulta las advertencias sobre las ventanas de mantenimiento.

  • Si cambias el tipo de pila, no se cambiará automáticamente la familia de IPs de los servicios que ya tengas. Se aplican las siguientes condiciones:

    • Si cambia una sola pila a una de pila dual, los servicios seguirán siendo de una sola pila.
    • Si cambias una pila dual a una pila única, los servicios que tengan direcciones IPv6 pasarán a un estado de error. Elimina el servicio y crea uno con el ipFamilies correcto. Para obtener más información, consulta un ejemplo de cómo configurar un Deployment.

Para actualizar un clúster nativo de VPC, puedes usar la CLI de gcloud o la Google Cloud consola:

gcloud

Ejecuta el siguiente comando:

  gcloud container clusters update CLUSTER_NAME \
      --stack-type=STACK_TYPE \
      --location=COMPUTE_LOCATION

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster que quieras actualizar.
  • STACK_TYPE: el tipo de pila. Sustitúyalo por uno de los siguientes valores:
    • ipv4: para actualizar un clúster de doble pila a un clúster solo IPv4. GKE usa el intervalo de direcciones IPv4 principal de la subred del clúster.
    • ipv4-ipv6: para actualizar un clúster IPv4 a doble pila. Solo puedes cambiar un clúster a pila dual si la subred subyacente admite pila dual. Para obtener más información, consulta Actualizar una subred a una subred de doble pila.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.

Consola

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

    Ir a Google Kubernetes Engine

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

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

  4. En el cuadro de diálogo Editar tipo de pila, selecciona la casilla del tipo de pila de clúster que necesites.

  5. Haz clic en Guardar cambios.

Actualiza una subred a una subred de doble pila (disponible en clústeres de Autopilot con la versión 1.25 o posterior, y en clústeres Estándar con la versión 1.24 o posterior).

Actualizar una subred a una subred de doble pila

Para actualizar una subred a una subred de doble pila, ejecuta el siguiente comando. Al actualizar una subred, no se verán afectados los clústeres IPv4 que ya estén en ella.

gcloud compute networks subnets update SUBNET_NAME \
    --stack-type=ipv4-ipv6 \
    --ipv6-access-type=ACCESS_TYPE \
    --region=COMPUTE_REGION

Haz los cambios siguientes:

  • SUBNET_NAME: el nombre de la subred.
  • ACCESS_TYPE: la capacidad de enrutamiento a Internet público. Usa INTERNAL para las direcciones IPv6 internas o EXTERNAL para las direcciones IPv6 externas. Si no se especifica --ipv6-access-type, el tipo de acceso predeterminado es EXTERNAL.
  • COMPUTE_REGION: la región de cálculo del clúster.

Verificar los intervalos de direcciones IP de tipo de pila, pod y servicio

Una vez que hayas creado un clúster nativo de VPC, podrás verificar sus intervalos de pods y servicios.

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. En cada tipo, puedes ver la siguiente información de la red:

  • Información de la red IPv4:

    • clusterIpv4Cidr es el intervalo secundario de los pods.
    • servicesIpv4Cidr es el intervalo secundario de los servicios.
  • Información de red IPv6 (si un clúster tiene una red de pila dual):

    • ipv6AccessType: la capacidad de enrutamiento a Internet público. INTERNAL para las direcciones IPv6 internas y EXTERNAL para las direcciones IPv6 externas.
    • subnetIpv6CidrBlock: el intervalo de direcciones IPv6 secundario de la nueva subred.
    • servicesIpv6CidrBlock: intervalo de direcciones asignado a los servicios IPv6 del clúster de doble pila.

Consola

Para verificar el clúster, sigue estos pasos:

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

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haga clic en el nombre del clúster que quiera inspeccionar.

Los intervalos secundarios se muestran en la sección Redes:

  • El intervalo de direcciones de pods es el intervalo secundario de los pods.
  • Intervalo de direcciones de servicio es el intervalo secundario de los servicios

Eliminar la agrupación

Para eliminar un clúster, sigue los pasos que se indican en Eliminar un clúster.

GKE intenta limpiar la subred creada cuando se elimina el clúster. Sin embargo, si otros recursos están usando la subred, GKE no la elimina y debes gestionar su ciclo de vida.

Configuración avanzada de direcciones IP internas

En las siguientes secciones se muestra cómo usar intervalos de direcciones IP privadas que no sean RFC 1918 y cómo habilitar intervalos de direcciones IP públicas usadas de forma privada.

Usar intervalos de direcciones IP que no sean RFC 1918

Los clústeres de GKE pueden usar intervalos de direcciones IP que no sean los de RFC 1918 para nodos, pods y servicios. Consulta los intervalos válidos en la documentación de la red de VPC para ver una lista de intervalos privados que no son RFC 1918 y que se pueden usar como direcciones IP internas para intervalos de subredes.

Esta función no está disponible en los grupos de nodos de Windows Server.

Los intervalos privados que no son RFC 1918 son intervalos de subred. Puedes usarlos exclusivamente o junto con intervalos de subred RFC 1918. Los nodos, los pods y los servicios siguen usando los intervalos de subredes tal como se describe en Intervalos de IPs de clústeres nativos de VPC. Si usas intervalos no incluidos en RFC 1918, ten en cuenta lo siguiente:

  • Los intervalos de subred, incluso los que usan intervalos que no son RFC 1918, deben asignarse manualmente o mediante GKE antes de que se creen los nodos del clúster. No puedes cambiar a intervalos de subred que no sean RFC 1918 ni dejar de usarlos para las direcciones IP de los nodos o de los servicios en un clúster que ya tengas, a menos que lo sustituyas. Sin embargo, puedes añadir rangos CIDR de Pod adicionales, incluidos los que no sean RFC 1918, a un clúster nativo de VPC. Para obtener más información sobre cómo añadir intervalos CIDR de pods adicionales, consulta Ampliar los intervalos de direcciones IP de un clúster de GKE.

  • Los balanceadores de carga de red internos de tipo pasarela solo usan direcciones IP del intervalo de direcciones IP principal de la subred. Para crear un balanceador de carga de red de tipo pasarela interno con una dirección que no sea RFC 1918, el intervalo de direcciones IP principal de tu subred debe ser distinto de RFC 1918.

Es posible que los destinos que se encuentren fuera de tu clúster tengan dificultades para recibir tráfico de intervalos privados que no sean RFC 1918. Por ejemplo, los intervalos privados de la RFC 1112 (clase E) se suelen usar como direcciones de multidifusión. Si un destino fuera de tu clúster no puede procesar paquetes cuyas fuentes sean direcciones IP privadas fuera del intervalo RFC 1918, puedes hacer lo siguiente:

  • Usa un intervalo RFC 1918 para el intervalo de direcciones IP principal de la subred. De esta forma, los nodos del clúster usan direcciones RFC 1918.

  • Asegúrate de que tu clúster esté ejecutando el agente de enmascaramiento de IP y de que los destinos no estén en la lista nonMasqueradeCIDRs. De esta forma, los paquetes enviados desde los pods tienen sus orígenes cambiados (SNAT) a direcciones de nodo, que son RFC 1918.

Habilitar intervalos de direcciones IP externas usadas de forma privada

Los clústeres de GKE pueden usar de forma privada determinados intervalos de direcciones IP externas como intervalos de direcciones IP de subred internas. Puedes usar de forma privada cualquier dirección IP externa, excepto determinados intervalos restringidos, tal como se describe en la documentación de la red VPC. Esta función no está disponible en los grupos de nodos de Windows Server.

Tu clúster debe ser un clúster nativo de VPC para poder usar intervalos de direcciones IP externas usadas de forma privada. Los clústeres basados en rutas no se admiten.

Los intervalos externos usados de forma privada son intervalos de subredes. Puedes usarlas exclusivamente o junto con otros intervalos de subred que utilicen direcciones privadas. Los nodos, los pods y los servicios siguen usando los intervalos de subredes tal como se describe en Intervalos de IP de clústeres nativos de VPC. Cuando reutilices direcciones IP externas de forma privada, ten en cuenta lo siguiente:

  • Si usas un intervalo de direcciones IP externas como intervalo de subred, tu clúster ya no podrá comunicarse con los sistemas de Internet que usen ese intervalo externo. El intervalo se convierte en un intervalo de direcciones IP internas en la red VPC del clúster.

  • Los intervalos de subred, incluso los que usan de forma privada intervalos de direcciones IP externas, deben asignarse manualmente o mediante GKE antes de que se creen los nodos del clúster. No puedes cambiar a intervalos de subred que no sean RFC 1918 ni dejar de usarlos para las direcciones IP de nodos o servicios de un clúster que ya exista, a menos que sustituyas el clúster. Sin embargo, puedes añadir rangos de CIDR de Pod adicionales, incluidos los que no sean RFC 1918, a un clúster nativo de VPC. Para obtener más información sobre cómo añadir intervalos CIDR de Pod adicionales, consulta Ampliar los intervalos de direcciones IP de un clúster de GKE.

De forma predeterminada, GKE implementa SNAT en los nodos para los destinos de IP externos. Si has configurado el CIDR de Pod para que use direcciones IP externas, las reglas de SNAT se aplican al tráfico de Pod a Pod. Para evitarlo, tienes dos opciones:

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

Siguientes pasos