Personaliza el aislamiento de red en GKE


En esta página, se explica cómo configurar el aislamiento de red para los clústeres de Google Kubernetes Engine (GKE) cuando creas o actualizas tu clúster.

Práctica recomendada:

Planifica y diseña el aislamiento de red del clúster con los arquitectos de red, los administradores de red o cualquier otro equipo de ingenieros de red de tu organización responsable de definir, implementar y mantener la arquitectura de red.

Cómo funciona el aislamiento de red del clúster

En un clúster de GKE, el aislamiento de red depende de quién puede acceder a los componentes del clúster y cómo. Puedes controlar lo siguiente:

  • Acceso al plano de control: Puedes personalizar el acceso externo, el acceso limitado o el acceso ilimitado al plano de control.
  • Redes del clúster: Puedes elegir quién puede acceder a los nodos de los clústeres estándar o a las cargas de trabajo de los clústeres de Autopilot.

Antes de crear tu clúster, ten en cuenta lo siguiente:

  1. ¿Quién puede acceder al plano de control y cómo se expone?
  2. ¿Cómo se exponen tus nodos o cargas de trabajo?

Para responder estas preguntas, sigue los lineamientos de planificación y diseño que se indican en Acerca del aislamiento de red.

Restricciones y limitaciones

De forma predeterminada, GKE crea tus clústeres como clústeres nativos de la VPC. Los clústeres nativos de la VPC no son compatibles con las redes heredadas.

Expande las siguientes secciones para ver las reglas sobre los rangos de direcciones IP y el tráfico cuando crees un clúster.

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.

Configura el acceso al plano de control

Cuando creas un clúster de GKE en cualquier versión con Google Cloud CLI o en la versión 1.29 y versiones posteriores con la consola, se puede acceder al plano de control a través de las siguientes interfaces:

Extremo basado en DNS

El acceso al plano de control depende de la resolución de DNS del tráfico de origen. Habilita el extremo basado en DNS para obtener los siguientes beneficios:

  • Crea una política de acceso dinámica basada en políticas de IAM.
  • Accede al plano de control desde otras redes de VPC o ubicaciones externas sin necesidad de configurar hosts de bastión ni nodos de proxy.

Para configurar el acceso al extremo basado en DNS, consulta Define el acceso al extremo basado en DNS.

Extremos basados en IP

El acceso a los extremos del plano de control depende de la dirección IP de origen y lo controlan tus redes autorizadas. Puedes administrar el acceso a los extremos basados en IP del plano de control, incluidos los siguientes:

  • Habilita o inhabilita el extremo basado en IP.
  • Habilita o inhabilita el extremo externo para permitir el acceso desde el tráfico externo. El extremo interno siempre está habilitado cuando habilitas los extremos basados en IP del plano de control.
  • Agrega redes autorizadas para permitir o rechazar el acceso desde direcciones IP públicas. Si no configuras redes autorizadas, se puede acceder al plano de control desde cualquier dirección IP externa. Esto incluye direcciones IP públicas o Google Cloud externas sin restricciones.
  • Permite o niega el acceso desde una o todas las direcciones IP privadas del clúster.
  • Permite o niega el acceso desde Google Cloud direcciones IP externas, que son direcciones IP externas asignadas a cualquier VM que use cualquier cliente alojado en Google Cloud.
  • Permitir o denegar el acceso desde direcciones IP de otras Google Cloud regiones

Revisa las limitaciones de usar extremos basados en IP antes de definir el acceso al plano de control.

Crea un clúster y define el acceso al plano de control

Para crear o actualizar un clúster de Autopilot o Standard, usa Google Cloud CLI o la consola de Google Cloud.

Console

Para crear un clúster, completa 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. Haz clic en Crear.

  3. Configura los atributos de tu clúster según las necesidades de tu proyecto.

  4. En el menú de navegación, haz clic en Herramientas de redes.

  5. En Control Plane Access, configura los extremos del plano de control:

    1. Selecciona la casilla de verificación Acceder con DNS para habilitar los extremos basados en DNS del plano de control.
    2. Selecciona la casilla de verificación Acceder con direcciones IPv4 para habilitar los extremos basados en IP del plano de control. Usa la configuración incluida en Define las direcciones IP que pueden acceder al plano de control para personalizar el acceso a los extremos basados en IP.

