Administrar clústeres

En este documento, se muestra cómo administrar tus clústeres en Google Kubernetes Engine (GKE). Para obtener información sobre cómo funcionan los clústeres, consulta Arquitectura de clústeres.

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 la gcloud CLI, ejecuta el comando gcloud components update para obtener la versión más reciente. Es posible que las versiones anteriores de la gcloud CLI no admitan la ejecución de los comandos que se describen en este documento.

Visualiza tus clústeres

gcloud

  • Para ver un clúster específico, ejecuta el siguiente comando:

    gcloud container clusters describe CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: El nombre de tu clúster.
    • CONTROL_PLANE_LOCATION: Es la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.
  • Para enumerar todos los clústeres de un proyecto en cualquier región o zona, ejecuta el siguiente comando:

    gcloud container clusters list
    
  • Para enumerar los clústeres ubicados en la región o zona específica, ejecuta el siguiente comando:

    gcloud container clusters list \
        --location=CONTROL_PLANE_LOCATION
    

Console

Para ver tus clústeres, ve a la página de Google Kubernetes Engine en la consola de Google Cloud .

Ir a Google Kubernetes Engine

Para obtener más información sobre un clúster, selecciona el clúster de la lista.

Configura un clúster predeterminado para kubectl

Si tienes varios clústeres, puedes configurar un clúster predeterminado para la herramienta de línea de comandos de kubectl.

Si deseas obtener más información, consulta Configura un clúster predeterminado para los comandos de kubectl.

Configura un clúster predeterminado para gcloud

A fin de establecer un clúster predeterminado para los comandos de gcloud, ejecuta el siguiente comando:

gcloud config set container/cluster CLUSTER_NAME

Reemplaza CLUSTER_NAME por el nombre del clúster.

Actualiza los clústeres

De forma predeterminada, GKE actualiza los clústeres automáticamente. Sin embargo, puedes optar por actualizar tus clústeres estándar. Para obtener más información, consulta Actualiza un clúster de forma manual.

A fin de obtener orientación sobre la actualización de clústeres, consulta Prácticas recomendadas para actualizar clústeres.

Agrega o quita zonas en un clúster de Standard

Las siguientes secciones explican cómo agregar o quitar zonas del clúster. Todas las zonas deben estar en la región del clúster.

Cambia zonas para clústeres zonales

En los clústeres zonales existentes, puedes agregar o quitar zonas.

gcloud

Para agregar o quitar zonas de un clúster zonal, usa el comando gcloud container clusters update:

gcloud container clusters update CLUSTER_NAME \
  --location CONTROL_PLANE_LOCATION \
  --node-locations COMPUTE_ZONE1,COMPUTE_ZONE2

Reemplaza lo siguiente:

  • CLUSTER_NAME: el nombre que eliges para el clúster
  • CONTROL_PLANE_LOCATION: Es la zona de Compute Engine del plano de control de tu clúster.
  • COMPUTE_ZONE1,COMPUTE_ZONE2,[...]: son las zonas en las que se crean los nodos. Puedes especificar tantas zonas como sea necesario para tu clúster. Todas las zonas deben estar en la misma región que el plano de control del clúster, especificado por la marca --location. En el caso de los clústeres zonales, --node-locations debe contener la zona principal del clúster.

Por ejemplo, example-cluster se ejecuta en us-central1-a. Para agregar dos zonas más al clúster, ejecuta el siguiente comando:

gcloud container clusters update example-cluster \
  --location us-central1-a
  --node-locations us-central1-a,us-central1-b,us-central1-c

Otro ejemplo es example-cluster, que se ejecuta en us-central1-a, us-central1-b y us-central1-c. Si deseas que el clúster solo se ejecute en us-central1-a y us-central1-b, debes ejecutar el siguiente comando:

gcloud container clusters update example-cluster \
  --location us-central1-a \
  --node-locations us-central1-a,us-central1-b

Console

Para agregar o quitar zonas en un clúster existente, realiza 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. Junto al clúster que deseas editar, haz clic en Acciones y, luego, en Editar.

  3. En la pestaña Detalles, en el campo Zonas de nodo predeterminadas, haz clic en Editar grupos de nodos.

  4. Selecciona las zonas deseadas y guarda los cambios.

Cambia zonas para clústeres regionales

Por el momento, solo es posible cambiar las zonas de los clústeres regionales existentes mediante el comando gcloud.

Para agregarle o quitarle zonas a un clúster regional, usa el comando gcloud container clusters update con la marca --node-locations:

gcloud container clusters update CLUSTER_NAME \
  --location CONTROL_PLANE_LOCATION \
  --node-locations COMPUTE_ZONE1,COMPUTE_ZONE2

Reemplaza lo siguiente:

  • CLUSTER_NAME: el nombre del clúster
  • CONTROL_PLANE_LOCATION: La región de Compute Engine del plano de control de tu clúster.
  • COMPUTE_ZONE1 y COMPUTE_ZONE2,[...]: la región del plano de control de zonas en la que se crean los nodos. Las zonas deben estar en la misma CONTROL_PLANE_LOCATION que los planos de control del clúster, especificados por la marca --location.

Por ejemplo, example-cluster se ejecuta en us-central1-a y us-central1-b. Para agregar us-central1-c, debes ejecutar el siguiente comando:

gcloud container clusters update example-cluster \
  --location us-central1 \
  --node-locations us-central1-a,us-central1-b,us-central1-c

Otro ejemplo es example-cluster, que se ejecuta en us-central1-a, us-central1-b y us-central1-c. Si deseas que el clúster solo se ejecute en us-central1-a y us-central1-b, debes ejecutar el siguiente comando:

