Usa las APIs beta de Kubernetes con clústeres de GKE


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

Cómo se implementan las características nuevas con la API de Kubernetes

Los clústeres de GKE constan de un plano de control y nodos trabajadores. El plano de control expone el servidor de API, que expone la API de Kubernetes para que puedan comunicarse los usuarios finales junto con los componentes internos y externos. Esta API evoluciona con el tiempo, y se incluyen nuevas funciones en fase alfa o beta y, luego, pasan a disponibilidad general (DG) o se dan de baja y se quitan en versiones secundarias más nuevas.

Solo puedes usar las APIs alfa con clústeres alfa, pero puedes usar las APIs beta con todos los tipos de clústeres de GKE. A partir de la versión 1.24 de Kubernetes, las APIs beta nuevas están inhabilitadas de forma predeterminada en clústeres nuevos. Los clústeres existentes creados para versiones anteriores a 1.24 mantienen las APIs beta existentes habilitadas, como se habilitan automáticamente (agregadas antes de la versión 1.24) o las APIs beta habilitadas de forma manual (agregadas a la versión 1.24 o posterior) no se puede inhabilitar en los clústeres existentes. Para todos los clústeres, las APIs beta existentes ingresadas antes de la versión 1.24 permanecen habilitadas de forma predeterminada, y las nuevas versiones de las APIs beta existentes también están habilitadas de forma predeterminada.

Por ejemplo, si se ingresó una API v1beta1 en la versión 1.22 de Kubernetes, se ingresa una versión nueva de esta API beta, como v1beta3, en la versión 1.25 de Kubernetes, la API se ingresa automáticamente. habilitado. Esto sucede porque es una versión nueva de una API beta existente, no de una API beta completamente nueva. Sin embargo, una API beta nueva con la versión v1beta1 ingresada en la versión 1.24 de Kubernetes o una posterior está inhabilitada de forma predeterminada.

Para usar las APIs beta con la versión 1.24 y posteriores, debes configurar las APIs en fase beta por recurso y por clúster. Puedes habilitar las APIs durante la creación del clúster o para uno existente. Si quieres ver qué APIs en fase beta están disponibles para la versión secundaria de tu clúster, consulta las APIs en fase beta disponibles.

Después de habilitar una API beta, permanece habilitada hasta que esta API esté obsoleta y el clúster se actualice a la versión secundaria en la que se quita la API. Para ver qué API en fase beta está habilitada para tu clúster, consulta Verifica las APIs en fase beta habilitadas.

APIs Beta disponibles

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

  • La API Beta se basa en funciones de Kubernetes que no son de disponibilidad general.
  • La API Beta no es segura.
  • La API Beta no es compatible con Autopilot.

Consulta la siguiente tabla para las APIs Beta y la versión secundaria correspondiente en la que se ingresaron:

Versión de Kubernetes APIs Beta agregadas con esta versión secundaria de Kubernetes Disponible con GKE Notas
1.29
  • Ninguna
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
Debes habilitar ambas APIs al mismo tiempo. Esto habilita la función beta de la política de admisión y validación.
1.28
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
  • Ninguna
1.27
  • authentication.k8s.io/v1beta1/selfsubjectreviews
  • authentication.k8s.io/v1beta1/selfsubjectreviews

Consideraciones antes de usar las APIs beta

Las APIs de Kubernetes Beta están sujetas a la Política de baja de Kubernetes. Cuando una API beta está obsoleta, debes dejar de usarla. Para obtener más información, consulta Bajas de la API beta.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Configura las APIs beta

Las APIs beta están habilitadas por recurso por clúster. Puedes habilitar las APIs cuando creas un clúster o un clúster existente.

Si deseas enumerar un recurso de la API beta para 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.

Para los comandos de la siguiente sección, reemplaza las siguientes variables:

  • CLUSTER_NAME: Es el nombre del clúster que deseas actualizar.
  • LIST_OF_APIS: Es la lista de las APIs beta que deseas habilitar, en una lista separada por comas.
  • COMPUTE_REGION: La región de Compute Engine del clúster nuevo. Para los clústeres zonales, usa --zone=COMPUTE_ZONE.

Crea un clúster nuevo con las APIs beta habilitadas

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

gcloud container clusters create-auto CLUSTER_NAME  \
    --enable-kubernetes-unstable-apis=LIST_OF_APIS \
    --region=COMPUTE_REGION

Habilita las APIs beta en un clúster existente

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

gcloud container clusters update CLUSTER_NAME  \
    --enable-kubernetes-unstable-apis=LIST_OF_APIS \
    --region=COMPUTE_REGION

Inhabilita las APIs beta en un clúster existente

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

Verifica qué APIs beta están habilitadas

Verifica qué APIs beta están habilitadas para tu clúster de GKE:

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

Bajas de APIs beta

Una vez que se habilita una API beta, esta permanece habilitada hasta que la API beta queda obsoleta y el clúster se actualiza a la versión secundaria en la que se quita la API.

Por lo general, las APIs beta están disponibles para tres versiones secundarias antes de que estén obsoletas y se reemplazan por una versión beta nueva, una versión estable o sin reemplazo. Las versiones de APIs beta se quitan tres versiones secundarias después de la baja. Si usas una API Beta que está obsoleta y se quita en una próxima versión secundaria de Kubernetes, debes migrar a las APIs compatibles a fin de que tu clúster se pueda actualizar a la versión secundaria en la que está la API beta quitada. Para obtener más información, consulta Cómo funcionan las bajas de Kubernetes con GKE.

GKE facilita este proceso intentando detectar el uso de las APIs de Kubernetes obsoletas. Si GKE detecta el uso de una API obsoleta, detiene las actualizaciones automáticas a la versión secundaria en la que se quita esa API. GKE también comparte estadísticas y recomendaciones de baja para notificarte sobre el uso de una API obsoleta del clúster a fin de que puedas tomar medidas para permitir que las actualizaciones continúen. Para obtener más información, consulta Evalúa y mitiga la exposición a las próximas bajas de Kubernetes.

Consulta la tabla de bajas de la API de Kubernetes para obtener una lista completa de las APIs obsoletas y si GKE detecta el uso.

¿Qué sigue?