gcloud

Para los clústeres Autopilot, ejecuta el siguiente comando:

  gcloud container clusters create-auto CLUSTER_NAME \
    --enable-ip-access  \
    --enable-dns-access

Para los clústeres estándar, ejecuta el siguiente comando:

  gcloud container clusters create CLUSTER_NAME \
      --enable-ip-access \
      --enable-dns-access

Reemplaza lo siguiente:

  • CLUSTER_NAME: El nombre de tu clúster.

Ambos comandos incluyen marcas que habilitan lo siguiente:

  • enable-dns-access: Habilita el acceso al plano de control mediante el extremo basado en DNS del plano de control.
  • enable-ip-access: Habilita el acceso al plano de control mediante direcciones IPv4. Omite esta marca si deseas inhabilitar los extremos internos y externos del plano de control.

Usa las marcas que se indican en Define las direcciones IP que pueden acceder al plano de control para personalizar el acceso a los extremos basados en IP.

Define el acceso al extremo basado en DNS

Para administrar la autenticación y la autorización en el extremo basado en DNS, configura el permiso de IAM container.clusters.connect. Para configurar este permiso, asigna los siguientes roles de IAM a tu Google Cloud proyecto:

  • roles/container.developer
  • roles/container.viewer

De manera opcional, puedes administrar la accesibilidad del extremo basado en DNS con las siguientes funciones:

  • Controles del servicio de VPC: El extremo basado en DNS admite los Controles del servicio de VPC para agregar una capa de seguridad a tu acceso al plano de control. Los Controles del servicio de VPC funcionan de manera coherente en todas las Google Cloud APIs.

  • Acceso al extremo basado en DNS desde clientes sin acceso a Internet público: Se puede acceder al extremo basado en DNS a través de las Google Cloud APIs que están disponibles en la Internet pública. Para acceder al extremo basado en DNS desde clientes privados, puedes usar Acceso privado a Google, la puerta de enlace de Cloud NAT o Private Service Connect para las APIs de Google Cloud .

    Cuando usas Private Service Connect para las APIs de Google Cloud , GKE redirecciona las solicitudes de direcciones gke.goog a la dirección IP interna que Private Service Connect para las APIs de Google agregó, no a la dirección IP pública predeterminada de Google. Para configurar Private Service Connect para las Google Cloud APIs, completa los pasos que se indican en Cómo acceder a las APIs de Google a través de extremos.

  • Acceso al extremo basado en DNS desde clientes locales: Los clientes locales pueden acceder al extremo basado en DNS a través del Acceso privado a Google. Para configurar el Acceso privado a Google, completa los pasos que se indican en Cómo configurar el Acceso privado a Google para hosts locales.

Define las direcciones IP que pueden acceder al plano de control

Para definir las direcciones IP que pueden acceder al plano de control, completa los siguientes pasos:

Console

  1. En Acceso al plano de control, selecciona Habilitar redes autorizadas.
  2. Haga clic en Agregar red autorizada.
  3. Ingresa un Nombre para la red.
  4. En Red, ingresa un rango de CIDR para el que desees otorgar acceso al plano de control de tu clúster.
  5. Haz clic en Listo.
  6. Agrega redes autorizadas adicionales si es necesario.
Define las reglas de firewall de direcciones IP del plano de control

Para definir las reglas de firewall de la dirección IP del plano de control, completa los siguientes pasos:

  1. Expande la sección Mostrar reglas de firewall de direcciones IP.
  2. Selecciona la casilla de verificación Acceder con la dirección IP externa del plano de control para permitir el acceso al plano de control desde direcciones IP públicas.

    Práctica recomendada:

    Define redes autorizadas del plano de control para restringir el acceso al plano de control.

  3. Selecciona la casilla de verificación Acceder con la dirección IP interna del plano de control desde cualquier región. Las direcciones IP internas de cualquier región Google Cloudpueden acceder al extremo interno del plano de control.

  4. Selecciona Aplicar de manera forzosa redes autorizadas en el extremo interno del plano de control. Solo las direcciones IP que definiste en la lista Agregar redes autorizadas pueden acceder al extremo interno del plano de control. El extremo interno está habilitado de forma predeterminada.

  5. Selecciona Agregar Google Cloud direcciones IP externas a las redes autorizadas. Todas las direcciones IP públicas de Google Cloud pueden acceder al plano de control.

