Cambia el aislamiento en los clústeres que usan Private Service Connect


En esta página, se muestra cómo cambiar el aislamiento de red para el plano de control y los nodos del clúster. El cambio del modo de aislamiento de un clúster solo se admite en clústeres que usan Private Service Connect para conectar de forma privada el plano de control y los nodos.

Por qué cambiar el aislamiento del clúster

De forma predeterminada, cuando creas clústeres que usan Private Service Connect, GKE asigna una dirección IP externa (extremo externo) al plano de control. Esto significa que cualquier VM con una dirección IP externa puede acceder al plano de control.

Si configuras redes autorizadas, puedes limitar los rangos de direcciones IP que tengan acceso al plano de control de tu clúster, pero se podrá acceder al plano de control del clúster desde las direcciones IP de Google Cloud. Por ejemplo, cualquier VM con una dirección IP externa asignada en Google Cloud puede acceder a la dirección IP externa del plano de control. Sin embargo, una VM sin las credenciales correspondientes no puede acceder a tus nodos.

Ventajas

El aislamiento de red proporciona los siguientes beneficios:

  • Puedes configurar en el mismo clúster una combinación de nodos públicos y privados. Esto puede reducir los costos de los nodos que no requieren una dirección IP externa para acceder a servicios públicos en Internet.
  • Puedes bloquear el acceso al plano de control desde las direcciones IP de Google Cloud o desde las direcciones IP externas para aislar por completo el plano de control del clúster.

En esta página, se muestra cómo cambiar este comportamiento predeterminado mediante las siguientes acciones:

  • Habilita o inhabilita el acceso al plano de control desde las direcciones IP que son propiedad de Google Cloud. Esta acción evita que cualquier VM con direcciones IP que sea propiedad de Google Cloud llegue a tu plano de control. Para obtener más información, consulta Bloquea el acceso al plano de control desde las direcciones IP de Google Cloud.
  • Habilita o inhabilita el acceso público al extremo externo del plano de control. Esta acción aísla por completo el clúster y el plano de control no es accesible desde ninguna dirección IP pública. Para obtener más información, consulta Aísla el plano de control del clúster.
  • Quita direcciones IP públicas de los nodos. Esta acción aísla por completo tus cargas de trabajo. Para obtener más información, consulta Aisla grupos de nodos.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Kubernetes Engine de Google.
  • Habilitar la API de Kubernetes Engine de Google
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Bloquea el acceso al plano de control desde las VMs de Google Cloud, Cloud Run y Cloud Functions

De forma predeterminada, si creaste un clúster con Private Service Connect predefinido como público, la función de redes autorizadas está inhabilitada de forma predeterminada.

Si creaste un clúster con Private Service Connect predefinido como privado, la función de redes autorizadas está habilitada de forma predeterminada. Para saber qué direcciones IP siempre pueden acceder al plano de control de GKE, consulta Acceso a los extremos del plano de control.

Para quitar el acceso al plano de control de tu clúster de las VMs de Google Cloud, Cloud Run y Cloud Functions usa la CLI de gcloud o la consola de Google Cloud:

gcloud

  1. Actualiza tu clúster para usar la marca --no-enable-google-cloud-access:

    gcloud container clusters update CLUSTER_NAME \
        --no-enable-google-cloud-access
    

    Reemplaza CLUSTER_NAME por el nombre del clúster.

  2. Confirma que se aplica la marca --no-enable-google-cloud-access:

    gcloud container clusters describe CLUSTER_NAME | grep "gcpPublicCidrsAccessEnabled"
    

    El resultado es similar al siguiente:

    gcpPublicCidrsAccessEnabled: false
    

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 el nombre del clúster que deseas modificar.

  3. En Herramientas de redes, en el campo Redes autorizadas del plano de control, haz clic en Editar redes autorizadas del plano de control.

  4. Desmarca la casilla de verificación Permitir el acceso a través de direcciones IP públicas de Google Cloud.

  5. Haz clic en Guardar cambios.

Permite el acceso al plano de control desde las direcciones IP que son propiedad de Google Cloud

Para permitir el acceso desde las direcciones IP públicas que son propiedad de Google Cloud al plano de control del clúster, ejecuta el siguiente comando:

