Wie man

So kopieren Sie das Kubernetes-Geheimnis zwischen Namespaces

So kopieren Sie das Kubernetes-Geheimnis zwischen Namespaces

Wie kann ich ein Kubernetes-Secret von einem Namespace in einen anderen Namespace kopieren??. Ein Secret ist ein Kubernetes-Objekt, das sensible Daten wie ein Passwort, ein Token oder einen Schlüssel speichert. Solche Informationen könnten andernfalls in eine Pod-Spezifikation oder in ein Bild eingefügt werden, aber für die gemeinsame Nutzung zwischen Pods und Diensten sollten sie besser als Kubernetes-Objekt verwendet werden. Kubernetes-Cluster-Benutzer können Geheimnisse erstellen und das System erstellt auch einige Geheimnisse.

In dieser Anleitung kopieren wir bei Verwendung von OpenShift ein bereits in einem Namespace oder Projekt erstelltes Secret und wenden es auf einen anderen Namespace an. Dies gilt häufig für Geheimnisse wie Registrierungsgeheimnisse, gemeinsame Git-Anmeldeinformationen, SSL-Zertifikate und -Schlüssel, gemeinsame API-Anmeldeinformationen usw.t.c. Wir erstellen ein Testgeheimnis und zeigen Ihnen, wie Sie es von einem Projekt in ein anderes kopieren können.

Kubernetes-Secrets erstellen

Wir erstellen ein Geheimnis mit Benutzername und Passwort aus der Datei create.

echo -n 'admin' > ./Nutzername.txt echo -n 'Passwort' > ./Passwort.TXT

Führen Sie den Befehl kubectl create secret aus, um diese Dateien in ein Secret zu packen und das Objekt auf dem API-Server zu erstellen.

$ kubectl erstelle geheimen generischen my-user-pass --from-file=./Nutzername.txt --from-file=./Passwort.txt secret/my-user-pass erstellt 

Du kannst ein Secret auch direkt mit kubectl ohne Datei erstellen.

kubectl Create Secret Generic my-user-pass --from-literal='username=admin' --from-literal='password=Password'

Der Name eines Secret-Objekts muss ein gültiger DNS-Subdomain-Name sein.

Geheimnisse auflisten:

$ kubectl Geheimnisse bekommen

Konvertieren Ihrer geheimen Daten in Base-64

So konvertieren Sie geheime Daten manuell in eine Base-64-Darstellung:

$ echo -n 'admin' | base64 YWRtaW4= $ echo -n 'Passwort' | base64 UGFzc3dvcmQ=

Ihre Yaml-Manifestdatei wird unten aussehen.

apiVersion: v1 Art: Geheime Metadaten: Name: my-user-pass data: username: YWRtaW4= Passwort: UGFzc3dvcmQ=

Kubernetes-Secrets zwischen Namespaces kopieren

Verwenden Sie die folgende Befehlssyntax, um ein Geheimnis von einem Namespace in einen anderen Namespace zu kopieren.

kubectl wird geheim  \ --namespace= \ --export -o yaml | \ kubectl apply --namespace= -f -

In meinem Beispiel führe ich aus:

kubectl get secret my-user-pass \ --namespace=namespace1 \ --export -o yaml | \ kubectl apply --namespace=namespace2 -f -

Ausgabe der Befehlsausführung:

geheimer/my-user-pass erstellt

Bestätigen Sie die Erstellung des Secrets im Namespace.

$ kubectl get secret -n namespace2 my-user-pass NAME TYPE DATA AGE my-user-pass Opaque 2 38s

Entschlüsseln Sie das Geheimnis, um zu bestätigen, dass die Daten korrekt sind:

secret_name="my-user-pass" namespace="namespace2" kubectl get secret -n $namespace $secret_name -o go-template="range $k,$v := .dataprintf "%s: " $kwenn nicht $v$velse$v | base64decodeend"\n"end"

Befehlsausgabe:

Passwort.txt: Passwort Benutzername.txt: admin

Wenn Sie haben jq Sie können den folgenden Befehl verwenden, um zu entschlüsseln.

$ kubectl get secret my-user-pass -o json | jq '.Daten | map_values(@base64d)'  "Passwort.txt": "Passwort", "Benutzername.txt": "admin"  

Secret zwischen Kubernetes-Clustern kopieren

Für separate Cluster müssen Sie das Geheimnis in einer Datei speichern.

$ kubectl get secret  --export -o yaml > geheimer-name.jaml

Kopieren Sie dann das Geheimnis dorthin, wo Sie auf dem anderen Cluster authentifiziert sind, und wenden Sie es an.

$ kubectl apply -f geheimer-name.jaml

Bestätigen Sie, dass das Geheimnis erstellt wurde.

$ kubectl get secret

Wenn Sie kubectl mit mehreren Kontexten konfiguriert haben, können Sie den folgenden Ansatz verwenden:

$ kubectl get secret  --Kontext  --export -o yaml \ | kubectl apply --context  -f -

So können Sie ganz einfach Secrets zwischen Namespaces in Kubernetes und OpenShift Cluster kopieren.

Kubernetes-Lernvideos:Kubernetes für absolute Anfänger - Hands-onKubernetes für absolute Anfänger - Hands-on$15.68$156.75auf LagerJETZT KAUFENUdemy.comZertifizierter Kubernetes Administrator (CKA) mit PraxistestsZertifizierter Kubernetes Administrator (CKA) mit Praxistests$15.68$156.75auf LagerJETZT KAUFENUdemy.comKubernetes Certified Application Developer (CKAD) mit TestsKubernetes Certified Application Developer (CKAD) mit Tests$15.68$156.75auf LagerJETZT KAUFENUdemy.com

Weitere Anleitungen:

Verwenden von Horizontal Pod Autoscaler in Kubernetes EKS-Clustern

So erzwingen Sie das Löschen eines Kubernetes-Namespace

So migrieren Sie Docker Compose-Anwendung zu Kubernetes mit Kompose

So deaktivieren Sie die Animation in Windows 10
Möchten Sie, dass das Startmenü von Windows 10 schnell geladen wird?. Die schnelle Option besteht darin, die Animation auszuschalten. Dadurch wird die...
So ändern Sie den Standardbrowser von Windows 10 in Mozilla oder Chrome
Obwohl Microsoft Edge im Vergleich zu Microsoft IE ein sehr flotter Browser ist, ist es wirklich unethisch für Microsoft, seinen innovativen Browser d...
So ändern Sie den Hintergrund des Windows 10-Anmeldebildschirms
Die meisten Leute, die auf Windows 10 aktualisiert haben, mögen den schrecklichen Windows 10-Helden-Anmeldebildschirm nicht. Die Leute fingen an, in d...