gcloud

Puedes configurar las direcciones IP que pueden acceder a los extremos internos y externos del plano de control con las siguientes marcas:

  • enable-private-endpoint: Especifica que el acceso al extremo externo está inhabilitado. Omite esta marca si deseas permitir el acceso al plano de control desde direcciones IP externas. En este caso, te recomendamos que controles el acceso al extremo externo con la marca enable-master-authorized-networks.
  • enable-master-authorized-networks: Especifica que el acceso al extremo externo está restringido a los rangos de direcciones IP que autorices.
  • master-authorized-networks: Muestra los valores CIDR de las redes autorizadas. Esta lista está delimitada por comas. Por ejemplo, 8.8.8.8/32,8.8.8.0/24

    Práctica recomendada:

    Usa la marca enable-master-authorized-networks para restringir el acceso al plano de control.

  • enable-authorized-networks-on-private-endpoint: Especifica que el acceso al extremo interno está restringido a los rangos de direcciones IP que autorizas con la marca enable-master-authorized-networks.

  • no-enable-google-cloud-access: Niega el acceso al plano de control desde direcciones IPGoogle Cloud externas.

  • enable-master-global-access: Permite el acceso desde direcciones IP en otras regiones deGoogle Cloud .

    Para continuar configurando la red del clúster, define el aislamiento de nodos o pods a nivel del clúster.

También puedes crear un clúster y definir atributos a nivel del clúster, como la red y la subred del nodo, el tipo de pila de IP y la asignación de direcciones IP. Para obtener más información, consulta Cómo crear un clúster nativo de la VPC.

Modifica el acceso al plano de control

Para cambiar el acceso al plano de control de un clúster, usa la CLI de gcloud o la consola de Google Cloud.

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.

  3. En la pestaña Detalles del clúster, en Herramientas de redes del plano de control, haz clic en .

  4. En el cuadro de diálogo Editar redes del plano de control, modifica el acceso al plano de control según los requisitos de tu caso de uso.

  5. Verifica la configuración del plano de control.

gcloud

Ejecuta el siguiente comando y agrega las marcas que cumplan con tu caso de uso. Puedes usar las siguientes marcas:

  • enable-dns-access: Habilita el acceso al plano de control mediante el extremo basado en DNS del plano de control.
  • enable-ip-access: Habilita el acceso al plano de control mediante direcciones IPv4. Omite esta marca si deseas inhabilitar los extremos internos y externos del plano de control.
  • enable-private-endpoint: Especifica que el acceso al extremo externo está inhabilitado. Omite esta marca si deseas permitir el acceso al plano de control desde direcciones IP externas. En este caso, te recomendamos que controles el acceso al extremo externo con la marca enable-master-authorized-networks.
  • enable-master-authorized-networks: Especifica que el acceso al extremo externo está restringido a los rangos de direcciones IP que autorices.
  • master-authorized-networks: Muestra los valores CIDR de las redes autorizadas. Esta lista está delimitada por comas. Por ejemplo, 8.8.8.8/32,8.8.8.0/24

    Práctica recomendada:

    Usa la marca enable-master-authorized-networks para restringir el acceso al plano de control.

  • enable-authorized-networks-on-private-endpoint: Especifica que el acceso al extremo interno está restringido a los rangos de direcciones IP que autorizas con la marca enable-master-authorized-networks.

  • no-enable-google-cloud-access: Niega el acceso al plano de control desde direcciones IPGoogle Cloud externas.

  • enable-master-global-access: Permite el acceso desde direcciones IP en otras regiones deGoogle Cloud .

    gcloud container clusters update CLUSTER_NAME
    

    Reemplaza CLUSTER_NAME por el nombre del clúster.

Verifica la configuración del plano de control