gcloud container clusters update example-cluster \
  --location us-central1 \
  --node-locations us-central1-a,us-central1-b

Cambia el tamaño de los clústeres

Puedes cambiar el tamaño de un clúster para aumentar o disminuir la cantidad de nodos que tiene. Por ejemplo, si deseas evitar que tu clúster consuma recursos sin borrarlo, puedes reducir los nodos a cero. Para obtener más información sobre cómo cambiar el tamaño, consulta Cambia el tamaño de un clúster.

El tamaño de los clústeres de Autopilot se ajusta automáticamente según las especificaciones de tu pod. Por lo tanto, no debes preocuparte por cambiar el tamaño de tu clúster. Por ejemplo, si cambias el número de réplicas de tu pod o los recursos que solicita, el tamaño del clúster se aumentará o disminuirá de forma adecuada.

Si deseas usar una forma más eficiente de optimizar tus clústeres, también puedes usar el Ajuste de escala automático vertical de pods (VPA). El escalador automático te puede recomendar valores de solicitudes de CPU y memoria o puede actualizar de manera automática los valores.

Borrar clústeres

Cuando sea necesario, puedes borrar un clúster. Para obtener más información, consulta Borra un clúster.

Evita el borrado del clúster con políticas de denegación

Puedes usar políticas de denegación de IAM para evitar la eliminación de ciertos clústeres críticos, independientemente de qué principal intente la eliminación. Para segmentar clústeres específicos en una política de denegación, agrega una etiqueta a esos clústeres. Luego, usas una condición de denegación para aplicar la política de denegación solo a los clústeres que tienen esa etiqueta.

Para proteger un clúster específico contra el borrado, sigue estos pasos:

  1. Crea y define una clave de etiqueta para identificar los clústeres protegidos. Por ejemplo, puedes crear una clave de etiqueta llamada do_not_delete.

  2. Adjunta la clave de la etiqueta a tu clúster.

  3. Para crear una política de IAM de rechazo, selecciona una de las siguientes opciones:

    Console

    1. En la consola de Google Cloud , ve a la pestaña Denegar en la página IAM.

      Ir a IAM Deny

    2. Haz clic en Crear política de denegación. Se abrirá la página Crear política de denegación.

    3. En el campo ID, especifica un ID único e inmutable para tu política de denegación.

    4. En la sección Nueva regla de rechazo, haz lo siguiente:

      1. En el campo Principales rechazados, especifica principalSet://goog/public:all, que abarca cualquier principal.

      2. En la sección Permisos denegados, en la lista desplegable Permiso 1, busca y selecciona el permiso container.googleapis.com/clusters.delete.

      3. Haz clic en Agregar condición de rechazo. Se abrirá el panel Agregar condición de denegación.

      4. Especifica un título informativo para la condición, como Cluster has the do_not_delete tag.

      5. En la pestaña Creador de condiciones, en la lista desplegable Tipo de condición 1, selecciona Etiqueta.

      6. En la lista desplegable Operador, selecciona Tiene clave.

      7. En la lista desplegable Ruta de acceso a la clave, selecciona la clave de etiqueta que aplicaste al clúster, como do_not_delete.

      8. Haz clic en Guardar.

    5. Haga clic en Crear.

    gcloud

    1. Crea un archivo JSON que contenga la siguiente política de denegación:

      {
        "displayName": "Prevent cluster deletion based on tag",
        "rules": [
          {
            "description": "Prevent cluster deletion based on tag",
            "deniedPrincipals": [
              "principalSet://goog/public:all"
            ],
            "deniedPermissions": [
              "container.googleapis.com/clusters.delete"
            ],
            "denialCondition": {
              "title": "Cluster has the do_not_delete tag",
              "expression": "resource.hasTagKey('TAG_KEY_NAME')
            }
          }
        ]
      }
      

      Reemplaza TAG_KEY_NAME por la ruta de acceso a la clave de etiqueta que creaste.

    2. Crea la política de denegación con el comando gcloud iam policies create:

      gcloud iam policies create POLICY_ID \
          --attachment-point=ATTACHMENT_POINT \
          --kind=denypolicies --policy-file=POLICY_FILE
      

      Reemplaza lo siguiente:

      • POLICY_ID: Es un ID para tu política de denegación.
      • ATTACHMENT_POINT: Es la organización, la carpeta o el proyecto al que se adjuntará la política de denegación. Por ejemplo, si adjuntas la política de denegación a una carpeta, la política se aplica a los clústeres de cualquier proyecto de esa carpeta. Para obtener más información, consulta Punto de fijación.
      • POLICY_FILE: Es la ruta de acceso al archivo JSON que creaste en el paso anterior.

Después de crear la política de denegación, nadie podrá borrar un clúster que tenga la clave de etiqueta especificada en la condición de denegación. Cualquier intento de borrar el clúster falla y muestra un mensaje de error Permission denied. Para permitir la eliminación del clúster, debes desvincular esa clave de etiqueta del clúster.

Agrega clústeres a una flota

Si tu organización usa varios clústeres, puedes simplificar la administración de varios clústeres si los agregas a una flota: una agrupación lógica de clústeres de Kubernetes. Crear una flota ayuda a que tu organización mejore la administración de clústeres individuales a grupos completos de clústeres y te permite usar funciones habilitadas en la flota, como Ingress de varios clústeres, Sincronizador de configuración y Policy Controller.

Puedes agregar clústeres de GKE a una flota con la consola deGoogle Cloud , gcloud CLI o de forma declarativa con Terraform o Config Connector.

Puedes obtener más información sobre el funcionamiento de las flotas en Administración de flotas y sobre la creación de flotas en Crea flotas para simplificar la administración de varios clústeres.

¿Qué sigue?