En esta página, se explica cómo preparar clústeres para las actualizaciones a la versión 1.25 de GKE. Puedes encontrar clientes de API que realizan llamadas a APIs obsoletas quitadas en la versión 1.25 y actualizar esos clientes para usar las APIs de DG. Para obtener información más detallada, consulta la Guía de migración de la API obsoleta de Kubernetes.
APIs eliminadas en la versión 1.25
La mayoría de las API obsoletas de la versión 1.25 de Kubernetes son APIs que antes estaban en versión Beta (por ejemplo, v1beta1
) y de DG (por ejemplo, v1
). Las APIs de DG proporcionan garantías de compatibilidad a largo plazo y deben usarse en lugar de las APIs Beta obsoletas.
Todos los objetos existentes para las APIs que se pasaron a Google Analytics pueden interactuar mediante las API de DG.
EndpointSlice
La versión Beta de la API (discovery.k8s.io/v1beta1
) de EndpointSlice
ya no se entrega a partir de la versión 1.25. Esta API dejó de estar disponible en la versión 1.21.
- Migra los manifiestos y los clientes de la API para usar la versión de la API de
discovery.k8s.io/v1
. Consulta la siguiente tabla que describe los cambios notables en la versión de la API de DG:
Campo Cambiar endpoints[*].topology["kubernetes.io/hostname"]
Usa endpoints[*].nodeName
.endpoints[*].topology["topology.kubernetes.io/zone"]
Usa endpoints[*].zone
.endpoints[*].topology
Se reemplazó por endpoints[*].deprecatedTopology
, que no se puede escribir en la v1.
PodDisruptionBudget
La versión beta de la API (policy/v1beta1
) de PodDisruptionBudget
ya no se entrega a partir de la versión 1.25. Esta API dejó de estar disponible en la versión 1.21.
- Migra los manifiestos y los clientes de la API para usar la versión de la API de
policy/v1
. Consulta la siguiente tabla que describe los cambios notables en la versión de la API de DG:
Campo Cambiar spec.selector
Un valor vacío ( {}
) escrito en unpolicy/v1 PodDisruptionBudget
selecciona todos los Pods en el espacio de nombres. Un valor sin configurar aún no selecciona ningún Pod.
CronJob
La versión beta de la API (batch/v1beta1
) de CronJob
ya no se entrega a partir de la versión 1.25. Esta API dejó de estar disponible en la versión 1.21. Migra los manifiestos y los clientes de la API para usar la versión de la API de batch/v1
.
PodSecurityPolicy
La versión beta de la API (policy/v1beta1
) de PodSecurityPolicy
ya no se entrega a partir de la versión 1.25. Esta API dejó de estar disponible en la versión 1.21.
Para obtener más información, consulta Baja de PodSecurityPolicy.
RuntimeClass
La versión beta de la API (node.k8s.io/v1beta1
) de RuntimeClass
ya no se entrega a partir de la versión 1.25. Esta API dejó de estar disponible en la versión 1.20. Migra los manifiestos y los clientes de la API para usar la versión de la API de node.k8s.io/v1
.
Eventos
La versión beta de la API (events.k8s.io/v1beta1
) de Events
ya no se entrega a partir de la versión 1.25. Esta API dejó de estar disponible en la versión 1.19.
- Migra los manifiestos y los clientes de la API para usar la versión de la API
v1
o la versión de la APIevents.k8s.io/v1
. Consulta la siguiente tabla que describe los cambios notables en la versión de la API de DG:
Campo Cambiar type
Limitado a Normal
yWarning
.involvedObject
Se cambió el nombre a regarding
.action
,reason
,reportingController
yreportingInstance
Estos campos ahora son obligatorios cuando se crean eventos. firstTimestamp
Se cambió el nombre a deprecatedFirstTimestamp
y ya no se permite en los nuevos eventos. UtilizaeventTime
en lugar de esta función.lastTimestamp
Se cambió el nombre a deprecatedLastTimestamp
y ya no se permite en los nuevos eventos. Utilizaseries.lastObservedTime
en lugar de esta función.count
Se cambió el nombre a deprecatedCount
y ya no se permite en los nuevos eventos. Utilizaseries.count
en lugar de esta función.source.component
Se cambió el nombre a deprecatedSource.component
y ya no se permite en los nuevos eventos. UtilizareportingController
en lugar de esta función.source.host
Se cambió el nombre a deprecatedSource.host
y ya no se permite en los nuevos eventos. UtilizareportingInstance
en lugar de esta función.
HorizontalPodAutoscaler
La versión beta de la API (autoscaling/v2beta1
) de HorizontalPodAutoscaler
ya no se entrega a partir de la versión 1.25. Esta API dejó de estar disponible en la versión 1.23.
Migra los manifiestos y los clientes de la API para usar la versión de la API de autoscaling/v2 HorizontalPodAutoscaler
.
Prepárate para actualizar a la versión 1.25
No es necesario que borres ni vuelvas a crear ningún objeto de la API. Todos los objetos de la API persistentes existentes para las APIs que pasaron a la etapa de disponibilidad general ya pueden leerse y actualizarse con las nuevas versiones de API.
Sin embargo, te recomendamos que migres a tus clientes y manifiestos antes de actualizar a Kubernetes 1.25. Para obtener más información, consulta la Guía de migración de las APIs obsoletas de Kubernetes.
Puedes ver estadísticas y recomendaciones de baja para determinar si tu clúster usa las APIs obsoletas de Kubernetes 1.25. GKE genera estadísticas de baja cuando los usuarios-agentes llaman a las APIs obsoletas, no a partir de la configuración de tus objetos de Kubernetes.
Busca clústeres con APIs obsoletas
Puedes encontrar los clústeres que usan las APIs obsoletas en las estadísticas de baja. Las estadísticas de baja también proporcionan información como qué clientes de API llaman a las API obsoletas en tu clúster.
También puedes usar los registros de auditoría para encontrar qué clientes realizan llamadas a las APIs obsoletas.
Ubica los clientes de API que realizan llamadas de escritura a las APIs obsoletas
Para los clústeres con Google Cloud Observability habilitada, puedes usar la siguiente consulta del Registro de actividad del administrador a fin de mostrar el uso de APIs obsoletas por parte de los usuarios-agentes que no son administrados por Google:
resource.type="k8s_cluster"
labels."k8s.io/removed-release"="DEPRECATED_API_MINOR_VERSION"
protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@")
protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:")
Reemplaza DEPRECATED_API_MINOR_VERSION
por la versión secundaria en la que se quita la API obsoleta, por ejemplo, 1.22
.
Los registros de auditoría de actividad del administrador se habilitan de forma automática para los clústeres de GKE. Con esta consulta, los registros muestran a los usuarios-agentes que realizan llamadas de escritura a las APIs obsoletas.
Ubica los clientes de API que realizan llamadas de lectura a las APIs obsoletas
De forma predeterminada, los registros de auditoría muestran solo las llamadas de escritura a las APIs obsoletas. Para mostrar también llamadas de lectura a las APIs obsoletas, configura los registros de auditoría de acceso a los datos.
Sigue las instrucciones para configurar registros de auditoría de acceso a los datos con la consola de Google Cloud. En la consola de Google Cloud, selecciona la API de Kubernetes Engine. En la pestaña Tipos de registro en el panel de información, selecciona Admin Read
y Data Read
.
Con estos registros habilitados, ahora puedes usar la consulta original para ver las llamadas de lectura y de escritura en las APIs obsoletas.
Actualiza componentes de terceros
Es posible que las estadísticas de baja muestren resultados para agentes de terceros que realizan llamadas a las APIs obsoletas en el clúster.
Para resolver los agentes de terceros que llaman a las APIs obsoletas, sugerimos las siguientes prácticas recomendadas:
- Comunícate con tu proveedor de software de terceros para obtener una versión actualizada.
- Actualiza el software de terceros a la versión más reciente Si no puedes actualizar el software, debes probar si actualizar GKE a la versión con las APIs obsoletas eliminadas interrumpiría tu servicio.
Recomendamos que realices esta actualización y la actualización de la versión de GKE en un clúster de etapa de pruebas para supervisar las interrupciones antes de actualizar los clústeres de producción.
Actualiza los clústeres afectados por las bajas
Para actualizar los clústeres afectados por las bajas, sigue estos pasos:
- Verifica qué usuarios-agentes usan las APIs obsoletas en los registros.
- Actualiza los usuarios-agentes que usan las APIs obsoletas para que usen versiones compatibles de las APIs.
- Actualiza cualquier software de terceros que llame a las APIs obsoletas a las versiones más recientes.
- Actualiza un clúster de prueba y prueba tu aplicación en un entorno de pruebas antes de actualizar el clúster de producción para reducir el riesgo de interrupciones cuando las APIs obsoletas ya no estén disponibles.
- Si no puedes actualizar un usuario-agente afectado, actualiza un clúster de prueba separado para verificar si la actualización causa interrupciones. Si la actualización no produce interrupciones, puedes actualizar el clúster de forma manual.
- Después de actualizar todos los usuarios-agentes, GKE espera hasta que ya no haya observado el uso de las APIs obsoletas durante 30 días y, luego, desbloquea las actualizaciones automáticas. Las actualizaciones automáticas continúan según el programa de lanzamientos.
Recursos
Puedes encontrar más información en la documentación de Kubernetes de OSS:
- Blog de Kubernetes: Eliminaciones de Kubernetes y cambios importantes en la versión 1.25
- Notas de la versión de Kubernetes 1.25
- Guía de migración de las API obsoletas de Kubernetes