Puedes ver los extremos de tu clúster con la CLI de gcloud o la console de Google Cloud.

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.

  3. En la pestaña Detalles del clúster, en Plano de control, puedes verificar las siguientes características de los extremos del plano de control:

    • El extremo DNS incluye el nombre del extremo basado en DNS de tu clúster, si habilitaste este extremo.
    • El acceso al plano de control con direcciones IPv4 incluye el estado del extremo basado en IP. Si está habilitado, puedes ver la información de los extremos públicos y privados.
    • Accede con la dirección IP interna del plano de control desde cualquier región muestra el estado como Habilitado cuando las direcciones IP de Google de otras regiones pueden acceder al plano de control.
    • En Redes autorizadas, se muestra la lista de CIDR que pueden acceder al plano de control si habilitaste las redes autorizadas.
    • Aplicar de manera forzosa redes autorizadas en el extremo interno del plano de control muestra el estado Habilitado si solo los CIDR del campo Redes autorizadas pueden acceder al extremo interno.
    • Agregar Google Cloud direcciones IP externas a las redes autorizadas muestra el estado Habilitado si las direcciones IP externas de Google Cloudpueden acceder al plano de control.

Para modificar cualquier atributo, haz clic en Control plane access using IPv4 addresses y ajusta según tu caso de uso.

gcloud

Para verificar la configuración del plano de control, ejecuta el siguiente comando:

gcloud container clusters describe CLUSTER_NAME

El resultado tiene un bloque controlPlaneEndpointsConfig que describe la definición de la red. Puedes ver un resultado similar al siguiente:

controlPlaneEndpointsConfig:
dnsEndpointConfig:
  allowExternalTraffic: true
  endpoint: gke-dc6d549babec45f49a431dc9ca926da159ca-518563762004.us-central1-c.autopush.gke.goog
ipEndpointsConfig:
  authorizedNetworksConfig:
    cidrBlocks:
    - cidrBlock: 8.8.8.8/32
    - cidrBlock: 8.8.8.0/24
    enabled: true
    gcpPublicCidrsAccessEnabled: false
    privateEndpointEnforcementEnabled: true
  enablePublicEndpoint: false
  enabled: true
  globalAccess: true
  privateEndpoint: 10.128.0.13

En este ejemplo, el clúster tiene la siguiente configuración:

  • Se habilitan los extremos basados en DNS y en direcciones IP.
  • Las redes autorizadas están habilitadas y se definen los rangos de CIDR. Estas redes autorizadas se aplican para la dirección IP interna.
  • Se deniega el acceso al plano de control desde Google Cloud direcciones IP externas.

Ejemplos de configuración de acceso al plano de control

En esta sección, se detalla la configuración de los siguientes ejemplos de aislamiento de red. Evalúa estos ejemplos en cuanto a su similitud con tu caso de uso:

  • Ejemplo 1: Se puede acceder al plano de control desde ciertas direcciones IP que definas. Estas pueden incluir direcciones IP de otras Google Cloud regiones o direcciones IP reservadas por Google.
  • Ejemplo 2: Ninguna dirección IP externa puede acceder al plano de control.
Ejemplo 1: Se puede acceder al plano de control desde ciertas direcciones IP

En esta sección, crearás un clúster con las siguientes configuraciones de aislamiento de red:

  • El plano de control tiene habilitado el extremo basado en DNS.
  • El plano de control tiene habilitado el extremo externo, además del extremo interno habilitado de forma predeterminada.
  • El plano de control tiene redes autorizadas definidas, lo que permite que solo las siguientes redes autorizadas accedan al plano de control:

Para crear este clúster, usa Google Cloud CLI o la consola de Google Cloud.

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. Configura tu clúster para que se adapte a tus requisitos.

  4. En el menú de navegación, haz clic en Herramientas de redes.

  5. En Control Plane Access, configura los extremos del plano de control:

    1. Selecciona la casilla de verificación Acceso mediante DNS.
    2. Selecciona la casilla de verificación Acceder con direcciones IPv4.
  6. Selecciona Habilitar redes autorizadas.

  7. Haga clic en Agregar red autorizada.

  8. Ingresa un Nombre para la red.

  9. En Red, ingresa un rango de CIDR para el que desees otorgar acceso al plano de control de tu clúster.

  10. Haz clic en Listo.

  11. Agrega redes autorizadas adicionales si es necesario.

  12. Expande la sección Mostrar reglas de firewall de direcciones IP.

  13. Selecciona Acceder con la dirección IP interna del plano de control desde cualquier región. Las direcciones IP internas de cualquier Google Cloud región pueden acceder al plano de control a través de la dirección IP interna.

  14. Selecciona Agregar Google Cloud direcciones IP externas a las redes autorizadas. Todas las direcciones IP externas de Google Cloud pueden acceder al plano de control.

