APIs obsoletas de Kubernetes 1.29


En esta página, se explica cómo preparar clústeres para las actualizaciones a la versión 1.29 de GKE. Puedes encontrar clientes de API que realizan llamadas a APIs obsoletas eliminadas en la versión 1.29 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.29

Las APIs obsoletas en la versión 1.29 de Kubernetes son APIs en fase beta que pasaron a la etapa de disponibilidad general (por ejemplo, v2) o de una versión beta a otra (por ejemplo, de v1beta1 a v1beta2). Las APIs con 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 pasaron a versiones nuevas pueden interactuar a través de las APIs actualizadas.

Recursos del control de flujo

La versión de la API flowcontrol.apiserver.k8s.io/v1beta2 de FlowSchema y PriorityLevelConfiguration ya no se entrega a partir de la versión 1.29.

Migra los manifiestos y los clientes de la API para usar la versión de la API flowcontrol.apiserver.k8s.io/v1, disponible desde la versión 1.29, o la versión de la API flowcontrol.apiserver.k8s.io/v1beta3, disponible desde la versión 1.26.

Se puede acceder a todos los objetos persistentes existentes con la API nueva.

La versión de la API de flowcontrol.apiserver.k8s.io/v1 tiene los siguientes cambios notables:

  • Se cambia el nombre del campo spec.limited.assuredConcurrencyShares de PriorityLevelConfiguration a spec.limited.nominalConcurrencyShares y solo se establece de forma predeterminada en 30 cuando no se especifica. Un valor explícito de 0 no se cambia a 30.

La versión de la API de flowcontrol.apiserver.k8s.io/v1beta3 tiene los siguientes cambios notables:

  • Se cambia el nombre del campo spec.limited.assuredConcurrencyShares de PriorityLevelConfiguration a spec.limited.nominalConcurrencyShares.

Prepárate para actualizar a la versión 1.29

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.29. 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.29. 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:

  1. Comunícate con tu proveedor de software de terceros para obtener una versión actualizada.
  2. 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:

  1. Verifica qué usuarios-agentes usan las APIs obsoletas en los registros.
  2. Actualiza los usuarios-agentes que usan las APIs obsoletas para que usen versiones compatibles de las APIs.
  3. Actualiza cualquier software de terceros que llame a las APIs obsoletas a las versiones más recientes.
  4. 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.
  5. 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.

  6. 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: