Usar APIs beta de Kubernetes con clústeres de GKE


Usa las APIs beta de Kubernetes para acceder a nuevas funciones en tus clústeres de Google Kubernetes Engine (GKE). Para usar las APIs beta introducidas en la versión 1.24 o posterior, configura las APIs beta.

Cómo se introducen las nuevas funciones con la API de Kubernetes

Los clústeres de GKE constan de un plano de control y nodos de trabajador. El plano de control expone el servidor de la API, que a su vez expone la API de Kubernetes para que los usuarios finales, junto con los componentes internos y externos, puedan comunicarse. Esta API evoluciona con el tiempo, y se introducen nuevas funciones en las fases alfa o beta, que después se ponen a disposición del público general o se retiran en versiones secundarias más recientes.

Solo puedes usar APIs alfa con clústeres alfa, pero puedes usar APIs beta con todos los tipos de clústeres de GKE. A partir de la versión 1.24 de Kubernetes, las nuevas APIs beta están inhabilitadas de forma predeterminada en los clústeres nuevos. Los clústeres creados con una versión anterior a la 1.24 conservarán las APIs beta habilitadas, ya que las APIs beta habilitadas automáticamente (introducidas antes de la versión 1.24) o las APIs beta habilitadas manualmente (introducidas en la versión 1.24 o posteriores) no se pueden inhabilitar en los clústeres. En todos los clústeres, las APIs beta introducidas antes de la versión 1.24 siguen habilitadas de forma predeterminada, al igual que las nuevas versiones de las APIs beta.

Por ejemplo, si se introduce una API v1beta1 en la versión 1.22 de Kubernetes y, posteriormente, se lanza una nueva versión de esta API beta, como v1beta3, en la versión 1.25 de Kubernetes, la API se habilita automáticamente. Esto ocurre porque es una nueva versión de una API beta ya disponible, no una API beta completamente nueva. Sin embargo, una nueva API beta con la versión v1beta1 introducida en Kubernetes 1.24 o versiones posteriores está inhabilitada de forma predeterminada.

Para usar las APIs beta introducidas en la versión 1.24 y posteriores, debes configurar las APIs beta por recurso y por clúster. Puedes habilitar APIs al crear un clúster o en un clúster ya creado. Para ver qué APIs beta están disponibles para la versión secundaria de tu clúster, consulta las APIs beta disponibles.

Una vez que habilitas una API beta, permanece habilitada hasta que se deje de ofrecer y el clúster se actualice a la versión secundaria en la que se haya eliminado la API. Para ver qué APIs beta tiene habilitadas tu clúster, consulta Comprobar qué APIs beta están habilitadas.

APIs beta de Kubernetes y feature gates de Kubernetes

Los feature gates son un mecanismo distinto para habilitar funciones de las APIs de Kubernetes y los clústeres de GKE los gestionan de forma diferente. Algunas APIs de Kubernetes y feature gates de Kubernetes funcionan conjuntamente. Asegúrate de que entiendes la conexión entre las APIs y los feature gates específicos. Para obtener más información, consulta Feature gates.

APIs beta disponibles

Puedes habilitar un subconjunto de APIs beta de Kubernetes para tus clústeres de GKE. Otras APIs beta no están disponibles por motivos como los siguientes:

  • La API beta se basa en funciones de Kubernetes que no son de GA.
  • La API beta no es segura.
  • La API beta no es compatible con Autopilot.

Consulta la siguiente tabla para ver las APIs beta y la versión secundaria correspondiente en la que se introdujeron:

Versión de Kubernetes APIs beta añadidas en esta versión secundaria de Kubernetes Disponible con GKE Notas
1.32
  • resource.k8s.io/v1beta1/deviceclasses
  • resource.k8s.io/v1beta1/resourceclaims
  • resource.k8s.io/v1beta1/resourceclaimtemplates
  • resource.k8s.io/v1beta1/resourceslices
  • resource.k8s.io/v1beta1/deviceclasses
  • resource.k8s.io/v1beta1/resourceclaims
  • resource.k8s.io/v1beta1/resourceclaimtemplates
  • resource.k8s.io/v1beta1/resourceslices

Debes habilitar todas las APIs resource.k8s.io que se indican al mismo tiempo y asegurarte de que los nodos usen las APIs beta recién habilitadas. De esta forma, se habilita la función beta de asignación dinámica de recursos de Kubernetes en un clúster de GKE. Para obtener más información, consulta Asignación dinámica de recursos.

1.31
  • storage.k8s.io/v1beta1/volumeattributesclasses
  • networking.k8s.io/v1beta1/ipaddresses
  • networking.k8s.io/v1beta1/servicecidrs
  • storage.k8s.io/v1beta1/volumeattributesclasses
  • networking.k8s.io/v1beta1/ipaddresses
  • networking.k8s.io/v1beta1/servicecidrs

Debes habilitar las dos APIs networking.k8s.io al mismo tiempo y asegurarte de que los nodos usen las APIs beta recién habilitadas. De esta forma, se habilita la función beta de Kubernetes Multiple Service CIDRs en un clúster de GKE que ejecute la versión 1.31.1-gke.1361000 o posterior. Para obtener más información, consulta las notas de la versión de GKE del 4 de octubre del 2024.