Para continuar configurando la red del clúster, define el aislamiento de nodos o pods a nivel del clúster.

gcloud

Ejecuta el siguiente comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-master-authorized-networks \
    --enable-master-global-access \
    --master-authorized-networks CIDR1,CIDR2,...

Reemplaza lo siguiente:

  • CLUSTER_NAME: el nombre del clúster de GKE.
  • CIDR1,CIDR2,...: Es una lista delimitada por comas de los valores CIDR para las redes autorizadas. Por ejemplo, 8.8.8.8/32,8.8.8.0/24
Ejemplo 2: Se puede acceder al plano de control desde direcciones IP internas

En esta sección, crearás un clúster con las siguientes configuraciones de aislamiento de red:

  • El plano de control tiene habilitado el extremo basado en DNS.
  • El plano de control tiene inhabilitado el extremo externo.
  • El plano de control tiene habilitadas las redes autorizadas.
  • Se permite todo acceso al plano de control a través de la dirección IP interna desde cualquier región deGoogle Cloud .
  • Las Google Cloud direcciones IP externas no tienen acceso a tu clúster.

Puedes crear este clúster con Google Cloud CLI o la consola de Google Cloud.

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. Configura tu clúster para que se adapte a tus requisitos.

  4. En el menú de navegación, haz clic en Herramientas de redes.

  5. En Control Plane Access, configura los extremos del plano de control:

    1. Selecciona la casilla de verificación Acceso mediante DNS.
    2. Selecciona la casilla de verificación Acceder con direcciones IPv4.
  6. Expande la sección Mostrar reglas de firewall de direcciones IP.

  7. Anula la selección de Acceder con la dirección IP externa del plano de control. Ninguna dirección IP externa puede acceder al plano de control.

  8. En Acceso al plano de control, selecciona Habilitar redes autorizadas.

  9. Selecciona la casilla de verificación Acceder con la dirección IP interna del plano de control desde cualquier región. Las direcciones IP internas de cualquier Google Cloud región pueden acceder al plano de control a través de la dirección IP interna.

Para continuar con la configuración de red del clúster, define el aislamiento de nodos o pods a nivel del clúster.

gcloud

Ejecuta el siguiente comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-private-endpoint \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,... \
    --no-enable-google-cloud-access \
    --enable-master-global-access

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster.
  • CIDR1,CIDR2,...: Es una lista delimitada por comas de los valores CIDR para las redes autorizadas. Por ejemplo, 8.8.8.8/32,8.8.8.0/24

Configura las herramientas de redes del clúster

En esta sección, configurarás tu clúster para que tenga nodos con acceso interno (privado) o externo (público). GKE te permite combinar la configuración de red del nodo según el tipo de clúster que uses:

  • Clúster estándar: Puedes crear o actualizar tus grupos de nodos para aprovisionar nodos públicos o privados en el mismo clúster. Por ejemplo, si creas un grupo de nodos con nodos privados, GKE aprovisiona sus nodos solo con direcciones IP internas. GKE no modifica los grupos de nodos existentes. También puedes definir la configuración de red predeterminada a nivel del clúster. GKE aplica esta configuración de red predeterminada solo cuando los grupos de nodos nuevos no tienen ninguna configuración de red definida.
  • Clústeres de Autopilot: Puedes crear o actualizar tu clúster para definir la configuración de red predeterminada para todas tus cargas de trabajo. GKE programa cargas de trabajo nuevas y existentes en nodos públicos o privados según tu configuración. También puedes definir de forma explícita la configuración de red del clúster de una carga de trabajo individual.

Configura tu clúster

