Come migrare lontano dalle app Kubernetes gestite da GitLab

0
176

GitLab Managed Apps era una caratteristica dell'integrazione Kubernetes della piattaforma che forniva l'installazione con un clic di app cluster comuni. Questa iterazione della funzionalità è stata deprecata durante il ciclo di rilascio di GitLab 13 e rimossa completamente nella versione 14.0 di giugno. Ecco come eseguire la migrazione delle tue app gestite a un modello di distribuzione supportato.

allontanamento dalle app gestite

gestite Le app sono state sviluppate per semplificare l'installazione e l'esecuzione di un nuovo cluster Kubernetes. GitLab ha fornito modelli per applicazioni come NGINX Ingress, Cert Manager e Prometheus.

Sono stati offerti due diversi metodi di installazione: one-click e CI/CD. Il metodo con un clic ha fornito un'interfaccia utente all'interno di GitLab che elencava le app disponibili e ti permetteva di fare clic per installare. Alcune app hanno anche esposto le impostazioni di configurazione di base. Il metodo CI/CD offriva un modello CI di GitLab per aggiungere app a un cluster come parte di una pipeline.

Le installazioni con un clic ora sono scomparse del tutto. Il metodo CI rimane funzionante ma è deprecato e verrà rimosso in GitLab 15.0. Sebbene le App gestite abbiano drasticamente semplificato l'installazione, sono state in grado di soddisfare solo questa fase del ciclo di vita del cluster. Le app sono state installate o disinstallate, quindi dovresti passare rapidamente ai normali strumenti di gestione Kubernetes per eseguire la manutenzione e la personalizzazione.

Nonostante la rimozione della funzionalità, le installazioni di App gestite esistenti continueranno a funzionare in GitLab 14.0. Puoi aggiornare GitLab in sicurezza senza preoccuparti dei tempi di inattività nel tuo cluster. Tuttavia, l'aggiornamento rimuoverà l'interfaccia utente delle app gestite, quindi non potrai visualizzare o disinstallare le app da GitLab.

Ottenere il controllo delle tue App

La migrazione da App gestite non richiede necessariamente alcuna azione immediata da parte tua. Poiché le tue app rimarranno operative, puoi lasciarle così come sono se sei soddisfatto che rimangano nello spazio dei nomi gitlab-managed-apps.

Pubblicità

Dato che le app sono semplicemente Helm distribuzioni nel tuo cluster, puoi gestirle utilizzando i binari della riga di comando kubectl e Helm. Verranno visualizzate come normali risorse Kubernetes.

Puoi elencare le risorse cluster che sono state installate da GitLab utilizzando questo comando Kubectl:

kubectl get all -n gitlab-managed-apps

Ciò ti consente di controllare cosa è in esecuzione nel tuo cluster in assenza delle vecchie “Applicazioni” di GitLab. pagina.

Potresti riscontrare problemi con le app installate da vecchi versioni di GitLab. Questi potrebbero essere stati aggiunti utilizzando Helm v2, che non è compatibile con i moderni client Helm v3. Se non sei sicuro di avere le app v2 installate, utilizza il seguente comando per verificare:

kubectl ottiene tutte le -n gitlab-managed-apps | grep 'helm.sh/release'

Le app che sono mostrate nell'output di questo comando sono state installate da Helm v3. Confronta l'elenco con il precedente comando get all per identificare le app aggiunte da Helm v2.

Pubblicità

Se risulta che le tue app utilizzano Helm v2, dovrai esaminare manualmente la guida alla migrazione di Helm per aggiornarle. Ti consigliamo di passare a Helm v3 se conserverai le app a lungo termine. In alternativa, l'installazione di Helm v2 sul tuo computer ti consentirà di interagire con le app per applicare correzioni e manutenzioni immediate.

Aggiornamento a Il nuovo modello di app cluster di GitLab

L'obiettivo prioritario delle app gestite – semplificazione della configurazione del cluster – non è stato completamente messo da parte da GitLab. GitLab 14.0 si concentra sui “progetti di gestione” come nuovo modello di distribuzione per il provisioning dei cluster.

GitLab fornisce un modello di progetto che puoi usare per installare app nei cluster Kubernetes. Questo risolve i problemi originali con le app gestite assicurandoti di avere il pieno controllo sui grafici Helm che vengono distribuiti. Cloni il modello, connetti il ​​progetto al tuo cluster, quindi modifica ed elimina i grafici delle singole app secondo necessità. L'esecuzione di una pipeline CI distribuirà le app selezionate nel tuo cluster.

