Mantén clústeres de Kubernetes

Google Distributed Cloud (GDC) aislado te permite administrar tus clústeres de Kubernetes después de la creación con GKE en GDC. Este servicio te permite adaptarte a los requisitos cambiantes de tus cargas de trabajo de contenedores y mantener los nodos de clúster existentes con los siguientes flujos de trabajo:

Este documento está dirigido a los administradores de TI dentro del grupo de administradores de la plataforma que administran cargas de trabajo de contenedores alojadas en clústeres que abarcan varios proyectos, y a los desarrolladores dentro del grupo de operadores de aplicaciones que son responsables de crear cargas de trabajo de aplicaciones dentro de un solo proyecto. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

Antes de comenzar

Para completar las tareas de este documento, debes tener los siguientes recursos y roles:

  • Para ver y administrar grupos de nodos en un clúster de Kubernetes compartido, pídele al administrador de IAM de tu organización que te otorgue los siguientes roles:

    • Administrador del clúster de usuario (user-cluster-admin)
    • Visualizador de nodos del clúster de usuario (user-cluster-node-viewer)

    Estos roles no están vinculados a un espacio de nombres del proyecto.

  • Para ver y administrar grupos de nodos en un clúster de Kubernetes estándar, pídele al administrador de IAM de tu organización que te otorgue el rol de administrador de clústeres estándar (standard-cluster-admin). Este rol está vinculado al espacio de nombres de tu proyecto.

  • Para ejecutar comandos en un clúster de Kubernetes, asegúrate de tener los siguientes recursos:

    • Busca el nombre del clúster de Kubernetes o pregúntale a un miembro del grupo de administradores de la plataforma cuál es el nombre del clúster.

    • Accede y genera el archivo kubeconfig para el clúster de Kubernetes si no tienes uno.

    • Usa la ruta de acceso de kubeconfig del clúster de Kubernetes para reemplazar KUBERNETES_CLUSTER_KUBECONFIG en estas instrucciones.

Cómo mover clústeres en la jerarquía del proyecto

Los proyectos proporcionan una agrupación lógica de las instancias de servicio. Puedes agregar y quitar clústeres de Kubernetes compartidos de la jerarquía del proyecto de GDC para agrupar tus servicios de forma adecuada. No puedes mover clústeres estándar en la jerarquía del proyecto, ya que solo se limitan a un solo proyecto.

Cómo adjuntar un proyecto a un clúster compartido

Cuando creas un clúster compartido desde la consola de GDC, debes adjuntar al menos un proyecto antes de poder implementar correctamente cargas de trabajo de contenedores en él. Si debes agregar proyectos adicionales a un clúster existente, completa los siguientes pasos:

  1. En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
  2. Haz clic en el clúster de la lista para abrir la página Detalles del clúster.
  3. Selecciona Adjuntar proyecto.
  4. Selecciona los proyectos disponibles para agregar desde la lista de proyectos. Haz clic en Guardar.

Desconecta el proyecto de un clúster compartido

Para separar un proyecto de un clúster compartido existente, completa los siguientes pasos:

  1. En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
  2. Haz clic en el clúster de la lista para abrir la página Detalles del clúster.
  3. Haz clic en Desvincular para desvincular el proyecto del clúster.

Visualiza todos los clústeres de una organización

Puedes ver todos los clústeres de Kubernetes disponibles en una organización, incluidos sus estados, versiones de Kubernetes y otros detalles.

Dado que los clústeres de Kubernetes son un recurso zonal, solo puedes enumerar los clústeres por zona.

Console

  • En el menú de navegación, selecciona Kubernetes Engine > Clústeres.

    Se muestran todos los clústeres compartidos disponibles en la organización con sus estados y otra información:

    Página de detalles del clúster con estados y otra información de cada clúster compartido en la organización.