En esta sección, configura las herramientas de redes del clúster a nivel del clúster. GKE considera esta configuración cuando tu grupo de nodos o carga de trabajo no tiene esta configuración definida.

Para definir la configuración a nivel del clúster, usa Google Cloud CLI o la console de Google Cloud.

Console

Crea un clúster

  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. Configura tu clúster para que se adapte a tus requisitos.

  4. En el menú de navegación, haz clic en Herramientas de redes.

  5. En la sección Herramientas de redes de clústeres, completa lo siguiente según tu caso de uso:

    1. Selecciona Habilitar nodos privados para aprovisionar nodos solo con direcciones IP internas (nodos privados) que impidan que los clientes externos accedan a los nodos. Puedes cambiar esta configuración en cualquier momento.
    2. Anula la selección de Habilitar nodos privados para aprovisionar nodos solo con direcciones IP externas (públicas), lo que permite que los clientes externos accedan a los nodos.
  6. En la sección Opciones avanzadas de redes, configura atributos nativos de la VPC adicionales. Para obtener más información, consulta Cómo crear un clúster nativo de la VPC.

  7. Haz clic en Crear.

Actualiza un clúster existente

  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.

  3. En Nodos privados, en la pestaña Configuración predeterminada del nuevo grupo de nodos, haz clic en Editar nodos privados.

  4. En el cuadro de diálogo Editar nodos privados, haz lo siguiente:

    1. Selecciona Habilitar nodos privados para aprovisionar nodos solo con direcciones IP internas (nodos privados) que impidan que los clientes externos accedan a los nodos. Puedes cambiar esta configuración en cualquier momento.
    2. Anula la selección de Habilitar nodos privados para aprovisionar nodos solo con direcciones IP externas (públicas), lo que permite que los clientes externos accedan a los nodos.
  5. Haz clic en Guardar cambios.

gcloud

Usa cualquiera de las siguientes marcas para definir la red del clúster:

  • enable-private-nodes: Para aprovisionar nodos con solo direcciones IP internas (nodos privados). Ten en cuenta las siguientes condiciones cuando uses esta marca:
    • La marca enable-ip-alias es obligatoria cuando se usa enable-private-nodes.
    • La marca master-ipv4-cidr es opcional para crear subredes privadas. Si usas esta marca, GKE crea una subred nueva que usa los valores que definiste en master-ipv4-cidr y la usa para aprovisionar la dirección IP interna del plano de control.
  • no-enable-private-nodes: Para aprovisionar nodos con solo direcciones IP externales (nodos públicos).

En los clústeres de Autopilot, crea o actualiza el clúster con la marca enable-private-nodes.

  • Para crear un clúster, usa el siguiente comando:

    gcloud container clusters create-auto CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Para actualizar un clúster, usa el siguiente comando.

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    La actualización del clúster se aplica solo después de que se reprogramen todos los grupos de nodos. Este proceso puede tardar varias horas.

En los clústeres estándar, crea o actualiza el clúster con la marca enable-private-nodes.

  • Para crear un clúster, usa el siguiente comando:

    gcloud container clusters create CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Para actualizar un clúster, usa el siguiente comando:

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    La actualización del clúster solo se aplica a los grupos de nodos nuevos. GKE no actualiza esta configuración en los grupos de nodos existentes.

La configuración de red en el grupo de nodos o en el nivel de la carga de trabajo anula la configuración del clúster.

Configura tus grupos de nodos o cargas de trabajo

Para configurar nodos privados o públicos a nivel de la carga de trabajo para clústeres de Autopilot o grupos de nodos para clústeres estándar, usa Google Cloud CLI o la consola de Google Cloud. Si no defines la configuración de red a nivel de la carga de trabajo o del grupo de nodos, GKE aplica la configuración predeterminada a nivel del clúster.

Console

En los clústeres estándar, completa 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 página de detalles del clúster, haz clic en el nombre del clúster que deseas modificar.

  3. Haz clic en Agregar grupo de nodos.

  4. Configura la casilla de verificación Habilitar nodos privados según tu caso de uso:

    1. Selecciona Habilitar nodos privados para aprovisionar nodos solo con direcciones IP internas (nodos privados).
    2. Anula la selección de Habilitar nodos privados para aprovisionar nodos solo con direcciones IP externas (públicas), lo que permite que los clientes externos accedan a los nodos. Puedes cambiar esta configuración en cualquier momento.
  5. Configura tu grupo de nodos nuevo.

  6. Haz clic en Crear.

