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 la red de tu clúster con los arquitectos de red, los administradores de red o cualquier otro equipo de ingenieros de red de tu organización que sea responsable de definir, implementar y mantener la arquitectura de red.

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

En un clúster de GKE, el aislamiento de la 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 sin restricciones al plano de control.
  • Redes de clústeres: Puedes elegir quién puede acceder a los nodos en los clústeres de Standard o a las cargas de trabajo en 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 la 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.

Rangos secundarios de Pod a nivel del grupo de nodos: Cuando creas un clúster de GKE, si especificas un rango secundario de Pod más pequeño que /24 por grupo de nodos con la IU, es posible que encuentres el siguiente error:

Getting Pod secondary range 'pod' must have a CIDR block larger or equal to /24

GKE no admite la especificación de un rango menor que /24 a nivel del grupo de nodos. Sin embargo, se admite especificar un rango más pequeño a nivel del clúster. Esto se puede hacer con Google Cloud CLI y el argumento --cluster-ipv4-cidr. Para obtener más información, consulta Crea un clúster con un rango de CIDR específico.

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 un host de bastión o nodos proxy.

Para configurar el acceso al extremo basado en DNS, consulta Cómo definir 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 está controlado por 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 a la lista de entidades permitidas o rechaza el acceso desde direcciones IP públicas. Si no configuras redes autorizadas, se podrá acceder al plano de control desde cualquier dirección IP externa. Esto incluye direcciones IP externas o de Internet públicas sin restricciones. Google Cloud
  • Permite o deniega el acceso desde cualquier dirección IP privada del clúster o desde todas ellas.
  • Permite o deniega 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.
  • Permite o deniega el acceso desde direcciones IP en otras Google Cloud regiones.

Revisa las limitaciones del uso de 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 Google Cloud consola.

Console

Para crear un clúster, completa los siguientes pasos:

  1. Ve a la página 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 Acceso 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 a través del extremo basado en DNS del plano de control.
  • enable-ip-access: Permite el acceso al plano de control con direcciones IPv4. Si deseas inhabilitar los extremos internos y externos del plano de control, usa la marca no-enable-ip-access.

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

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

  • 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 al 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 APIs de Google Cloud que están disponibles en Internet público. Para acceder al extremo basado en DNS desde clientes privados, puedes usar el 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 direccionesgke.googa la dirección IP interna que agregó Private Service Connect para las APIs de Google, no a la dirección IP pública predeterminada de Google. Para configurar Private Service Connect para las APIs, completa los pasos que se indican en Cómo acceder a las APIs de Google a través de extremos. Google Cloud

  • 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 Configura 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 más redes autorizadas si lo necesitas.
Define las reglas de firewall de la dirección 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 de Google Cloudpueden acceder al extremo interno del plano de control.

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

  5. Selecciona Agregar direcciones IP externas de Google Cloud Google Cloud 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 externos e internos 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: Enumera los valores CIDR para 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: Deniega el acceso al plano de control desde direcciones IP externas deGoogle Cloud .

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

    Puedes seguir configurando la red del clúster si defines 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 de nodos, el tipo de pila de IP y la asignación de direcciones IP. Para obtener más información, consulta Crea 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 gcloud CLI o la consola de Google Cloud .

Console

  1. Ve a la página 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 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 se adapten a tu caso de uso. Puedes usar las siguientes marcas:

  • enable-dns-access: Habilita el acceso al plano de control a través del extremo basado en DNS del plano de control.
  • enable-ip-access: Permite el acceso al plano de control con direcciones IPv4. Si deseas inhabilitar los extremos internos y externos del plano de control, usa la marca no-enable-ip-access.
  • 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: Enumera los valores CIDR para 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: Deniega el acceso al plano de control desde direcciones IP externas deGoogle Cloud .

  • 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 gcloud CLI o la consola deGoogle Cloud .

