Come vengono introdotte le nuove funzionalità con l'API Kubernetes
I cluster GKE sono costituiti da un piano di controllo e da nodi worker. Il piano di controllo 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 stages, e poi passare alla disponibilità generale (GA) o essere 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, una nuova versione di questa API beta, ad esempio v1beta3, viene introdotta nella versione 1.25 di Kubernetes e l'API viene abilitata automaticamente. Questo 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 nella versione 1.24 o successive di Kubernetes è 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 cluster, consulta le API beta disponibili.
Dopo aver abilitato un'API beta, questa 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 feature gate di Kubernetes
I feature gate sono un meccanismo distinto per l'abilitazione delle funzionalità dalle API Kubernetes e sono gestiti in modo diverso dai cluster GKE. Alcune API Kubernetes e alcuni feature gate di Kubernetes funzionano insieme. Assicurati di comprendere la connessione tra API e feature gate specifici. Per saperne di più, consulta Feature gate.
API beta disponibili
Puoi abilitare un sottoinsieme di API beta di Kubernetes per i tuoi cluster GKE. Altre API beta non sono disponibili per motivi quali:
- L'API beta si basa su funzionalità di 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 |
|
|
Devi abilitare contemporaneamente tutte le API |
| 1.31 |
|
|
Devi abilitare contemporaneamente entrambe le API |
| 1.29 |
|
|
Devi abilitare entrambe le API contemporaneamente. In questo modo viene abilitata la funzionalità beta di policy di ammissione di convalida. |
| 1.28 |
|
|
|
| 1.27 |
|
|
Considerazioni prima di utilizzare le API beta
Le API beta di Kubernetes sono soggette alla policy di ritiro di Kubernetes. Quando un'API beta viene ritirata, devi interromperne l'utilizzo. Per saperne di più, consulta Ritiri delle API beta.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
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 abilitare, in un elenco separato da virgole.CONTROL_PLANE_LOCATION: la località di Compute Engine del piano di controllo del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Creare 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 in un cluster esistente
Abilita un elenco di API beta in un cluster esistente:
gcloud container clusters update CLUSTER_NAME \
--enable-kubernetes-unstable-apis=LIST_OF_APIS \
--location=CONTROL_PLANE_LOCATION
Assicurarsi che i nodi utilizzino le API beta appena abilitate
Alcune funzionalità beta richiedono che la funzionalità sia abilitata anche sul kubelet in esecuzione sui nodi worker.
Per utilizzare queste funzionalità API beta appena abilitate con i carichi di lavoro in esecuzione sui nodi worker, 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 nei 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 di un cluster standard, puoi eseguire manualmente l'upgrade del node pool a una versione GKE successiva. L'esecuzione di un upgrade in loco non applica la modifica.
Disabilitare le API beta in un cluster esistente
Non puoi disabilitare le API beta già abilitate in un cluster. Le API beta rimangono disponibili finché non vengono ritirate e il cluster non viene sottoposto all'upgrade alla versione secondaria in cui l'API viene rimossa. Per saperne di più, consulta Ritiri delle API beta.
Controllare 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 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.
Le API beta sono in genere disponibili per tre versioni secondarie prima di essere ritirate a favore di una nuova versione beta, una versione stabile o senza sostituzione. Le versioni delle API beta vengono rimosse tre versioni secondarie dopo il ritiro. Se utilizzi un'API beta che è stata ritirata e verrà rimossa in una versione secondaria di Kubernetes futura, 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 viene rimossa. Per saperne di più, consulta Come funzionano i ritiri di Kubernetes con GKE.
GKE semplifica questo processo tentando di rilevare l'utilizzo delle API Kubernetes ritirate. Se GKE rileva l'utilizzo di un' API ritirata, mette in pausa gli upgrade automatici alla versione secondaria in cui l'API viene rimossa. GKE condivide anche informazioni e consigli sul ritiro per informarti dell'utilizzo di un'API ritirata da parte del cluster, in modo che tu possa intraprendere azioni per consentire la continuazione degli upgrade. Per saperne di più, consulta Valutare e mitigare l'esposizione ai prossimi ritiri di Kubernetes.
Consulta la tabella dei ritiri delle API Kubernetes per un elenco completo delle API ritirate e per verificare se GKE rileva l'utilizzo.