Utilizzo di ConfigMap

Scopri come creare un ConfigMap e poi configurare i servizi e le revisioni Knative serving per utilizzarlo.

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, hostname e URL. Puoi scoprire di più sull'utilizzo dei ConfigMap nella documentazione di Google Kubernetes Engine.

Quando abiliti i container per l'accesso a ConfigMap, puoi scegliere una di queste opzioni opzioni:

  • Monta il ConfigMap come volume, con le voci ConfigMap disponibili come file in il volume montato. Questa opzione è consigliata perché garantisce che tu riceva il all'ultima versione del ConfigMap.
  • Passa il ConfigMap utilizzando variabili di ambiente.

Creazione di un oggetto ConfigMap

Esistono diversi modi per creare un ConfigMap, come descritto nel ConfigMaps del documentazione di GKE. Per praticità, i passaggi che seguono mostrano un modo semplice per creare un ConfigMap.

Quando crei un ConfigMap, assicurati di crearlo nello stesso spazio dei nomi il cluster che esegue il servizio Knative serving. Questi usano lo spazio dei nomi default.

Puoi creare un 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 contenente uno o più file di configurazione.
    • Il flag --from-literal e la coppia chiave-valore per ognuno che vuoi al ConfigMap.

Ad esempio:

kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm

Il 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 Servizio Knative serving come volume o come ambiente utilizzando la console Google Cloud o Google Cloud CLI quando esegui il deployment di un nuovo servizio o aggiorni esistente ed esegui il deployment di una revisione:

Console

  1. Vai a Erogazione Knative nella console Google Cloud:

    Vai a Knative serving

  2. Fai clic su Crea servizio se stai configurando un nuovo servizio di destinazione del deployment. Se stai configurando un'istanza servizio esistente, fai clic sul servizio e poi su Modifica e Esegui il deployment della nuova revisione.

  3. In Impostazioni avanzate, fai clic su Variabili e secret.

  4. In Fai riferimento a un ConfigMap, seleziona il il ConfigMap desiderato dal menu a discesa.

    • Nel menu a discesa Metodo di riferimento, seleziona il modo in cui vuoi utilizzare il ConfigMap, montato come volume o esposto come variabili di ambiente.
    • Se utilizzi il montaggio come volume, specifica il percorso e fai clic su Fine.
    • Se le espandi come variabili di ambiente:
      1. Specifica il nome della variabile e seleziona il ConfigMap corrispondente dal menu a discesa Chiave.
      2. Fai clic su Aggiungi per aggiungere un altro valore ConfigMap.
      3. Fornisci il nome della variabile e seleziona il valore ConfigMap corrispondente dal menu a discesa Chiave.
      4. Fai clic su Fine.

  5. Fai clic su Avanti per passare alla sezione successiva.

  6. Nella sezione Configura il funzionamento del trigger per questo servizio, seleziona la connettività che vuoi utilizzare per richiamare il servizio.

  7. 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 gli oggetti ConfigMap per 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 di coppie di nomi e valori per ogni ConfigMap separato da virgole. 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 Nome ConfigMap. Come specificare più parametri.
    • Opzioni del parametro del comando

      Per specificare più insiemi di coppie chiave-valore, puoi indicare più parametri per la 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, per ad esempio gcr.io/cloudrun/hello.
    • SERVICE con il nome del servizio.
    • KEY1=VALUE1,KEY2=VALUE2 separati da una virgola elenco di coppie di nomi e valori 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 Nome ConfigMap. Come specificare più parametri.
    • Opzioni del parametro del comando

      Per specificare più insiemi di coppie chiave-valore, puoi indicare più parametri per la leggibilità. Esempio:
      [...]
      --update-config-maps "KEY=VALUE1" \
      --update-config-maps "KEY=VALUE2" \
      --update-config-maps "KEY=VALUE3"