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á dirigida a los desarrolladores que forman parte del grupo de operadores de aplicaciones y que son responsables de actualizar las cargas de trabajo de las aplicaciones de su organización.

Antes de comenzar

Para ejecutar comandos en el clúster de Kubernetes en equipos físicos 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 de kubeconfig del clúster de Kubernetes para reemplazar CLUSTER_KUBECONFIG en estas instrucciones.

Para obtener los permisos necesarios para actualizar cargas de trabajo con estado, pídele al administrador de IAM de tu organización que te otorgue el rol de administrador de espacio de nombres (namespace-admin) en el espacio de nombres de tu proyecto.

Actualiza un recurso StatefulSet

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

Para actualizar un objeto StatefulSet, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • CLUSTER_KUBECONFIG: Es el archivo kubeconfig del 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 de 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 una actualización del recurso StatefulSet

Puedes ver información detallada sobre el estado y el historial del lanzamiento de una 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 del 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 el siguiente comando:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout history statefulset STATEFULSET_NAME
  • CLUSTER_KUBECONFIG: Es el archivo kubeconfig del 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.

Cómo deshacer un lanzamiento

Para deshacer un lanzamiento, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • CLUSTER_KUBECONFIG: Es el archivo kubeconfig del 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.