gdcloud

  • Enumera los clústeres compartidos disponibles de la zona en una organización:

    gdcloud clusters list
    

    El resultado es similar a lo siguiente:

    CLUSTERREF.NAME   READINESS.STATE   TYPE   CURRENTVERSION.USERCLUSTERVERSION     CURRENTVERSION.SUPPORT.STATUS
    user-vm-1         Ready             user   1.15.0-gdch.394225-1.28.15-gke.1200   In Support
    user-vm-2         Ready             user   1.15.0-gdch.394225-1.29.12-gke.800    In Support
    

API

  • Enumera los clústeres de Kubernetes disponibles en la zona de una organización:

    kubectl get clusters.cluster.gdc.goog -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Reemplaza lo siguiente:

    • MANAGEMENT_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API zonal. Si aún no generaste un archivo kubeconfig para el servidor de la API en la zona de destino, consulta Accede para obtener más detalles.
    • KUBERNETES_CLUSTER_NAMESPACE: Es el espacio de nombres del clúster. Para los clústeres compartidos, usa el espacio de nombres platform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.

    El resultado es similar a lo siguiente:

    NAME        STATE     K8S VERSION
    user-vm-1   Running   1.25.10-gke.2100
    user-test   Running   1.26.5-gke.2100
    

Enumera las versiones de Kubernetes disponibles para un clúster

Puedes enumerar las versiones de Kubernetes disponibles en tu zona de GDC para verificar las funciones de Kubernetes a las que puedes acceder en el clúster.

  • Crea una lista de las versiones de Kubernetes disponibles en tu zona:

    kubectl get userclustermetadata.upgrade.private.gdc.goog \
        -o=custom-columns=K8S-VERSION:.spec.kubernetesVersion \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Reemplaza MANAGEMENT_API_SERVER por el archivo kubeconfig del servidor de la API zonal de tu clúster.

    El resultado es similar al siguiente:

    K8S-VERSION
    1.25.10-gke.2100
    1.26.5-gke.2100
    1.27.4-gke.500
    

Cómo ver las propiedades que se pueden actualizar

Para cada clúster de Kubernetes, hay un conjunto de propiedades disponibles para cambiar después de su creación. Solo puedes cambiar las propiedades mutables que se encuentran en el spec del recurso personalizado Cluster. No todas las propiedades de spec son aptas para actualizarse después de que se aprovisiona el clúster. Para ver estas propiedades actualizables, completa los siguientes pasos:

Console

  1. En el menú de navegación, selecciona Kubernetes Engine > Clústeres.

  2. En la lista de clústeres de Kubernetes, haz clic en el nombre de un clúster para ver sus propiedades.

  3. Las propiedades editables tienen un ícono de Editar.

kubectl

  • Consulta la lista de propiedades de la especificación Cluster y los valores válidos correspondientes a cada propiedad:

    kubectl explain clusters.cluster.gdc.goog.spec \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Reemplaza MANAGEMENT_API_SERVER por la ruta de acceso al archivo kubeconfig del servidor de la API zonal. Si aún no generaste un archivo kubeconfig para el servidor de la API en la zona de destino, consulta Accede para obtener más detalles.

    El resultado es similar a lo siguiente:

    KIND:     Cluster
    VERSION:  cluster.gdc.goog/v1
    
    RESOURCE: spec <Object>
    
    DESCRIPTION:
        <empty>
    
    FIELDS:
      clusterNetwork    <Object>
        The cluster network configuration. If unset, the default configurations
        with pod and service CIDR sizes are used. Optional. Mutable.
    
      initialVersion    <Object>
        The GDC air-gapped version information of the user cluster during cluster creation.
        Optional. Default to use the latest applicable version. Immutable.
    
      loadBalancer  <Object>
        The load balancer configuration. If unset, the default configuration with
        the ingress service IP address size is used. Optional. Mutable.
    
      nodePools <[]Object>
        The list of node pools for the cluster worker nodes. Optional. Mutable.
    
      releaseChannel    <Object>
        The release channel a cluster is subscribed to. When a cluster is
        subscribed to a release channel, GDC maintains the cluster versions for
        users. Optional. Mutable.
    

    Actualiza estos parámetros de configuración con la consola de GDC o la CLI de kubectl. Por ejemplo, puedes cambiar el tamaño de un grupo de nodos.

¿Qué sigue?