Actualiza cargas de trabajo con estado

En esta página, se explica cómo actualizar las cargas de trabajo con estado existentes que se ejecutan en un clúster de Kubernetes de un dispositivo aislado de Google Distributed Cloud (GDC). A medida que tu aplicación evoluciona en función del uso de recursos y las optimizaciones de configuración, debes actualizar la especificación del pod subyacente en el clúster de Kubernetes para reflejar esos cambios en la carga de trabajo. Para obtener más información sobre la planificación de actualizaciones para cargas de trabajo con estado, consulta la documentación de Kubernetes sobre las estrategias de actualización.

Esta página está destinada a los desarrolladores del grupo de operadores de aplicaciones, que son responsables de actualizar las cargas de trabajo de las aplicaciones de su organización.

Antes de comenzar

Para completar las tareas de este documento, debes solicitar los permisos necesarios y preparar tu entorno.

Solicita roles de IAM

Para crear, borrar, editar o ver cargas de trabajo con estado en un clúster de Kubernetes, pídele al administrador de IAM de tu organización que te otorgue el rol Administrador de espacio de nombres (namespace-admin). Este rol está vinculado al espacio de nombres de tu proyecto.

Prepara el entorno

Para ejecutar comandos en el clúster de Kubernetes de hardware físico preconfigurado, asegúrate de tener los siguientes recursos:

  1. Ubica el nombre del clúster de Kubernetes o pregúntale al administrador de la plataforma cuál es el nombre del clúster.

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

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

Actualiza un recurso StatefulSet

Para actualizar el StatefulSet, aplica un archivo de manifiesto nuevo o actualizado. Esto es útil para aplicar varios cambios en tu StatefulSet cuando escalas o quieres especificar una versión nueva de tu aplicación.

Para actualizar un objeto StatefulSet, ejecuta lo siguiente:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f STATEFULSET_FILE

Reemplaza lo siguiente:

  • CLUSTER_KUBECONFIG: Es el archivo kubeconfig de l clúster de Kubernetes que ejecuta las cargas de trabajo con estado.

  • NAMESPACE: Es el espacio de nombres del proyecto.

  • STATEFULSET_FILE: Es el nombre del archivo de manifiesto StatefulSet actualizado.

El comando kubectl apply aplica un archivo de manifiesto a un recurso. Si el recurso especificado no existe, el comando lo crea.

Inspecciona el lanzamiento de la actualización de un recurso StatefulSet

Puedes ver información detallada sobre el estado y el historial del lanzamiento de la actualización de un objeto StatefulSet. También puedes deshacer el lanzamiento de un objeto StatefulSet.

Inspecciona el lanzamiento

Para inspeccionar el lanzamiento del recurso StatefulSet, ejecuta lo siguiente:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout status statefulset STATEFULSET_NAME
  • CLUSTER_KUBECONFIG: Es el archivo kubeconfig de l clúster de Kubernetes que ejecuta las cargas de trabajo con estado.

  • NAMESPACE: Es el espacio de nombres del proyecto.

  • STATEFULSET_NAME: Es el nombre del objeto StatefulSet actualizado.

Obtén el historial de lanzamiento

Para ver el historial de lanzamiento del recurso StatefulSet, ejecuta lo siguiente:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout history statefulset STATEFULSET_NAME
  • CLUSTER_KUBECONFIG: Es el archivo kubeconfig de l clúster de Kubernetes que ejecuta las cargas de trabajo con estado.

  • NAMESPACE: Es el espacio de nombres del proyecto.

  • STATEFULSET_NAME: Es el nombre del objeto StatefulSet actualizado.

Deshaz un lanzamiento

Para deshacer un lanzamiento, ejecuta lo siguiente:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout undo statefulset STATEFULSET_NAME

Reemplaza lo siguiente:

  • CLUSTER_KUBECONFIG: Es el archivo kubeconfig de l clúster de Kubernetes que ejecuta las cargas de trabajo con estado.

  • NAMESPACE: Es el espacio de nombres del proyecto.

  • STATEFULSET_NAME: Es el nombre del objeto StatefulSet.