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:
- Habilita o inhabilita el acceso al plano de control desde direcciones IP que son propiedad de Google Cloud. Esta acción evita que cualquier VM con una dirección IP que pertenece a Google Cloud acceda a tu plano de control. Para obtener más información, consulta Cómo bloquear el acceso al plano de control desde direcciones IP que pertenecen a Google Cloud.
- Habilita o inhabilita el acceso público al extremo externo del plano de control. Esta acción aísla por completo tu clúster y no se puede acceder al plano de control desde ninguna dirección IP pública. Para obtener más información, consulta Cómo aislar 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 Cómo aislar grupos de nodos.
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.
- Revisa las limitaciones de Private Service Connect.
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
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.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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en el nombre del clúster que deseas modificar.
En Herramientas de redes, en el campo Redes autorizadas del plano de control, haz clic en edit Editar redes autorizadas del plano de control.
Desmarca la casilla de verificación Permitir el acceso a través de direcciones IP públicas de Google Cloud.
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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en el nombre del clúster que deseas modificar.
En Herramientas de redes, en el campo Redes autorizadas del plano de control, haz clic en edit Editar redes autorizadas del plano de control.
Marca la casilla de verificación Permitir el acceso a través de direcciones IP públicas de Google Cloud.
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:
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.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
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.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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en el nombre del clúster que deseas modificar.
En Conceptos básicos del clúster, en el campo Extremo externo, haz clic en edit Editar acceso al plano de control externo.
Desmarca la casilla de verificación Permitir el acceso a través de direcciones IP públicas de Google Cloud.
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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en el nombre del clúster que deseas modificar.
En Conceptos básicos del clúster, en el campo Extremo externo, haz clic en edit Editar acceso al plano de control externo.
Desmarca la casilla de verificación Permitir el acceso al plano de control mediante su dirección IP externa.
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:
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.
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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster.
En la página Clústeres, haz clic en la pestaña Nodos.
En Grupos de nodos, haz clic en el nombre del grupo de nodos.
Haz clic en Editar.
Selecciona la casilla de verificación Habilitar nodos privados.
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:
- Solo puedes cambiar el modo de aislamiento para los clústeres que usan Private Service Connect.
- 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:
- Configura un webhook con una dirección privada por URL.
- Crea un servicio sin interfaz gráfica sin un selector.
- 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.