Utilizzare le API Kubernetes beta con i cluster GKE


Utilizza le API beta di Kubernetes per accedere alle nuove funzionalità nei tuoi cluster Google Kubernetes Engine (GKE). Per utilizzare le API beta introdotte con la versione 1.24 o successive, configura le API beta.

Come vengono introdotte nuove funzionalità con l'API Kubernetes

I cluster GKE sono costituiti da un control plane e nodi worker. Il control plane espone il server API, che espone l'API Kubernetes in modo che gli utenti finali, insieme ai componenti interni ed esterni, possano comunicare. Questa API si evolve nel tempo, con nuove funzionalità introdotte nelle fasi alpha o beta e poi eventualmente promosse alla disponibilità generale (GA) o ritirate e rimosse nelle versioni secondarie più recenti.

Puoi utilizzare le API alpha solo con i cluster alpha, ma puoi utilizzare le API beta con tutti i tipi di cluster GKE. A partire dalla versione 1.24 di Kubernetes, le nuove API beta sono disabilitate per impostazione predefinita nei nuovi cluster. I cluster esistenti creati con una versione precedente alla 1.24 mantengono abilitate le API beta esistenti, in quanto le API beta abilitate automaticamente (introdotte prima della versione 1.24) o abilitate manualmente (introdotte nella versione 1.24 o successive) non possono essere disabilitate nei cluster esistenti. Per tutti i cluster, le API beta esistenti introdotte prima della versione 1.24 rimangono abilitate per impostazione predefinita e anche le nuove versioni delle API beta esistenti rimangono abilitate per impostazione predefinita.

Ad esempio, se un'API v1beta1 è stata introdotta nella versione 1.22 di Kubernetes, in Kubernetes versione 1.25 viene introdotta una nuova versione di questa API beta, ad esempio v1beta3, e l'API viene abilitata automaticamente. Ciò accade perché si tratta di una nuova versione di un'API beta esistente, non di un'API beta completamente nuova. Tuttavia, una nuova API beta con la versione v1beta1 introdotta in Kubernetes versione 1.24 o successiva è disabilitata per impostazione predefinita.

Per utilizzare le API beta introdotte con la versione 1.24 e successive, devi configurare le API beta per risorsa per cluster. Puoi abilitare le API durante la creazione del cluster o per un cluster esistente. Per vedere quali API beta sono disponibili per la versione secondaria del tuo cluster, consulta le API beta disponibili.

Una volta abilitata, un'API beta rimane abilitata finché non viene ritirata e il cluster non viene sottoposto all'upgrade alla versione secondaria in cui l'API viene rimossa. Per vedere quali API beta sono abilitate nel cluster, consulta Controllare quali API beta sono abilitate.

API beta di Kubernetes e gate di funzionalità di Kubernetes

I feature gate sono un meccanismo distinto per l'attivazione delle funzionalità dalle API Kubernetes e sono gestiti in modo diverso dai cluster GKE. Alcune API Kubernetes e alcuni gate di funzionalità Kubernetes funzionano insieme. Assicurati di comprendere la connessione tra funzionalità specifiche e API. Per ulteriori informazioni, consulta Feature gates.

API beta disponibili

Puoi abilitare un sottoinsieme di API beta Kubernetes per i tuoi cluster GKE. Altre API beta non sono disponibili per motivi quali:

  • L'API beta si basa su funzionalità Kubernetes non GA.
  • L'API beta non è sicura.
  • L'API beta non è compatibile con Autopilot.

Consulta la tabella seguente per le API beta e la versione secondaria corrispondente in cui sono state introdotte:

Versione di Kubernetes API beta aggiunte con questa versione secondaria di Kubernetes Disponibile con GKE Note
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

Devi abilitare tutte le API resource.k8s.io elencate contemporaneamente e devi assicurarti che i nodi utilizzino le API beta appena abilitate. In questo modo viene abilitata la funzionalità beta di allocazione dinamica delle risorse di Kubernetes in un cluster GKE. Per saperne di più, consulta Allocazione dinamica delle risorse.

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

Devi abilitare entrambe le API networking.k8s.io contemporaneamente e devi assicurarti che i nodi utilizzino le API beta appena abilitate. In questo modo viene attivata la funzionalità beta CIDR di più servizi di Kubernetes in un cluster GKE che esegue la versione 1.31.1-gke.1361000 o successive. Per maggiori dettagli, consulta le note di rilascio di GKE del 4 ottobre 2024.

1.29
  • Nessuno
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
Devi abilitare entrambe le API contemporaneamente. In questo modo viene attivata la funzionalità beta Validating Admission Policy.
1.28
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
  • Nessuno
