GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erstellen und speichern Sie Geheimnisse wie Passwörter, OAuth-Token und SSH-Schlüssel in Kubernetes

In Kubernetes können wir vertrauliche Informationen wie Passwörter, OAuth-Token und SSH-Schlüssel mithilfe von Kubernetes Secrets speichern und verwalten. In Kubernetes können Geheimnisse als Kubernetes-Objekte definiert werden. Es ist sicherer, Anmeldeinformationen in Kubernetes Secrets als in Pods oder Docker-Images zu speichern.

Es gibt mehrere Möglichkeiten, Geheimnisse in Kubernetes zu generieren:

  1. Erstellung aus einer Textdatei
  2. Erstellen aus einer yml-Datei

Sobald die Geheimnisse verfügbar sind, können sie auf folgende Weise verwendet werden:

  1. Umgebungsvariable
  2. Lautstärke
  3. Das imagePullSecrets-Feld verwenden

Um mehr über Kubernetes Secrets zu erfahren, klicken Sie hier.

In diesem Artikel erstellen wir Geheimnisse mithilfe einer .yml-Datei und greifen im Pod als Umgebungsvariablen darauf zu.

Voraussetzungen

  1. Kubernetes-Cluster mit mindestens einem Worker-Knoten.
    Wenn Sie erfahren möchten, wie Sie einen Kubernetes-Cluster erstellen, klicken Sie hier. Dieser Leitfaden hilft Ihnen beim Erstellen eines Kubernetes-Clusters mit 1 Master und 2 Knoten auf AWS Ubuntu 18l04 EC2-Instances.

Was wir tun werden

  1. Geheimnisse erstellen

Geheimnisse erstellen

Um neue Geheimnisse in Kubernetes zu erstellen, verschlüsseln Sie sie zuerst wie unten gezeigt mit der base64-Codierungsmethode.

Hier

username=rahul und password=howtoforge123.

echo -n "rahul" | base64

echo -n "howtoforge123" | base64

Im obigen Screenshot ist zu sehen, dass die Zugangsdaten verschlüsselt wurden.

Erstellen Sie wie folgt eine geheime Definitionsdatei, diese Datei enthält den base64-Wert der im obigen Schritt generierten Anmeldeinformationen.

vim my-secret.yml

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: cmFodWw=
  password: aG93dG9mb3JnZTEyMw==

Lassen Sie uns nun einen Pod erstellen, in dem auf diese Geheimnisse zugegriffen werden kann.

Erstellen Sie eine neue Datei, die die Pod-Definition wie folgt enthält.

vim my-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: secrets-in-pod
spec:
  containers:
    - name: my-container
      image: redis
      env:
        - name: SECRET_USERNAME
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: username
        - name: SECRET_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: password
  restartPolicy: Never

Erstellen wir Geheimnisse mit dem folgenden Befehl.

kubectl create -f my-secret.yml

kubectl geheim erhalten | grep mysecret

Erstellen Sie jetzt einen Pod mit der folgenden Pod-Definition, um auf die zuvor erstellten Geheimnisse zuzugreifen.

kubectl create -f mein-pod.yml

kubectl get  pods | grep Geheimnisse im Pod

Melden Sie sich mit dem folgenden Befehl beim Pod an.

kubectl erhält Pods | grep Geheimnisse im Pod

kubectl exec -it Geheimnisse im Pod /bin/bash

Sobald Sie sich beim Pod anmelden, können Sie mit dem folgenden Befehl auf die Geheimnisse als Umgebungsvariable zugreifen.

echo $SECRET_USERNAME

echo $SECRET_PASSWORD

Im obigen Screenshot ist zu sehen, dass die Secrets als Umgebungsvariablen verfügbar sind.

Um Details des geheimen Objekts anzuzeigen, führen Sie den folgenden Befehl aus.

kubectl geheim erhalten | grep mysecret

kubectl get secret mysecret -o yaml

Dieses Geheimnis kann auch von der Kommandozeile mit den folgenden Befehlen entschlüsselt werden.

kubectl get secrets/mysecret --template={{.data.username}} | base64 -d

kubectl get secrets/mysecret --template={{.data.password}} | base64 -d

Im obigen Screenshot ist zu sehen, dass die Anmeldedaten aus den Secrets extrahiert und auf der Befehlszeile mit base64 entschlüsselt werden.

Fazit

In diesem Artikel haben wir die Schritte zum Erstellen und Speichern von Geheimnissen in Kubernetes aus einer .yml-Datei gesehen. Wir haben versucht, auf diese Geheimnisse im Pod als Umgebungsvariablen zuzugreifen. Wir haben auch den Befehl zum Entschlüsseln der Geheimnisse auf der Befehlszeile gesehen.


Linux
  1. So richten Sie SSH-Schlüssel ein

  2. SSH – Generieren und Arbeiten mit SSH-Schlüsseln

  3. Wie konvertiert man eine PPK-Datei in OpenSSH-Schlüssel und meldet sich mit SSH unter Linux an?

  4. Berechtigungen für SSH- und Home-Verzeichnisse?

  5. Jumble Password – Erstellen Sie eindeutige IDs und Passwörter unter Linux

So erstellen Sie ein StatefulSet in Kubernetes

Konfigurieren Sie Katello – Laden Sie Repositories herunter, erstellen Sie Umgebungen und Aktivierungsschlüssel

So erstellen und verwalten Sie Kubernetes-Pods unter Linux

So erstellen Sie einen SSH-Alias ​​unter Linux

So erstellen Sie neue Benutzer in OpenShift mit htpasswd und OAuth

SSH-Tunneling und Proxying