Scopri come creare un ConfigMap e poi configurare i servizi e le revisioni di Knative Serving per utilizzare questo ConfigMap.
Un caso d'uso comune per un servizio è l'utilizzo di ConfigMap per separare il codice dell'applicazione dalla configurazione. ConfigMap è simile a Secret, tranne per il fatto che utilizzi un secret per le informazioni sensibili e un ConfigMap per archiviare dati non sensibili come stringhe di connessione, credenziali pubbliche, nomi host e URL. Puoi scoprire di più sull'utilizzo di ConfigMap nella documentazione di Google Kubernetes Engine.
Quando abiliti i container ad accedere ai ConfigMap, puoi scegliere una delle seguenti opzioni:
- Monta ConfigMap come volume, con le voci di ConfigMap disponibili come file nel volume montato. Questa operazione è consigliata perché ti assicura di ottenere l'ultima versione di ConfigMap durante la lettura.
- Passa ConfigMap utilizzando le variabili di ambiente.
Creazione di un oggetto ConfigMap
Esistono diversi modi per creare un ConfigMap, come descritto nella pagina ConfigMaps della documentazione di GKE. Per comodità, i seguenti passaggi mostrano un modo semplice per creare un oggetto ConfigMap.
Quando crei un ConfigMap, assicurati di crearlo nello stesso spazio dei nomi del cluster che esegue il servizio Knative serving. Queste istruzioni utilizzano lo spazio dei nomi default
.
Puoi creare un oggetto ConfigMap dalla riga di comando:
kubectl create configmap NAME DATA
Sostituisci:
- NAME è il nome dell'oggetto ConfigMap.
DATA può essere:
- Il flag
--from-file
e il percorso di ogni directory che contiene uno o più file di configurazione. - Il flag
--from-literal
e la coppia chiave-valore per ciascuno che vuoi aggiungere a ConfigMap.
- Il flag
Ad esempio:
kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
ConfigMap viene creato e caricato dove è disponibile per i cluster nello spazio dei nomi default
.
Rendere disponibile un ConfigMap a un servizio
Dopo aver creato un ConfigMap, puoi renderlo disponibile per il servizio Knative Serving come volume o come variabili di ambiente utilizzando la console Google Cloud o Google Cloud CLI quando esegui il deployment di un nuovo servizio o aggiorni un servizio esistente ed esegui il deployment di una revisione:
Console
Vai a Knative Serving nella console Google Cloud :
Fai clic su Crea servizio se stai configurando un nuovo servizio di cui stai eseguendo il deployment. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Modifica ed esegui il deployment di una nuova revisione.
In Impostazioni avanzate, fai clic su Variabili e secret.
In Riferimento a ConfigMap, seleziona la ConfigMap desiderata dal menu a discesa.
- Nel menu a discesa Metodo di riferimento, seleziona il modo in cui vuoi utilizzare il tuo ConfigMap, montato come volume o esposto come variabili di ambiente.
- Se utilizzi il montaggio come volume, specifica il percorso e poi fai clic su Fine.
- Se esegui l'esposizione come variabili di ambiente:
- Fornisci il Nome della variabile e seleziona il valore ConfigMap corrispondente dal menu a discesa Chiave.
- Fai clic su Aggiungi per aggiungere un altro valore ConfigMap.
- Fornisci il Nome della variabile e seleziona il valore ConfigMap corrispondente dal menu a discesa Chiave.
- Fai clic su Fine.
Fai clic su Avanti per continuare con la sezione successiva.
Nella sezione Configura il funzionamento del trigger per questo servizio, seleziona la connettività che vuoi utilizzare per richiamare il servizio.
Fai clic su Crea per eseguire il deployment dell'immagine in Knative Serving e attendi il completamento del deployment.
Riga di comando
Puoi utilizzare Google Cloud CLI per impostare ConfigMaps per i nuovi servizi o per aggiornare un servizio esistente:
Per i servizi esistenti, aggiorna un ConfigMap eseguendo il comando
gcloud run services update
con uno dei seguenti parametri:Esempio:
gcloud run services update SERVICE --update-config-maps KEY1=VALUE1,KEY2=VALUE2
Sostituisci:
- SERVICE con il nome del tuo servizio.
- KEY1=VALUE1,KEY2=VALUE2 con un elenco separato da virgole
di coppie nome/valore per ogni ConfigMap.
Per ogni KEY puoi specificare un percorso di montaggio o fornire una variabile di ambiente. Specifica un percorso di montaggio
iniziando con una barra
/
. Tutte le altre chiavi corrispondono a variabili di ambiente. Per ogni VALUE, specifica il nome di ConfigMap. Come specificare più parametri.
Opzioni dei parametri del comando
Per specificare più insiemi di coppie chiave-valore, puoi specificare più parametri per una maggiore leggibilità. Esempio:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
Per i nuovi servizi, imposta ConfigMap eseguendo il comando
gcloud run deploy
con il parametro--set-config-maps
:gcloud run deploy SERVICE --image=IMAGE_URL --set-config-maps KEY1=VALUE1,KEY2=VALUE2
Sostituisci:
- IMAGE_URL con un riferimento all'immagine container, ad esempio
gcr.io/cloudrun/hello
. - SERVICE con il nome del tuo servizio.
- KEY1=VALUE1,KEY2=VALUE2 con un elenco separato da virgole
di coppie nome/valore per ogni ConfigMap.
Per ogni KEY puoi specificare un percorso di montaggio o fornire una variabile di ambiente. Specifica un percorso di montaggio
iniziando con una barra
/
. Tutte le altre chiavi corrispondono a variabili di ambiente. Per ogni VALUE, specifica il nome di ConfigMap. Come specificare più parametri.
Opzioni dei parametri del comando
Per specificare più insiemi di coppie chiave-valore, puoi specificare più parametri per una maggiore leggibilità. Esempio:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
- IMAGE_URL con un riferimento all'immagine container, ad esempio