Uso degli oggetti ConfigMap

Scopri come creare un oggetto ConfigMap e quindi configurare i servizi e le revisioni Cloud Run for Anthos per utilizzarlo.

Un caso d'uso comune per un servizio è l'uso di oggetti ConfigMap per separare il codice dell'applicazione dalla configurazione. L'oggetto ConfigMap è simile al secret, tranne per il fatto che utilizzi un Secret per le informazioni sensibili e un ConfigMap per archiviare i 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 per accedere a ConfigMap, puoi scegliere una di queste opzioni:

  • Monta l'oggetto ConfigMap come volume, con le voci ConfigMap disponibili come file nel volume montato. Questa operazione è consigliata perché garantisce di ottenere la versione più recente di un ConfigMap mentre lo leggi.
  • Passa il ConfigMap utilizzando le variabili di ambiente.

Creazione di un oggetto ConfigMap

Esistono diversi modi per creare un ConfigMap, come descritto nella pagina ConfigMap della documentazione di GKE. Per comodità, i seguenti passaggi mostrano un modo semplice per creare un ConfigMap.

Quando crei un ConfigMap, assicurati di crearlo nello stesso spazio dei nomi del cluster che esegue il tuo servizio Cloud Run for Anthos. Queste istruzioni utilizzano 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.
  • Il valore di DATA può essere:

    • Il flag e il percorso --from-file per ogni directory che contiene uno o più file di configurazione.
    • Il flag --from-literal e la coppia chiave-valore di ogni elemento che vuoi aggiungere al ConfigMap.

Ad esempio:

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

L'oggetto ConfigMap viene creato e caricato dove è disponibile per i cluster nello spazio dei nomi default.

Rendere disponibile un ConfigMap per un servizio

Dopo aver creato un ConfigMap, puoi renderlo disponibile al servizio Cloud Run for Anthos 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

  1. Vai a Cloud Run for Anthos in Google Cloud Console:

    Vai a Cloud Run for Anthos

  2. Fai clic su Crea servizio se stai configurando un nuovo servizio in cui stai eseguendo il deployment. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Modifica e esegui il deployment di una nuova revisione.

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

    immagine

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

    • Nel menu a discesa Metodo di riferimento, seleziona il modo in cui vuoi utilizzare l'oggetto ConfigMap, montato come un volume o esposto come variabili di ambiente.
    • Se utilizzi mount come volume, specifica il percorso, quindi fai clic su Fine.
    • Se stai esponendo come variabili di ambiente:
      1. Specifica il Nome della variabile e seleziona il valore ConfigMap corrispondente dal menu a discesa Chiave.
      2. Fai clic su Add (Aggiungi) per aggiungere un altro valore di ConfigMap.
      3. Specifica 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 servizio, seleziona la connettività che vuoi utilizzare per richiamare il servizio.

  7. Fai clic su Crea per eseguire il deployment dell'immagine in Cloud Run for Anthos e attendere il completamento del deployment.

Riga di comando

Puoi utilizzare l'interfaccia a riga di comando di Google Cloud per impostare oggetti ConfigMap 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 del ConfigMap. Come specificare più parametri.
    • Opzioni dei parametri di comando

      Per specificare diversi insiemi di coppie chiave-valore, puoi specificare 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 l'oggetto 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/myproject/my-image:latest.
    • 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 del ConfigMap. Come specificare più parametri.
    • Opzioni dei parametri di comando

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