Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Come controllare la versione di Config Connector sul cluster GKE

By Eyal ZekariaJun 2, 20224 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

Config Connector è uno strumento eccellente per gestire le risorse Google Cloud tramite manifest Kubernetes. Le mostriamo come ottenere un controllo più puntuale sostituendo l'installazione come add-on con una manuale.

Config-Connector

Per un controllo più puntuale della versione di Config Connector, sostituisca l'installazione come add-on con una manuale

Con Config Connector può gestire le risorse GCP tramite manifest Kubernetes. È un ottimo strumento sviluppato da Google e disponibile come installazione add-on sui cluster GKE ( che soddisfano i requisiti). Ecco alcuni dei suoi vantaggi e casi d'uso:

  • Creare l'infrastruttura sottostante per un servizio distribuito su GKE usando le stesse pipeline e gli stessi paradigmi (si tratta semplicemente di manifest YAML aggiuntivi)
  • Usare un cluster centrale di "controllo" per avviare altri cluster, realizzando di fatto Infrastructure as Code tramite Kubernetes
  • Avviare infrastrutture (ad esempio ambienti di sviluppo o persino un nuovo cluster di produzione) con un singolo kubectl apply

Config Connector funziona distribuendo un Operator StatefulSet (configconnector-operator-system/configconnector-operator), che a sua volta crea tutte le risorse CustomResourceDefinition (CRD) e tutti i workloads di supporto nel namespace cnrm-system.

Poiché Config Connector è in costante evoluzione, le nuove funzionalità arrivano spesso con il rilascio di nuove versioni (un nuovo tipo di risorsa gestibile da Config Connector o anche un campo aggiunto a una CRD). Purtroppo la versione di Config Connector installata tramite l'add-on di GKE è vincolata alla versione master di GKE. Questo significa che, per aggiornare la versione di Config Connector installata dall'add-on, dovrà aggiornare la versione di GKE (almeno alla minor successiva), cosa non sempre auspicabile. Inoltre, la versione inclusa è di solito indietro di qualche release rispetto all'ultima disponibile di Config Connector: anche dopo l'aggiornamento, quindi, potrebbe non avere a disposizione una nuova funzionalità o una correzione presente nell'ultima versione.

Dai test effettuati, posso confermare che con l'add-on di GKE vengono installate le seguenti versioni di Config Connector:

  • v1.69.0 per GKE 1.21.x
  • v1.71.0 per GKE 1.22.x

L'ultima versione di Config Connector al momento della stesura di questo articolo è la v1.83.0.

Installazione manuale

Per avere un controllo migliore sulla versione di Config Connector su un cluster GKE, può sostituire l'installazione come add-on con un'installazione manuale [1]. Tenga presente che, così facendo, la responsabilità dell'aggiornamento di Config Connector passa a lei, perché non verrà più aggiornato automaticamente insieme al cluster GKE.

Sostituire l'installazione come add-on con una manuale

1. disabiliti l'installazione come add-on sul cluster:

gcloud container clusters update <CLUSTER_NAME> --update-addons ConfigConnector=DISABLED

2. elimini lo StatefulSet dell'operator di Config Connector:

kubectl -nconfigconnector-operator-system delete statefulset configconnector-operator

  1. 3. installi l'ultima versione (o quella che desidera) dell'operator di Config Connector seguendo la documentazione [2]

Con questa procedura tutte le CRD restano intatte, così come l'oggetto ConfigConnector [3]: anche le risorse create con Config Connector non subiranno modifiche.

Verifichi che il nuovo pod dell'operator stia eseguendo la versione desiderata:

$ kubectl -nconfigconnector-operator-system get statefulsets configconnector-operator -oyaml |grep operator-version | head -n1

cnrm.cloud.google.com/operator-version: 1.83.0

e che abbia ricreato tutti i workloads in esecuzione nel namespace cnrm-system (la riconciliazione potrebbe richiedere un paio di minuti):

$ kubectl -ncnrm-system get po -oyaml |grep /version

  cnrm.cloud.google.com/version: 1.83.0

  cnrm.cloud.google.com/version: 1.83.0

  cnrm.cloud.google.com/version: 1.83.0

  cnrm.cloud.google.com/version: 1.83.0

D'ora in poi, per aggiornare Config Connector dovrà procedere manualmente come descritto nella documentazione [4].

Tornare all'installazione come add-on

Se aggiorna il cluster GKE a una versione che include nell'add-on la versione desiderata di Config Connector, può tornare all'installazione tramite add-on e affidare nuovamente la gestione a GKE.

La procedura ricalca al contrario le istruzioni precedenti:

  1. abiliti l'add-on di Config Connector sul cluster:

gcloud container clusters update <CLUSTER_NAME> --update-addons ConfigConnector=ENABLED

  1. elimini lo StatefulSet dell'operator di Config Connector:

kubectl -nconfigconnector-operator-system delete statefulset configconnector-operator

Tenendo d'occhio i pod nel namespace configconnector-operator-system, vedrà che il pod dell'operator viene riavviato (perché lo StatefulSet viene ricreato dall'add-on) ed esegue la versione gestita dall'add-on stesso. Anche i workloads nel namespace cnrm-system verranno sostituiti durante il primo ciclo di riconciliazione dell'operator.

[1] https://cloud.google.com/config-connector/docs/how-to/advanced-install#manual

[2] https://cloud.google.com/config-connector/docs/how-to/advanced-install#installing_the_operator

[3] https://cloud.google.com/config-connector/docs/how-to/install-upgrade-uninstall#addon-configuring

[4] https://cloud.google.com/config-connector/docs/how-to/advanced-install#upgrading