Questa pagina spiega come preparare i cluster per gli upgrade a GKE Versione 1.25. Puoi trovare i client API che effettuano chiamate alle API ritirate e rimosse nel 1,25 e aggiornare i client in modo che utilizzino le API GA. Per informazioni più dettagliate, consulta Migrazione delle API deprecate per Kubernetes .
API rimosse nella versione 1.25
La maggior parte delle API deprecate nella versione 1.25 di Kubernetes sono ex API beta che sono state successivamente promosse dalla versione beta (ad es. v1beta1
) alla versione GA (ad es. v1
). Le API GA forniscono garanzie di compatibilità a lungo termine e devono essere utilizzate al posto delle API beta deprecate.
È possibile interagire con tutti gli oggetti esistenti per le API che sono state trasferite a GA utilizzando le API GA.
EndpointSlice
La versione beta (discovery.k8s.io/v1beta1
) di EndpointSlice
non è
non è più disponibile a partire dalla versione 1.25. Questa API è stata deprecata nella versione 1.21.
- Esegui la migrazione di manifest e client API per utilizzare l'API
discovery.k8s.io/v1
completamente gestita. Per le modifiche importanti dell'API GA, consulta la seguente tabella. versione:
Campo Cambia endpoints[*].topology["kubernetes.io/hostname"]
Usa endpoints[*].nodeName
.endpoints[*].topology["topology.kubernetes.io/zone"]
Usa endpoints[*].zone
.endpoints[*].topology
Sostituito con endpoints[*].deprecatedTopology
, che non è scrivibile nella versione 1.
PodDisruptionBudget
La versione beta (policy/v1beta1
) di PodDisruptionBudget
non è più
a partire dalla versione 1.25. Questa API è stata deprecata nella versione 1.21.
- Esegui la migrazione dei manifest e dei client API per utilizzare la versione dell'API
policy/v1
. Per le modifiche importanti dell'API GA, consulta la seguente tabella. versione:
Campo Cambia spec.selector
Un valore vuoto ( {}
) scritto in unpolicy/v1 PodDisruptionBudget
seleziona tutti i pod nella nello spazio dei nomi. Un valore non impostato non seleziona comunque nessun pod.
CronJob
La versione beta (batch/v1beta1
) di CronJob
non viene più pubblicata a partire dal
Versione 1.25. Questa API è stata deprecata nella versione 1.21. Esegui la migrazione dei manifest e dei client API in modo che utilizzino la versione dell'API batch/v1
.
PodSecurityPolicy
La versione beta (policy/v1beta1
) di PodSecurityPolicy
non è più
a partire dalla versione 1.25. Questa API è stata deprecata nella versione 1.21.
Per ulteriori informazioni, vedi Ritiro di PodSecurityPolicy.
RuntimeClass
La versione beta dell'API (node.k8s.io/v1beta1
) di RuntimeClass
non è più supportata a partire dalla versione 1.25. Questa API è stata deprecata nella versione 1.20. Esegui migrazione
e client API per utilizzare la versione API node.k8s.io/v1
.
Eventi
La versione beta (events.k8s.io/v1beta1
) di Events
non è più
a partire dalla versione 1.25. Questa API è stata deprecata nella versione 1.19.
- Esegui la migrazione dei manifest e dei client API per utilizzare la versione dell'API
v1
o Versione APIevents.k8s.io/v1
. Per le modifiche importanti dell'API GA, consulta la seguente tabella. versione:
Campo Cambia type
Limitato a Normal
eWarning
.involvedObject
Rinominato in regarding
.action
,reason
ereportingController
ereportingInstance
Questi campi sono ora obbligatori durante la creazione degli eventi. firstTimestamp
Rinominato in deprecatedFirstTimestamp
e non più consentiti nei nuovi eventi. Usa invece il criterioeventTime
.lastTimestamp
Rinominato in deprecatedLastTimestamp
e non più consentiti nei nuovi eventi. Usaseries.lastObservedTime
.count
Rinominato in deprecatedCount
e non più consentito nei nuovi eventi. Utilizza inveceseries.count
.source.component
Rinominato in deprecatedSource.component
e non più consentiti nei nuovi eventi. Utilizza invecereportingController
.source.host
Rinominato in deprecatedSource.host
e non più consentito nei nuovi eventi. Usa invece il criterioreportingInstance
.
HorizontalPodAutoscaler
La versione beta (autoscaling/v2beta1
) di HorizontalPodAutoscaler
è
non è più disponibile a partire dalla versione 1.25. Questa API è stata deprecata nella versione 1.23.
Esegui la migrazione dei manifest e dei client API per utilizzare
Versione API autoscaling/v2 HorizontalPodAutoscaler
.
Preparazione dell'upgrade alla versione 1.25
Non è necessario eliminare e ricreare gli oggetti API. Tutti gli oggetti API esistenti memorizzati per le API che sono state trasferite a GA possono già essere letti e aggiornati utilizzando le nuove versioni dell'API.
Tuttavia, ti consigliamo di eseguire la migrazione di client e manifest prima di Kubernetes 1.25. Per saperne di più, consulta la Guida alla migrazione delle API deprecate per Kubernetes.
Puoi visualizzare approfondimenti e consigli sul ritiro per determinare se il cluster utilizza API Kubernetes 1.25 deprecate. GKE genera insight sul ritiro quando gli user agent richiamano le API deprecate, non dalla configurazione degli oggetti Kubernetes.
Trovare i cluster che utilizzano API obsolete
Puoi scoprire quali cluster utilizzano API ritirate dagli approfondimenti sul ritiro. Ritiro Gli insight forniscono anche informazioni quali i client API che chiamano le API deprecate nel tuo cluster.
Puoi anche utilizzare i log di controllo per sapere quali client effettuano chiamate all'ambiente deprecato su quelle di livello inferiore.
Individua client API che effettuano chiamate di scrittura ad API deprecate
Per i cluster in cui è attivata l'osservabilità di Google Cloud, puoi utilizzare la seguente query del log di controllo delle attività amministrative per mostrare l'utilizzo di API ritirate da agenti utente non gestiti da 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:")
Sostituisci DEPRECATED_API_MINOR_VERSION
con il minorenne
versione in cui l'API deprecata viene rimossa, ad esempio 1.22
.
Gli audit log per le attività di amministrazione vengono abilitati automaticamente per GKE cluster. Con questa query, i log mostrano gli user agent che effettuano chiamate di scrittura le API ritirate.
Individua i client API che effettuano chiamate di lettura alle API deprecate
Per impostazione predefinita, i log di controllo mostrano solo le chiamate di scrittura alle API ritirate. Per inoltre visualizza le chiamate di lettura alle API deprecate e configura gli audit log di accesso ai dati.
Segui le istruzioni per configurare gli audit log di accesso ai dati con la console Google Cloud. Nella console Google Cloud,
seleziona l'API Kubernetes Engine. Nella scheda Tipi di log del riquadro delle informazioni,
seleziona Admin Read
e Data Read
.
Con questi log abilitati, ora puoi utilizzare la query originale per visualizzare sia le letture e scrivere chiamate alle API ritirate.
Eseguire l'upgrade dei componenti di terze parti
Gli approfondimenti sul ritiro potrebbero mostrare risultati per gli agenti di terze parti che effettuano chiamate alle API ritirate nel tuo cluster.
Per risolvere i problemi relativi agli agenti di terze parti che richiamano API ritirate, consigliamo di seguire le seguenti best practice:
- Rivolgiti al tuo fornitore del software di terze parti per avere una versione aggiornata.
- Esegui l'upgrade del software di terze parti alla versione più recente. Se non puoi eseguire l'upgrade devi verificare se è necessario eseguire l'upgrade di GKE con le API deprecate rimosse interrompere il servizio.
Ti consigliamo di eseguire questo upgrade e la versione GKE eseguire l'upgrade di un cluster di gestione temporanea per monitorare le interruzioni prima di eseguire l'upgrade cluster di produzione.
Aggiorna i cluster interessati dai ritiri
Per eseguire l'upgrade dei cluster interessati dai ritiri, segui questi passaggi:
- Controlla quali user agent utilizzano le API deprecate nella log.
- Aggiorna gli user agent che utilizzano le API deprecate in modo che utilizzino l'API supportata e versioni successive.
- Aggiornare all'ultima versione qualsiasi software di terze parti che chiama le API ritirate e versioni successive.
- Esegui l'upgrade di un cluster di test e testa la tua applicazione in un ambiente di test prima di eseguire l'upgrade del cluster di produzione per ridurre il rischio di interruzioni quando le API deprecate non sono più disponibili.
- Se non riesci ad aggiornare uno user agent interessato, esegui l'upgrade di un cluster di test distinto per verificare se l'upgrade causa interruzioni. Se l'upgrade non causa e interruzioni, eseguire l'upgrade manuale del cluster.
- Dopo aver aggiornato tutti gli user agent, GKE attende che non ha più osservato l'utilizzo di API deprecate per 30 giorni e poi sblocca upgrade automatici. Gli upgrade automatici vengono eseguiti in base programma delle release.
Risorse
Ulteriori informazioni sono disponibili nella documentazione di Kubernetes sul software open source:
- Blog di Kubernetes: rimozioni e principali cambiamenti di Kubernetes nella versione 1.25
- Note di rilascio di Kubernetes 1.25
- Guida alla migrazione delle API deprecate per Kubernetes