gcloud

gcloud container clusters update CLUSTER_NAME \
    --enable-google-cloud-access

Reemplaza CLUSTER_NAME por el nombre del clúster.

Las direcciones IP que son propiedad de Google Cloud pueden acceder al plano de control del 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. Haz clic en el nombre del clúster que deseas modificar.

  3. En Herramientas de redes, en el campo Redes autorizadas del plano de control, haz clic en Editar redes autorizadas del plano de control.

  4. Marca la casilla de verificación Permitir el acceso a través de direcciones IP públicas de Google Cloud.

  5. Haz clic en Guardar cambios.

Inhabilita el acceso externo al plano de control en clústeres que usan Private Service Connect

Clústeres creados como públicos

De forma predeterminada, cuando creas un clúster público de GKE, GKE asigna una dirección IP externa (extremo externo) al plano de control. Si le indicas a GKE que anule la asignación de este extremo externo, GKE habilita un extremo privado. El acceso a tu plano de control desde direcciones IP externas está inhabilitado, excepto en los servicios de Google Cloud que ejecutan procesos de administración de clústeres. Para obtener más información sobre el extremo privado habilitado y su limitación, consulta Clústeres públicos con Private Service Connect.

Para cambiar el aislamiento del plano de control de un clúster creado como público, usa la CLI de gcloud:

  1. Actualiza tu clúster para usar la marca --enable-private-endpoint:

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-endpoint
    

    Reemplaza CLUSTER_NAME por el nombre del clúster público.

  2. Confirma que se aplica la marca --enable-private-endpoint:

    gcloud container clusters describe CLUSTER_NAME | grep "enablePrivateEndpoint"
    

    El resultado es similar al siguiente:

    enablePrivateEndpoint:true
    

Clústeres creados como privados

De forma predeterminada, cuando creas un clúster privado de GKE, GKE asigna una dirección IP externa (extremo externo) y una dirección IP interna (extremo interno) al plano de control. Puedes anular la asignación de este extremo externo, pero no puedes anular la asignación del extremo interno.

Si le indicas a GKE que anule la asignación del extremo externo, se inhabilita el acceso externo a tu plano de control desde las direcciones IP externas.

Para quitar el extremo externo en un clúster creado como privado, usa la CLI de gcloud o la consola de Google Cloud:

gcloud

  1. Actualiza tu clúster para usar la marca --enable-private-endpoint:

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-endpoint
    

    Reemplaza CLUSTER_NAME por el nombre del clúster público.

  2. Confirma que se aplica la marca --enable-private-endpoint:

    gcloud container clusters describe CLUSTER_NAME | grep "enablePrivateEndpoint"
    

    El resultado es similar al siguiente:

    enablePrivateEndpoint: true
    

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 el nombre del clúster que deseas modificar.

  3. En Conceptos básicos del clúster, en el campo Extremo externo, haz clic en Editar el acceso al plano de control externo.

  4. Desmarca la casilla de verificación Permitir el acceso a través de direcciones IP públicas de Google Cloud.

  5. Haz clic en Guardar cambios.

Habilita el acceso externo al plano de control en clústeres que usan Private Service Connect

Para asignar una dirección IP externa (extremo externo) al plano de control en clústeres creados como públicas o privadas, usa la CLI de gcloud o la consola de Google Cloud:

gcloud

Ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --no-enable-private-endpoint

Reemplaza CLUSTER_NAME por el nombre del clúster público.

Las direcciones IP externas pueden acceder al plano de control de tu 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. Haz clic en el nombre del clúster que deseas modificar.

  3. En Conceptos básicos del clúster, en el campo Extremo externo, haz clic en Editar el acceso al plano de control externo.

  4. Desmarca la casilla de verificación Permitir el acceso al plano de control mediante su dirección IP externa.

  5. Haz clic en Guardar cambios.

Aísla grupos de nodos

Puedes indicarle a GKE que aprovisione los grupos de nodos solo con direcciones IP privadas. Después de actualizar un grupo de nodos públicos al modo privado, pueden fallar las cargas de trabajo que requieren acceso a Internet pública. Antes de cambiar el aislamiento de nodos, consulta las limitaciones de clústeres de Private Service Connect. Puedes editar esta configuración en clústeres creados como públicos o privados:

Autopilot

En los clústeres de Autopilot, agrega un taint en los Pods existentes para que GKE los aprovisione solo en nodos privados:

  1. Para solicitar que GKE programe un Pod en nodos privados, agrega el siguiente nodeSelector a tu especificación de Pods:

     cloud.google.com/private-node=true
    

    GKE vuelve a crear los Pods en los nodos privados. Para evitar la interrupción de la carga de trabajo, migra cada una de ellas de forma independiente y supervisa la migración.

  2. Si usas una VPC compartida, habilita el Acceso privado a Google después de cambiar el modo de aislamiento del clúster. Si usas Cloud NAT, no es necesario que habilites el Acceso privado a Google.

Estándar

gcloud

Para aprovisionar nodos a través de direcciones IP privadas en un grupo de nodos existente, ejecuta el siguiente comando:

  gcloud container node-pools update NODE_POOL_NAME \
      --cluster=CLUSTER_NAME \
      --enable-private-nodes

Reemplaza lo siguiente:

  • NODE_POOL_NAME: es el nombre del grupo de nodos que deseas editar.
  • CLUSTER_NAME: el nombre del clúster de GKE.

    Si usas una VPC compartida, habilita el Acceso privado a Google después de cambiar el modo de aislamiento del clúster. Si usas Cloud NAT, no es necesario que habilites el Acceso privado a Google.

Console

  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.

  3. En la página Clústeres, haz clic en la pestaña Nodos.

  4. En Grupos de nodos, haz clic en el nombre del grupo de nodos.

  5. Haga clic en Editar.

  6. Selecciona la casilla de verificación Habilitar nodos privados.

  7. Haz clic en Guardar.

Revierte el aislamiento del grupo de nodos

En los clústeres Standard, para indicarle a GKE que aprovisione los grupos de nodos con direcciones IP públicas, ejecuta el siguiente comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --no-enable-private-nodes

Reemplaza lo siguiente:

  • NODE_POOL_NAME: es el nombre del grupo de nodos que deseas editar.
  • CLUSTER_NAME: el nombre del clúster de GKE.

Las direcciones IP públicas pueden acceder a los nodos de tu clúster.

Limitaciones

Antes de cambiar el modo de aislamiento del clúster, ten en cuenta las siguientes limitaciones:

  • El cambio del modo de aislamiento no es compatible con clústeres públicos que se ejecutan en redes heredadas.
  • Después de actualizar un grupo de nodos públicos al modo privado, las cargas de trabajo que requieren acceso a Internet pública pueden fallar en las siguientes situaciones:
    • Clústeres en una red de VPC compartida en la que el Acceso privado a Google no está habilitado. Habilita el Acceso privado a Google de forma manual para asegurarte de que GKE descargue la imagen de nodo asignada. Para los clústeres que no están en una red de VPC compartida, GKE habilita de forma automática el Acceso privado a Google.
    • Cargas de trabajo que requieren acceso a Internet en las que Cloud NAT no está habilitado o no se define una solución de NAT personalizada. Para permitir el tráfico de salida a Internet, habilita Cloud NAT o una solución NAT personalizada.

Clústeres de Private Service Connect creados como públicos o privados

Los clústeres que se crearon como públicos y usan Private Service Connect tienen un extremo privado habilitado. En este extremo privado, no se admiten las direcciones IP internas en las URLs de los webhooks nuevos o existentes que configures. Para mitigar esta incompatibilidad, haz lo siguiente:

  1. Configura un webhook con una dirección privada por URL.
  2. Crea un servicio sin interfaz gráfica sin un selector.
  3. Crea un extremo correspondiente para el destino requerido.

Clústeres de Private Service Connect creados como públicos

Solo en los clústeres de Private Service Connect creados como públicos, todas las direcciones IP privadas de la red del clúster siempre pueden alcanzar el extremo privado del clúster. Si deseas obtener más información sobre el acceso al plano de control, consulta Redes autorizadas para el acceso al plano de control.

¿Qué sigue?