È possibile migrare le App gestite esistenti nel formato del progetto di gestione. Ciò ti consente di continuare a utilizzarli utilizzando un approccio approvato da GitLab. Supponiamo che tu abbia già un cluster Kubernetes connesso alla tua istanza GitLab, in virtù delle tue implementazioni esistenti.

Inizia creando un nuovo progetto GitLab utilizzando il pulsante più in alto a destra. Fai clic su “Crea da modello”, quindi scorri verso il basso fino a “GitLab Cluster Management” modello. Fai clic sul pulsante “Usa modello” pulsante. Nella schermata successiva, dai un nome al tuo progetto e premi “Crea progetto.”

Il modello fornisce una serie di grafici Helm per distribuire le app nel tuo cluster. I grafici delle singole app sono archiviati nella directory delle applicazioni. Ogni app ottiene la propria sottodirectory.#

Pubblicità

Inizia modificando helmfile.yaml nella radice del tuo progetto, nell'IDE Web GitLab o clonando il repository usando Git. Questo file fa riferimento ai singoli modelli di applicazione. Abilita le applicazioni che stai utilizzando decommentando le righe pertinenti. In questo esempio, abbiamo precedentemente installato Ingress e Cert Manager come App gestite da GitLab, quindi li stiamo abilitando nel progetto di gestione del cluster.

Successivamente devi capire quale versione del grafico è già distribuita nel tuo cluster. Questo passaggio è importante per non sostituire involontariamente la tua app con una versione diversa.

Puoi ottenere la versione di un'app eseguendo helm ls -n gitlab-managed-apps. Cerca l'app nella tabella dei risultati e annota la versione visualizzata nella colonna GRAFICO. Questo prenderà il formato app-name-X.Y.Z; hai solo bisogno della parte X.Y.Z.

Torna al tuo nuovo progetto GitLab e apri il file helmfile.yaml associato all'applicazione, come ad esempio applications/ingress/helmfile.yaml. Modifica il campo della versione in modo che corrisponda alla versione che hai annotato.

Infine, sostituisci il default values.yaml con il tuo set esistente di valori Helm. Usa Helm per caricare la rappresentazione YAML del file dei valori della tua app:

helm get values ​​ingress -n gitlab-managed-apps -a –output yaml

Sostituisci l'ingresso con il nome della distribuzione della tua app. Copia l'intero output YAML e usalo per sovrascrivere il file application/ingress/values.yaml. Assicurati di regolare il percorso del file in modo che corrisponda alla tua app. Ora sei pronto per eseguire la distribuzione del progetto di gestione del cluster.

 

Annuncio

Una pipeline di distribuzione si avvierà automaticamente quando unisci le modifiche nel ramo predefinito (che di solito è principale per i nuovi progetti in GitLab 14.0). Usa Git per confermare le tue modifiche e unirle in:

git checkout -b mio ramo git add . git commit -m “Migra le app gestite da GitLab esistenti” git checkout main git merge mio ramo git push -u origin main

La pipeline verrà eseguita. Se le modifiche al modello erano corrette, non dovrebbe esserci alcun impatto sulle applicazioni in esecuzione. Alcuni metadati innocui potrebbero essere modificati man mano che cambia il meccanismo di distribuzione.

Ora sei pronto per utilizzare il progetto di gestione dei cluster per la manutenzione continua delle tue app. Ad esempio, puoi eseguire l'aggiornamento a una nuova versione di un'app modificando il campo della versione nel relativo file helmfile.yaml. L'unione della modifica in main richiederebbe a Helm di applicare le modifiche all'interno del tuo cluster.

Conclusione

GitLab Managed Apps ha aiutato molti utenti a muovere i primi passi con Kubernetes. Tuttavia, la semplicità della funzione alla fine si è rivelata troppo limitante, quindi ora viene rimossa in un processo in più fasi.

Fortunatamente, è abbastanza semplice completare la migrazione da App gestite. Non c'è niente di speciale in loro – sono semplicemente distribuzioni Helm regolari che si trovano nello spazio dei nomi gitlab-managed-apps del tuo cluster. Ciò significa che i tuoi carichi di lavoro rimarranno disponibili anche se esegui l'upgrade a GitLab 14.0, lasciandoti libero di eseguire la transizione secondo i tuoi ritmi.

In futuro, i progetti di gestione dei cluster sono l'approccio preferito per utilizzare GitLab per installare app popolari su Kubernetes. Anche se tecnicamente un po' più impegnativo, questo modello ti offre molto più controllo e ti aiuta a gestire la tua infrastruttura come codice.

p