1.29
  • Ninguno
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
Debes habilitar ambas APIs al mismo tiempo. Habilita la función beta Validating Admission Policy.
1.28
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
  • Ninguno
1.27
  • authentication.k8s.io/v1beta1/selfsubjectreviews
  • authentication.k8s.io/v1beta1/selfsubjectreviews

Consideraciones antes de usar las APIs beta

Las APIs beta de Kubernetes están sujetas a la política de obsolescencia de Kubernetes. Cuando se retire una API beta, debes dejar de usarla. Para obtener más información, consulta Versiones beta de APIs obsoletas.

Antes de empezar

Antes de empezar, asegúrate de que has realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando gcloud components update.

Configurar APIs beta

Las APIs beta se habilitan por recurso y por clúster. Puedes habilitar APIs cuando creas un clúster o en un clúster ya creado.

Para enumerar un recurso de API beta en estos comandos, usa la representación {group}/{version}/{resource}. La versión debe ser una versión beta. Un ejemplo de esta representación válida es authentication.k8s.io/v1beta1/selfsubjectreviews.

En los comandos de la siguiente sección, sustituye las siguientes variables:

  • CLUSTER_NAME: el nombre del clúster que quieras actualizar.
  • LIST_OF_APIS: la lista de APIs beta que quieras habilitar, separadas por comas.
  • CONTROL_PLANE_LOCATION: la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.

Crear un clúster con las APIs beta habilitadas

Crea un clúster con una lista de APIs beta habilitadas:

gcloud container clusters create-auto CLUSTER_NAME  \
    --enable-kubernetes-unstable-apis=LIST_OF_APIS \
    --location=CONTROL_PLANE_LOCATION

Habilitar APIs beta en un clúster

Habilita una lista de APIs beta en un clúster:

gcloud container clusters update CLUSTER_NAME  \
    --enable-kubernetes-unstable-apis=LIST_OF_APIS \
    --location=CONTROL_PLANE_LOCATION

Asegúrate de que los nodos usen las APIs beta recién habilitadas

Algunas funciones beta requieren que la función también esté habilitada en el kubelet que se ejecuta en los nodos de trabajo.

Para usar estas funciones de la API beta recién habilitadas con cargas de trabajo que se ejecutan en los nodos de trabajador, GKE debe aplicar el cambio a los nodos:

  • En los nodos de los nuevos grupos de nodos Estándar y en los grupos de nodos de Autopilot, GKE habilita las APIs beta.
  • En el caso de los nodos nuevos y los nodos de grupos de nodos estándar, o de los grupos de nodos de Autopilot, GKE aplica el cambio cuando se vuelven a crear los nodos durante las actualizaciones de nodos u otros tipos de actualizaciones de nodos. Para aplicar el cambio inmediatamente a los nodos de un grupo de nodos de clúster estándar, puedes actualizar manualmente el grupo de nodos a una versión posterior de GKE. Si realizas una actualización en contexto, el cambio no se aplicará.

Inhabilitar APIs beta en un clúster

No puedes inhabilitar las APIs beta que ya estén habilitadas en un clúster. Las APIs beta siguen estando disponibles hasta que se retiran y el clúster se actualiza a la versión secundaria en la que se elimina la API. Para obtener más información, consulta Versiones beta de APIs obsoletas.

Comprobar qué APIs beta están habilitadas

Comprueba qué APIs beta están habilitadas en tu clúster de GKE:

gcloud container clusters describe CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --format="value(enableK8sBetaApis.enabledApis)"

Retiradas de APIs beta

Una vez que se habilita una API beta, permanece habilitada hasta que se deja de ofrecer y el clúster se actualiza a la versión secundaria en la que se elimina la API.

Las APIs beta suelen estar disponibles durante tres versiones secundarias antes de quedar obsoletas en favor de una nueva versión beta, una versión estable o sin sustitución. Las versiones beta de las APIs se eliminan tres versiones secundarias después de la obsolescencia. Si usas una API beta que se ha retirado y se eliminará en una próxima versión secundaria de Kubernetes, debes migrar a las APIs compatibles para que tu clúster se pueda actualizar a la versión secundaria en la que se elimine la API beta. Para obtener más información, consulta Cómo funcionan las obsolescencias de Kubernetes en GKE.

GKE facilita este proceso intentando detectar el uso de APIs de Kubernetes obsoletas. Si GKE detecta el uso de una API obsoleta, pausa las actualizaciones automáticas a la versión secundaria en la que se elimina esa API. GKE también comparte estadísticas y recomendaciones sobre las APIs obsoletas para informarte del uso que hace tu clúster de una API obsoleta y que puedas tomar medidas para que las actualizaciones continúen. Para obtener más información, consulta Evaluar y mitigar la exposición a las próximas obsolescencias de Kubernetes.

Consulta la tabla de APIs de Kubernetes obsoletas para ver una lista completa de las APIs obsoletas y si GKE detecta su uso.

Siguientes pasos