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. Cambiar el modo de aislamiento de un clúster solo es compatible con los 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 llegar 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 llegar a la dirección IP externa de tu 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 privados y públicos. 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 direcciones IP de Google Cloud o desde 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:

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.

Bloquea el acceso al plano de control desde las VMs de Google Cloud, Cloud Run y Cloud Run 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.

Si creaste un clúster con Private Service Connect predefinido como privado, la función de redes autorizadas está habilitada de forma predeterminada. Para obtener información sobre las direcciones IP que 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 Run 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 aplique 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 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 de Google Cloud 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 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 los 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 desde 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 sus limitaciones, 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 gcloud CLI:

  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 aplique 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 direcciones IP externas.

Para quitar el extremo externo de un clúster creado como privado, usa la gcloud CLI 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 aplique 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 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 los 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úblicos o privados, usa la gcloud CLI 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 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 grupos de nodos solo con direcciones IP privadas. Después de actualizar un grupo de nodos público al modo privado, es posible que las cargas de trabajo que requieran acceso a Internet público fallen. Antes de cambiar el aislamiento de los nodos, consulta las limitaciones de los clústeres de Private Service Connect. Puedes editar este parámetro de configuración en los clústeres que se crearon como públicos o privados:

Autopilot

En los clústeres de Autopilot, agrega un taint a 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 Pod:

     cloud.google.com/private-node=true
    

    GKE vuelve a crear tus Pods en nodos privados. Para evitar la interrupción de la carga de trabajo, migra cada carga de trabajo 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 quieres 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. Haz clic en Editar.

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

  7. Haz clic en Guardar.

Cómo revertir 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 quieres 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:

  • Después de actualizar un grupo de nodos público al modo privado, es posible que las cargas de trabajo que requieran acceso a Internet público fallen en las siguientes situaciones:
    • Clústeres en una red de VPC compartida en la que no está habilitado el Acceso privado a Google Habilita el Acceso privado a Google de forma manual para asegurarte de que GKE descargue la imagen del nodo asignada. En el caso de los clústeres que no están en una red de VPC compartida, GKE habilita automáticamente 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 habilitado un extremo privado. 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. Para obtener más información sobre el acceso al plano de control, consulta Redes autorizadas para el acceso al plano de control.

¿Qué sigue?