1.27
  • authentication.k8s.io/v1beta1/selfsubjectreviews
  • authentication.k8s.io/v1beta1/selfsubjectreviews

Considerazioni prima di utilizzare le API beta

Le API beta di Kubernetes sono soggette alle norme di ritiro di Kubernetes. Quando un'API beta viene ritirata, devi interromperne l'utilizzo. Per saperne di più, vedi Ritiri delle API beta.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Attiva l'API Google Kubernetes Engine.
  • Attiva l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installala e poi inizializzala. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo gcloud components update.

Configurare le API beta

Le API beta sono abilitate per risorsa per cluster. Puoi abilitare le API quando crei un cluster o per un cluster esistente.

Per elencare una risorsa API beta per questi comandi, utilizza la rappresentazione {group}/{version}/{resource}. La versione deve essere una versione beta. Un esempio di questa rappresentazione valida è authentication.k8s.io/v1beta1/selfsubjectreviews.

Per i comandi nella sezione successiva, sostituisci le seguenti variabili:

  • CLUSTER_NAME: il nome del cluster che vuoi aggiornare.
  • LIST_OF_APIS: l'elenco delle API beta che vuoi attivare, in un elenco separato da virgole.
  • CONTROL_PLANE_LOCATION: la posizione di Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.

Crea un nuovo cluster con le API beta abilitate

Crea un nuovo cluster con un elenco di API beta abilitate:

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

Abilitare le API beta su un cluster esistente

Abilita un elenco di API beta su un cluster esistente:

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

Assicurati che i nodi utilizzino le API beta appena abilitate

Alcune funzionalità beta richiedono che la funzionalità sia attivata anche sul kubelet in esecuzione sui nodi worker.

Per utilizzare queste funzionalità API beta appena attivate con i carichi di lavoro in esecuzione sui nodi di lavoro, GKE deve applicare la modifica ai nodi:

  • Per i nodi nei nuovi node pool Standard e nei gruppi di nodi Autopilot, GKE abilita le API beta.
  • Per i nodi nuovi ed esistenti nei node pool Standard esistenti o per i gruppi di nodi esistenti in Autopilot, GKE applica la modifica quando i nodi vengono ricreati durante gli upgrade dei nodi o altri tipi di aggiornamenti dei nodi. Per applicare immediatamente la modifica ai nodi esistenti in un pool di nodi del cluster Standard, puoi eseguire l'upgrade manuale del node pool a una versione GKE successiva. L'esecuzione di un upgrade in loco non applica la modifica.

Disabilita le API beta su un cluster esistente

Non puoi disabilitare le API beta già abilitate su un cluster. Le API beta rimangono disponibili finché non vengono ritirate e il cluster non viene aggiornato alla versione secondaria in cui l'API viene rimossa. Per saperne di più, consulta Ritiri delle API beta.

Controlla quali API beta sono abilitate

Controlla quali API beta sono abilitate per il tuo cluster GKE:

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

Ritiri delle API beta

Una volta attivata, un'API beta rimane attiva finché non viene ritirata e il cluster non viene aggiornato alla versione secondaria in cui l'API viene rimossa.

Le API beta sono in genere disponibili per tre versioni secondarie prima di essere ritirate a favore di una nuova versione beta, di una versione stabile o senza sostituzione. Le versioni beta delle API vengono rimosse tre versioni secondarie dopo il ritiro. Se utilizzi un'API beta che è stata ritirata e rimossa in una versione secondaria di Kubernetes imminente, devi eseguire la migrazione alle API supportate in modo che il cluster possa essere sottoposto all'upgrade alla versione secondaria in cui l'API beta è rimossa. Per saperne di più, consulta la pagina Come funzionano i ritiri di Kubernetes con GKE.

GKE semplifica questo processo tentando di rilevare l'utilizzo delle API Kubernetes deprecate. Se GKE rileva l'utilizzo di un'API ritirata, mette in pausa gli upgrade automatici alla versione secondaria in cui viene rimossa l'API. GKE condivide anche approfondimenti e consigli sul ritiro per informarti dell'utilizzo di un'API ritirata da parte del tuo cluster, in modo che tu possa intervenire per consentire il proseguimento degli upgrade. Per scoprire di più, consulta Valutare e ridurre l'esposizione alle prossime deprecazioni di Kubernetes.

Consulta la tabella delle deprecazioni dell'API Kubernetes per un elenco completo delle API deprecate e per sapere se GKE rileva l'utilizzo.

Passaggi successivi