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
Instala la CLI de kubectl. Para obtener más información, consulta Instala componentes.
Genera un archivo kubeconfig para el servidor de la API de administración en la zona de destino. Para obtener más información, consulta Recursos zonales del clúster de Kubernetes.
Para obtener los permisos que necesitas para enumerar las versiones de actualización disponibles, 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).Si administras un clúster estándar y no puedes obtener el rol de administrador del clúster 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.
Para obtener los permisos que necesitas para configurar una actualización del clúster, pídele al administrador de IAM de la organización que te otorgue el rol de Administrador de clústeres estándar (
standard-cluster-admin).
Actualiza un clúster de Kubernetes
Usa la API de UserClusterUpgradeRequest para actualizar un clúster de Kubernetes existente.
Para actualizar un clúster de Kubernetes con la API, sigue estos pasos:
Imprime el valor de
kubernetesVersionde los objetosUserClusterMetadatapara enumerar las versiones de actualización de Kubernetes disponibles: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 devuelve una lista de las versiones de Kubernetes disponibles:
TARGET_VERSION 1.30.1000-gke.85Ten en cuenta la versión de Kubernetes del resultado anterior a la que deseas actualizar tu clúster. El
targetVersionque especifiques en la solicitud de actualización del siguiente paso debe ser una de estas versiones disponibles.Solicita la actualización del clúster creando 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: Es la ruta de acceso al archivo kubeconfig del servidor de la API de administración.CLUSTER_NAME: Es el nombre del clúster de Kubernetes que se actualizará, comouser-vm-2.CLUSTER_NAMESPACE: Es 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: Es la versión de destino de 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.
Verifica la actualización del clúster supervisando el recurso
UserClusterUpgradeRequest:kubectl --kubeconfig MANAGEMENT_API_SERVER \ describe userclusterupgraderequest CLUSTER_NAME \ -n CLUSTER_NAMESPACEReemplaza lo siguiente:
MANAGEMENT_API_SERVER: Es la ruta de acceso al archivo kubeconfig del servidor de la API de administración.CLUSTER_NAME: Es el nombre del clúster de Kubernetes que se actualizará, comouser-vm-2.CLUSTER_NAMESPACE: Es 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 Versionson diferentes.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 el estadoTruey elCurrent Versioncoincide con elTarget Version.Si la condición
Succeededtiene el estadoFalse, significa que no se pudo realizar la actualización. 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 los subcomponentes del clúster después de la actualización
Después de actualizar correctamente tu clúster de Kubernetes, te recomendamos que confirmes que todos los subcomponentes del clúster estén en buen estado.
Verifica si hay fallas en los subcomponentes del clúster:
Verifica que no haya subcomponentes que muestren un mensaje de
ReconciliationError:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get subcomponent -n CLUSTER_NAME -o json | jq -r \ '.items[] | select(.status.conditions[]?.reason == "ReconciliationError") | select(.status.featureDisabled != true) | "Sub-Component: \(.metadata.name) - \(.status.conditions[]?.message)"'Si el resultado muestra algún subcomponente, comunícate con tu grupo de operadores de infraestructura para obtener más ayuda.
Verifica que no haya subcomponentes que muestren un mensaje de
Reconciling:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get subcomponent -n CLUSTER_NAME -o json | jq -r \ '.items[] | select(.status.conditions[]?.reason == "Reconciling") | select(.status.featureDisabled != true) | select( "\(.status)" | contains("PreinstallPending") | not) | "Sub-Component: \(.metadata.name) - \(.status.conditions[]?.message)"'En el caso de los clústeres de Kubernetes con tres nodos del plano de control y tres nodos trabajadores, el tiempo de actualización es de aproximadamente 20 minutos. Si sigues viendo subcomponentes en estado
Reconcilingdespués de 20 minutos, comunícate con tu grupo de operadores de infraestructura para obtener más ayuda.
¿Qué sigue?
- Diseña la separación de cargas de trabajo
- Cómo mantener clústeres de Kubernetes
- Administra grupos de nodos