Si quieres obtener más información sobre la administración de grupos de nodos, consulta Cómo agregar y administrar grupos de nodos.

gcloud

  • En los clústeres de Autopilot, 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
    

    Usa private-node=true en el nodeSelector del Pod para programar un Pod en nodos con solo direcciones IP internas (nodos privados).

    GKE vuelve a crear tus Pods en nodos privados o públicos, según tu configuración. Para evitar interrupciones en la carga de trabajo, migra cada carga de trabajo de forma independiente y supervisa la migración.

  • En los clústeres Standard, 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 \
        --enable-ip-alias
    

    Reemplaza lo siguiente:

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

    Usa cualquiera de las siguientes marcas para definir la configuración de redes del grupo de nodos:

    • enable-private-nodes: Para aprovisionar nodos con solo direcciones IP internas (nodos privados).
    • no-enable-private-nodes: Para aprovisionar nodos con solo direcciones IP externales (nodos públicos).

Configuración avanzada

En las siguientes secciones, se describen las configuraciones avanzadas que puedes usar cuando configures el aislamiento de red de tu clúster.

Usa Cloud Shell para acceder a un clúster con el extremo externo inhabilitado

Si el extremo externo del plano de control de tu clúster está inhabilitado, no podrás acceder al plano de control de GKE con Cloud Shell. Si deseas usar Cloud Shell para acceder a tu clúster, te recomendamos que habilites el extremo basado en DNS.

Para verificar el acceso a tu clúster, completa los siguientes pasos:

  1. Si habilitaste el extremo basado en DNS, ejecuta el siguiente comando para obtener credenciales para tu clúster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --dns-endpoint
    

    Si habilitaste el extremo basado en IP, ejecuta el siguiente comando para obtener credenciales para tu clúster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --project=PROJECT_ID \
        --internal-ip
    

    Reemplaza PROJECT_ID con el ID del proyecto.

  2. Usa kubectl en Cloud Shell para acceder al clúster:

    kubectl get nodes
    

    El resultado es similar a este:

    NAME                                               STATUS   ROLES    AGE    VERSION
    gke-cluster-1-default-pool-7d914212-18jv   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-3d9p   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-wgqf   Ready    <none>   104m   v1.21.5-gke.1302
    

El comando get-credentials usa automáticamente el extremo basado en DNS si el acceso al extremo basado en IP está inhabilitado.

Agrega reglas de firewall para casos de uso específicos

En esta sección, se explica cómo agregar una regla de firewall a un clúster. De forma predeterminada, las reglas de firewall restringen el plano de control del clúster para iniciar solo conexiones TCP a los nodos y Pods en los puertos 443 (HTTPS) y 10250 (kubelet). Para algunas características de Kubernetes, es posible que debas agregar reglas de firewall a fin de permitir el acceso a puertos adicionales. No crees reglas de firewall ni reglas de política de firewall jerárquicas que tengan una prioridad más alta que las reglas de firewall creadas de forma automática.

Entre las funciones de Kubernetes que requieren reglas de firewall adicionales, se incluyen las siguientes:

Agregar una regla de firewall permite el tráfico del plano de control del clúster a todos los siguientes puertos:

  • El puerto especificado de cada nodo (hostPort)
  • El puerto especificado de cada pod que se ejecuta en estos nodos.
  • El puerto especificado de cada servicio que se ejecuta en estos nodos

Para obtener más información, consulta Reglas de firewall en la documentación de Cloud Load Balancing.

Si deseas agregar una regla de firewall a un clúster, debes registrar el bloque CIDR del plano de control del clúster y el destino que se usó. Después de grabar esto, puedes crear la regla.

Visualiza el bloque CIDR del plano de control

El bloque CIDR del plano de control del clúster es necesario para agregar una regla de firewall.

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.

En la pestaña Detalles, en Herramientas de redes, anota el valor en el campo Rango de direcciones del plano de control.

