En este documento, se explica cómo actualizar la versión de Kubernetes de un clúster de Kubernetes aislado de Google Distributed Cloud (GDC). Debes planificar actualizaciones de rutina para tus clústeres y asegurarte de que incorporen las funciones y correcciones más recientes de Kubernetes.
Este documento está dirigido a públicos como administradores de TI, ingenieros de seguridad y administradores de redes dentro del grupo de administradores de la plataforma, que son responsables de administrar los recursos de Kubernetes dentro 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 solicitar los permisos necesarios y preparar tu entorno.
Solicita roles de IAM
Debes tener roles específicos para obtener los permisos que necesitas para actualizar tu clúster de Kubernetes. Debes solicitar roles con alcance en tu proyecto y organización.
Roles de la organización
Para enumerar las versiones de actualización disponibles para un clúster de Kubernetes, pídele a tu administrador de IAM de la organización que te otorgue el rol de administrador de clústeres de usuario (user-cluster-admin). Este rol no está vinculado a un espacio de nombres.
Si administras un clúster estándar y no puedes obtener el rol de administrador de clústeres de usuario de tu grupo de administradores de la plataforma, debes solicitar que te proporcionen la lista de versiones de actualización de Kubernetes disponibles.
Funciones de proyecto
Para crear, borrar, editar o ver actualizaciones de clústeres, pídele a tu administrador de IAM del proyecto 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.
Prepara el entorno
Para ejecutar comandos en un clúster de Kubernetes con la API, asegúrate de tener los siguientes recursos:
Descarga y luego, instala la CLI de gdcloud.
Ubica 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.
Usa el nombre del clúster de Kubernetes para reemplazar
CLUSTER_NAMEen estas instrucciones.Accede y genera el archivo kubeconfig para el servidor de la API de administración.
Usa la ruta de acceso kubeconfig del servidor de la API de Management para reemplazar
MANAGEMENT_API_SERVERen estas instrucciones.
Actualiza un clúster de Kubernetes
Usa la
UserClusterUpgradeRequest
API para actualizar un clúster de Kubernetes existente.
Para actualizar un clúster de Kubernetes con la API, sigue estos pasos:
Para enumerar las versiones de actualización de Kubernetes disponibles, imprime el valor
kubernetesVersionde los objetosUserClusterMetadata:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get userclustermetadata -o=custom-columns='TARGET_VERSION:.spec.kubernetesVersion'Reemplaza
MANAGEMENT_API_SERVERpor la ruta de acceso al archivo kubeconfig del servidor de la API de administración.El comando muestra una lista de las versiones de Kubernetes disponibles:
TARGET_VERSION 1.30.1000-gke.85Anota la versión de Kubernetes del resultado anterior a la que deseas actualizar tu clúster. La
targetVersionque especifiques en la solicitud de actualización en el siguiente paso debe ser una de estas versiones disponibles.Para solicitar la actualización del clúster, crea un recurso
UserClusterUpgradeRequest:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: cluster.gdc.goog/v1 kind: UserClusterUpgradeRequest metadata: name: CLUSTER_NAME namespace: CLUSTER_NAMESPACE spec: clusterRef: name: CLUSTER_NAME targetVersion: TARGET_VERSION EOFReemplaza lo siguiente:
MANAGEMENT_API_SERVER: la ruta de acceso al archivo kubeconfig del servidor de la API de administraciónCLUSTER_NAME: el nombre del clúster de Kubernetes que se actualizará, comouser-vm-2CLUSTER_NAMESPACE: el espacio de nombres del clúster de Kubernetes Para los clústeres compartidos, usa el espacio de nombresplatform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.TARGET_VERSION: la versión de destino para la actualización identificada en el paso anterior, como1.30.1000-gke.85
El tiempo promedio de actualización de un clúster de Kubernetes es de aproximadamente 20 minutos.
Para verificar la actualización del clúster, supervisa el recurso
UserClusterUpgradeRequest:kubectl --kubeconfig MANAGEMENT_API_SERVER \ describe userclusterupgraderequest CLUSTER_NAME \ -n CLUSTER_NAMESPACEReemplaza lo siguiente:
MANAGEMENT_API_SERVER: la ruta de acceso al archivo kubeconfig del servidor de la API de administraciónCLUSTER_NAME: el nombre del clúster de Kubernetes que se actualizará, comouser-vm-2CLUSTER_NAMESPACE: el espacio de nombres del clúster de Kubernetes Para los clústeres compartidos, usa el espacio de nombresplatform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.
Inspecciona la sección
Specdel resultado. ContieneCurrent VersionyTarget Version. La actualización aún está en curso siCurrent VersionyTarget Versiondifieren.Spec: ... Current Version: 1.29.500-gke.60 Target Version: 1.30.1000-gke.85 Status: Conditions: - Message: Upgrade is in progress Reason: UpgradeInProgress Status: "False" Type: SucceededLa actualización se completa correctamente cuando la condición
Succeededtiene un estadoTruey laCurrent Versioncoincide con laTarget Version.Si la condición
Succeededtiene un estadoFalse, la actualización falló. Si encuentras errores relacionados con la actualización de tu clúster de Kubernetes, comunícate con el grupo de operadores de infraestructura para obtener más ayuda.
Verifica el estado del clúster después de la actualización
Después de actualizar tu clúster de Kubernetes, inspecciona el estado del recurso Cluster para confirmar que el clúster y sus componentes estén en buen estado:
Visualiza los campos
status.conditionsystatus.componentsConditionsdel recursoCluster:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get cluster CLUSTER_NAME \ -n CLUSTER_NAMESPACE -o yamlReemplaza lo siguiente:
MANAGEMENT_API_SERVER: la ruta de acceso al archivo kubeconfig del servidor de la API de administraciónCLUSTER_NAME: el nombre del clúster de Kubernetes, comouser-vm-2CLUSTER_NAMESPACE: el espacio de nombres del clúster de Kubernetes Para los clústeres compartidos, usa el espacio de nombresplatform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.
En el resultado, verifica lo siguiente en la sección
status:- En
status.conditions, verifica que la condiciónReadytenga unstatusdeTrue, y que la condiciónReconcilingtenga unstatusdeFalse. - En
status.componentsConditions, verifica que la condiciónReadytenga unstatusdeTrue, que la condiciónReconcilingtenga unstatusdeFalse, y que ninguna condición muestre unreasondeReconciliationErroroReconciling.
Para los clústeres de Kubernetes con tres nodos del plano de control y tres nodos trabajadores, la actualización tarda aproximadamente 20 minutos. Si el clúster o sus componentes permanecen en un estado
Reconcilingdespués de 20 minutos, o si alguna condición muestraReconciliationError, comunícate con tu grupo de operadores de infraestructura para obtener más ayuda.- En
¿Qué sigue?
- Diseña la separación de cargas de trabajo
- Mantén clústeres de Kubernetes
- Administra los grupos de nodos