Actualiza cargas de trabajo con estado

En este documento, se explica cómo actualizar las cargas de trabajo con estado existentes que se ejecutan en un clúster de Kubernetes 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.

Este documento está dirigido 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. 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 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.

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

  • Para obtener los permisos necesarios para actualizar cargas de trabajo con estado en un clúster estándar, pídele al administrador de IAM de la organización que te otorgue el rol de desarrollador de clústeres (cluster-developer) en un clúster estándar.

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 KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f STATEFULSET_FILE

Reemplaza lo siguiente:

  • KUBERNETES_CLUSTER_KUBECONFIG: Es el archivo kubeconfig del clúster que ejecuta las cargas de trabajo con estado.

  • NAMESPACE: es el espacio de nombres. En el caso de los clústeres compartidos, debe ser un espacio de nombres del proyecto. En el caso de los clústeres estándares, puede ser cualquier espacio de nombres.

  • 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 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 KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout status statefulset STATEFULSET_NAME
  • KUBERNETES_CLUSTER_KUBECONFIG: Es el archivo kubeconfig del clúster que ejecuta las cargas de trabajo con estado.

  • NAMESPACE: es el espacio de nombres. En el caso de los clústeres compartidos, debe ser un espacio de nombres del proyecto. En el caso de los clústeres estándares, puede ser cualquier espacio de nombres.

  • 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 KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout history statefulset STATEFULSET_NAME
  • KUBERNETES_CLUSTER_KUBECONFIG: Es el archivo kubeconfig del clúster que ejecuta las cargas de trabajo con estado.

  • NAMESPACE: es el espacio de nombres. En el caso de los clústeres compartidos, debe ser un espacio de nombres del proyecto. En el caso de los clústeres estándares, puede ser cualquier espacio de nombres.

  • STATEFULSET_NAME: Es el nombre del objeto StatefulSet actualizado.

Cómo deshacer un lanzamiento

Para deshacer un lanzamiento, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • KUBERNETES_CLUSTER_KUBECONFIG: Es el archivo kubeconfig del clúster que ejecuta las cargas de trabajo con estado.

  • NAMESPACE: es el espacio de nombres. En el caso de los clústeres compartidos, debe ser un espacio de nombres del proyecto. En el caso de los clústeres estándares, puede ser cualquier espacio de nombres.

  • STATEFULSET_NAME: Es el nombre del objeto StatefulSet.

¿Qué sigue?