Scopri come creare un secret e configurare i servizi e le revisioni Knative serving per utilizzarlo.
Un caso d'uso comune per un servizio è l'accesso ad applicazioni di terze parti tramite nomi utente e password. Per Google Kubernetes Engine, è una best practice memorizzare questo tipo di informazioni sensibili in un oggetto Secret di Kubernetes.
Per fornire ai container l'accesso ai secret, puoi montare ogni secret come volume, il che rende le voci del secret disponibili per il container come file. Devi montare il secret per assicurarti di ottenere l'ultima versione di ogni secret quando viene letto.
Puoi anche passare un secret utilizzando le variabili di ambiente.
Creazione di un secret
I passaggi riportati di seguito mostrano semplicemente come creare un secret, ma esistono diversi modi per farlo, come spiegato nell'argomento Secret.
Quando crei un secret, assicurati di crearlo nello stesso spazio dei nomi del cluster che esegue il servizio Knative Serving. In questi
esempi viene utilizzato lo spazio dei nomi default.
Per creare un secret nello spazio dei nomi default del cluster:
Crea un secret utilizzando un file:
echo -n 'devuser' > ./username.txt echo -n 'S!B\*d$zDsb' > ./password.txt kubectl create secret generic user-creds --from-file=./username.txt --from-file=./password.txtCrea un secret utilizzando solo un comando
kubectl:kubectl create secret generic user-creds --from-literal=username=devuser --from-literal=password='S!B\*d$zDsb'
Rendere un secret disponibile per un servizio
Puoi associare i secret a un servizio utilizzando la console Google Cloud o gli strumenti a riga di comando 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 Fai riferimento a un secret, seleziona il secret desiderato dal menu a discesa.
- Nel menu a discesa Metodo di riferimento, seleziona il modo in cui vuoi utilizzare il secret, montato come volume o esposto come variabili di ambiente.
- Se utilizzi il montaggio come volume, specifica il percorso, quindi fai clic su Fine.
- Se le esponi come variabili di ambiente:
- Fornisci il Nome della variabile e seleziona il valore del secret corrispondente dal menu a discesa Chiave.
- Fai clic su Aggiungi per aggiungere un altro valore segreto.
- Fornisci il Nome della variabile e seleziona il valore del secret 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.
gcloud
Puoi utilizzare Google Cloud CLI per associare i secret a nuovi servizi o per aggiornare i servizi esistenti:
Per i servizi esistenti, aggiorna un secret eseguendo il comando
gcloud run services updatecon uno dei seguenti parametri:Esempio:
gcloud run services update SERVICE --update-secrets 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 secret.
Per ogni KEY che specifichi, indica il percorso iniziando con una barra
/per montare un secret come file. Facoltativamente, puoi escludere la barra per montare il secret come variabile di ambiente. Per ogni VALUE, specifica il nome del secret. 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-secrets "KEY=VALUE1" \ --update-secrets "KEY=VALUE2" \ --update-secrets "KEY=VALUE3"
Per i nuovi servizi, associa un secret eseguendo il comando
gcloud run deploycon il parametro--set-secrets:gcloud run deploy SERVICE --image=IMAGE_URL --set-secrets 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 secret.
Per ogni KEY che specifichi, indica il percorso iniziando con una barra
/per montare un secret come file. Facoltativamente, puoi escludere la barra per montare il secret come variabile di ambiente. Per ogni VALUE, specifica il nome del secret. 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-secrets "KEY=VALUE1" \ --update-secrets "KEY=VALUE2" \ --update-secrets "KEY=VALUE3"
- IMAGE_URL con un riferimento all'immagine container, ad esempio