gcloud

Ejecuta el siguiente comando:

gcloud container clusters describe CLUSTER_NAME

Reemplaza CLUSTER_NAME por el nombre de tu clúster.

En el resultado del comando, anota el valor en el campo masterIpv4CidrBlock.

Visualiza las reglas de firewall existentes

Debes especificar el destino (en este caso, los nodos de destino) que usan las reglas de firewall existentes del clúster.

Console

  1. Ve a la página de políticas de firewall en la consola de Google Cloud.

    Ir a Políticas de firewall

  2. En Tabla de filtro, en Reglas de firewall de VPC, ingresa gke-CLUSTER_NAME.

En los resultados, anota el valor en el campo Destinos.

gcloud

Ejecuta el siguiente comando:

gcloud compute firewall-rules list \
    --filter 'name~^gke-CLUSTER_NAME' \
    --format 'table(
        name,
        network,
        direction,
        sourceRanges.list():label=SRC_RANGES,
        allowed[].map().firewall_rule().list():label=ALLOW,
        targetTags.list():label=TARGET_TAGS
    )'

En el resultado del comando, anota el valor en el campo Destinos.

Para ver las reglas de firewall de una VPC compartida, agrega la marca --project HOST_PROJECT_ID al comando.

Agrega una regla de firewall

Console

  1. Ve a la página de políticas de firewall en la consola de Google Cloud.

    Ir a Políticas de firewall

  2. Haga clic en Crear regla de firewall.

  3. En Nombre, ingresa el nombre de la regla de firewall.

  4. En la lista Red, selecciona la red que corresponda.

  5. En Dirección del tráfico, haz clic en Ingress.

  6. En Acción en caso de coincidencia, haz clic en Permitir.

  7. En la lista Destinos, selecciona Etiquetas de destino especificadas.

  8. En Etiquetas de destino, ingresa el valor de destino que anotaste antes.

  9. En la lista Filtro de fuente, selecciona Rangos de IPv4.

  10. En Rangos de IPv4 de origen, ingresa el bloque CIDR del plano de control del clúster.

  11. En Protocolos y puertos, haz clic en Protocolos y puertos especificados, selecciona la casilla de verificación para el protocolo relevante (tcp oudp ) y, luego, ingresa el número de puerto en el campo del protocolo.

  12. Haz clic en Crear.

gcloud

Ejecuta el siguiente comando:

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --action ALLOW \
    --direction INGRESS \
    --source-ranges CONTROL_PLANE_RANGE \
    --rules PROTOCOL:PORT \
    --target-tags TARGET

Reemplaza lo siguiente:

  • FIREWALL_RULE_NAME: Es el nombre que elegiste para la regla de firewall.
  • CONTROL_PLANE_RANGE: Es el rango de direcciones IP del plano de control del clúster (masterIpv4CidrBlock) que obtuviste en el paso anterior.
  • PROTOCOL:PORT: Es el puerto y su protocolo, tcp o udp.
  • TARGET: Es el valor de destino (Targets) que recopilaste antes.

Para agregar una regla de firewall a una VPC compartida, agrega las siguientes marcas al comando:

--project HOST_PROJECT_ID
--network NETWORK_ID

Otorga acceso a Internet saliente a los nodos privados

Si deseas proporcionar acceso a Internet saliente a los nodos privados, como para extraer imágenes de un registro externo, usa Cloud NAT para crear y configurar un Cloud Router. Cloud NAT permite que los nodos privados establezcan conexiones salientes a través de Internet para enviar y recibir paquetes.

El Cloud Router permite que todos los nodos de la región usen Cloud NAT para todos los rangos de IP de alias y principales. También asigna de forma automática las direcciones IP externas de la puerta de enlace NAT.

Para obtener instrucciones sobre cómo crear y configurar un Cloud Router, consulta Crea una configuración de Cloud NAT con Cloud Router en la documentación de Cloud NAT.

Implementa una aplicación de contenedor de Windows Server

Para obtener información sobre cómo implementar una aplicación de contenedor de Windows Server en un clúster con nodos privados, consulta la documentación del grupo de nodos de Windows.

¿Qué sigue?