Erfahren Sie, wie Sie ein Secret erstellen und Ihre Knative-Bereitstellungsdienste und -Überarbeitungen so konfigurieren, dass sie dieses Secret verwenden.
Ein häufiger Anwendungsfall für einen Dienst ist der Zugriff auf Anwendungen von Drittanbietern über Nutzernamen und Passwörter. Für Google Kubernetes Engine empfiehlt es sich, diese vertraulichen Informationen in einem Secret-Objekt von Kubernetes zu speichern.
Um Ihren Containern Zugriff auf Secrets zu gewähren, können Sie jedes Secret als Volume bereitstellen. Dadurch werden die Einträge im Secret als Dateien für den Container verfügbar. Sie sollten Ihr Secret bereitstellen, um dafür zu sorgen, dass Sie beim Lesen die neueste Version jedes Secrets erhalten.
Sie können ein Secret auch mit Umgebungsvariablen übergeben.
Secret erstellen
Die folgenden Schritte zeigen lediglich, wie ein Secret erstellt wird, aber es gibt mehrere Möglichkeiten, ein Secret zu erstellen. Dies wird im Thema Secret erläutert.
Achten Sie beim Erstellen eines Secret darauf, dass Sie es im selben Namespace erstellen wie den Cluster, auf dem Ihr Knative Serving-Dienst ausgeführt wird. In dieser Anleitung wird der Namespace default
verwendet.
So erstellen Sie ein Secret im Namespace default
Ihres Clusters:
Erstellen Sie mithilfe einer Datei ein Secret:
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.txt
Erstellen Sie ein Secret nur mit einem
kubectl
-Befehl:kubectl create secret generic user-creds --from-literal=username=devuser --from-literal=password='S!B\*d$zDsb'
Secret für einen Dienst bereitstellen
Sie können Secrets mit der Google Cloud Console oder mit Befehlszeilentools zuordnen, wenn Sie einen neuen Dienst bereitstellen oder einen vorhandenen Dienst aktualisieren und die Überarbeitung bereitstellen.
Console
Rufen Sie in der Google Cloud Console Knative Serving auf:
Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Klicken Sie unter Erweiterte Einstellungen auf Variablen und Secrets.
Wählen Sie unter Secret-Referenz das gewünschte Secret aus dem Drop-down-Menü aus.
- Wählen Sie im Drop-down-Menü Referenzmethode aus, wie Sie Ihr Secret verwenden möchten: als Volume oder als Umgebungsvariablen bereitstellen.
- Wenn Sie die Bereitstellung als Volume verwenden, geben Sie den Pfad an und klicken Sie auf Fertig.
- Wenn Sie das Secret als Umgebungsvariable bereitstellen:
- Geben Sie den Namen der Variable an und wählen Sie im Drop-down-Menü Schlüssel den entsprechenden Secret-Wert aus.
- Klicken Sie auf Hinzufügen, um einen weiteren Secret-Wert hinzuzufügen.
- Geben Sie den Namen der Variable an und wählen Sie im Drop-down-Menü Schlüssel den entsprechenden Secret-Wert aus.
- Klicken Sie auf Fertig.
Klicken Sie auf Weiter, um mit dem nächsten Abschnitt fortzufahren.
Wählen Sie im Abschnitt Konfigurieren, wie dieser Dienst ausgelöst wird die Verbindung aus, die Sie zum Auslösen des Dienstes verwenden möchten.
Klicken Sie auf Erstellen, um das Image in Knative Serving bereitzustellen. Warten Sie, bis die Bereitstellung abgeschlossen ist.
gcloud
Über die Google Cloud CLI können Sie Secrets mit neuen Diensten verknüpfen oder vorhandene Dienste aktualisieren:
Aktualisieren Sie für vorhandene Dienste ein Secret, indem Sie den Befehl
gcloud run services update
mit einem der folgenden Parameter ausführen:Beispiel:
gcloud run services update SERVICE --update-secrets KEY1=VALUE1,KEY2=VALUE2
Ersetzen Sie:
- SERVICE durch den Namen des Dienstes.
- KEY1=VALUE1,KEY2=VALUE2 durch eine durch Kommas getrennte Liste von Name und Wertpaaren für jedes Secret.
Geben Sie für jeden KEY einen Pfad beginnend mit einem Schrägstrich
/
an, um ein Secret als Datei bereitzustellen. Optional können Sie den Schrägstrich ausschließen, um das Secret als Umgebungsvariable bereitzustellen. Geben Sie für jeden VALUE den Secret-Namen an. So legen Sie mehrere Parameter fest.
Optionen für Befehlsparameter
Wenn Sie mehrere Gruppen von Schlüssel/Wert-Paaren angeben möchten, können Sie mehrere Parameter angeben, um die Lesbarkeit zu verbessern. Beispiel:[...] --update-secrets "KEY=VALUE1" \ --update-secrets "KEY=VALUE2" \ --update-secrets "KEY=VALUE3"
Neuen Diensten ordnen Sie ein Secret mit dem Befehl
gcloud run deploy
und dem Parameter--set-secrets
zu:gcloud run deploy SERVICE --image=IMAGE_URL --set-secrets KEY1=VALUE1,KEY2=VALUE2
Ersetzen Sie:
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
gcr.io/cloudrun/hello
. - SERVICE durch den Namen des Dienstes.
- KEY1=VALUE1,KEY2=VALUE2 durch eine durch Kommas getrennte Liste von Name und Wertpaaren für jedes Secret.
Geben Sie für jeden KEY einen Pfad beginnend mit einem Schrägstrich
/
an, um ein Secret als Datei bereitzustellen. Optional können Sie den Schrägstrich ausschließen, um das Secret als Umgebungsvariable bereitzustellen. Geben Sie für jeden VALUE den Secret-Namen an. So legen Sie mehrere Parameter fest.
Optionen für Befehlsparameter
Wenn Sie mehrere Gruppen von Schlüssel/Wert-Paaren angeben möchten, können Sie mehrere Parameter angeben, um die Lesbarkeit zu verbessern. Beispiel:[...] --update-secrets "KEY=VALUE1" \ --update-secrets "KEY=VALUE2" \ --update-secrets "KEY=VALUE3"
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.