Console

  1. Ve a la página 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 de DNS incluye el nombre del extremo basado en DNS de tu clúster, si habilitaste este extremo.
    • Acceso al plano de control con direcciones IPv4 incluye el estado del extremo basado en IP. Si está habilitada, puedes ver la información de los extremos públicos y privados.
    • Acceder con la dirección IP interna del plano de control desde cualquier región muestra el estado como Habilitado cuando se puede acceder al plano de control desde las direcciones IP de Google de otras regiones.
    • En Redes autorizadas, se muestra la lista de CIDR que pueden acceder al plano de control, si habilitaste las redes autorizadas.
    • Enforce authorized networks on control plane's internal endpoint 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 Acceso al plano de control con direcciones IPv4 y realiza los ajustes 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. Verás 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 los rangos de CIDR están definidos. Estas redes autorizadas se aplican a 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 para determinar si son similares a 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: No se puede acceder al plano de control desde ninguna dirección IP externa.
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 que está habilitado de forma predeterminada.
  • El plano de control tiene redes autorizadas definidas, lo que permite que solo las siguientes redes autorizadas lleguen 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 Google Kubernetes Engine en la consola de Google Cloud .

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Configura el 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 Acceder con 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 más redes autorizadas si lo necesitas.

  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 región de Google Cloud 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.

Puedes seguir configurando la red del clúster si defines 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 el 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 Google Kubernetes Engine en la consola de Google Cloud .

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Configura el 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 Acceder con 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. No se puede acceder al plano de control desde ninguna dirección IP externa.

  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 región de Google Cloud pueden acceder al plano de control a través de la dirección IP interna.

Puedes continuar con la configuración de la red del clúster definiendo 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 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 de nodos según el tipo de clúster que uses:

  • Clúster estándar: Puedes crear o actualizar tus grupos de nodos para aprovisionar nodos privados o públicos 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 redes predeterminada a nivel del clúster. GKE aplica esta configuración de red predeterminada solo cuando los grupos de nodos nuevos no tienen definida ninguna configuración de red.
  • 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 tiene en cuenta esta configuración cuando tu grupo de nodos o carga de trabajo no la tienen definida.

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

Console

Crea un clúster

  1. Ve a la página 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 el 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 Redes del clúster, completa lo siguiente según tu caso de uso:

    1. Selecciona Habilitar nodos privados para aprovisionar nodos solo con direcciones IP internas (nodos privados), lo que impide 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 adicionales nativos de la VPC. Para obtener más información, consulta Crea un clúster nativo de la VPC.

  7. Haz clic en Crear.

Actualiza un clúster existente

  1. Ve a la página 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, realiza cualquiera de las siguientes acciones:

    1. Selecciona Habilitar nodos privados para aprovisionar nodos solo con direcciones IP internas (nodos privados), lo que impide 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 solo con 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 usa la subred nueva para aprovisionar la dirección IP interna del plano de control.
  • no-enable-private-nodes: Para aprovisionar nodos solo con direcciones IP externas (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 solo surte efecto después de que se reprograman 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 del clúster se reemplaza por la configuración de red en el grupo de nodos o a nivel de la carga de trabajo.

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 bien grupos de nodos para clústeres estándar, usa Google Cloud CLI o la consola deGoogle 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 de Standard, completa los siguientes pasos:

  1. Ve a la página 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 para administrar grupos de nodos, consulta Cómo agregar y administrar grupos de nodos.

gcloud

  • En los clústeres de Autopilot y en los grupos de nodos de Standard que usan el aprovisionamiento automático de nodos, agrega el siguiente nodeSelector a la especificación del Pod:

    cloud.google.com/private-node=true
    

    Usa private-node=true para programar un Pod en nodos que solo tienen 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 solo con direcciones IP internas (nodos privados).
    • no-enable-private-nodes: Para aprovisionar nodos solo con direcciones IP externas (nodos públicos).

Configuración avanzada

En las siguientes secciones, se describen las configuraciones avanzadas que puedes usar cuando configuras el aislamiento de la 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 a tu 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 se inhabilita el acceso al extremo basado en IP.

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íticas de firewall jerárquicas que tengan una prioridad más alta que las reglas de firewall creadas automáticamente.

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 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 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 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?