Ingress wird zur Verwaltung des eingehenden Anwendungsdatenverkehrs und auch zur SSL-Terminierung verwendet. Im Gegensatz dazu dienen Secrets dazu, vertrauliche Informationen und TLS-Zertifikate für die Anwendung zu speichern.
Dieser Beitrag soll Folgendes veranschaulichen:
- Was sind die Kubernetes-Geheimnisse?
- Voraussetzung: Privaten Schlüssel und Zertifikat generieren
- Wie erstelle ich geheimes TLS in Kubernetes?
- Wie erstelle ich ein Geheimnis über eine Yaml-Datei?
- Wie bette ich ein Geheimnis in einen Kubernetes-Pod ein?
- Abschluss
Was sind die Kubernetes-Geheimnisse?
Die Secrets sind eine der Kubernetes-Ressourcen, die zum Speichern vertraulicher Informationen wie Benutzeranmeldeinformationen, Schlüssel, Zertifikate oder Token verwendet werden. Die Secrets können einzeln erstellt und zu Pods verbunden werden. Es verhindert, dass der Entwickler vertrauliche Daten im Code bereitstellt, und bietet außerdem eine zusätzliche Sicherheitsebene. Es können verschiedene Arten von Geheimnissen erstellt und verwendet werden. Die am häufigsten verwendeten Geheimnisse sind:
Allgemeines Geheimnis: Die generischen Geheimnisse werden zum Speichern grundlegender Informationen wie Passwörter, Token, API-Schlüssel, OAuth-Schlüssel usw. verwendet.
TLS-Geheimnis: TLS-Geheimnisse werden zum Speichern privater Schlüssel und Zertifikate verwendet, die von der Zertifizierungsstelle signiert werden. Um die Sicherheit von Anwendungen zu gewährleisten, die in Kubernetes ausgeführt werden, und um die Kommunikation innerhalb des Clusters zu sichern, muss der Benutzer normalerweise TLS-Geheimnisse erstellen und in den Pod einbetten.
Docker-Registrierung: Es wird zum Speichern der Docker-Registrierungsanmeldeinformationen verwendet, um die Bilder einfach aus der Registrierung abzurufen.
Voraussetzung: Privaten Schlüssel und Zertifikat generieren
Um das Zertifikat und den privaten Schlüssel zur Verbesserung der Sicherheit zu erstellen, verwenden Sie OpenSSL, das die CSR (Zertifikatsignierungsanforderung) und den privaten Schlüssel erstellt. Verwenden Sie dann CSR, um die selbstsignierten oder CA-Zertifikate zu generieren.
Um die OpenSSL-Befehle unter Windows nutzen zu können, müssen Benutzer Git installieren. Folgen Sie hierzu unserem verlinkten „ Installieren Sie Git unter Windows ” Artikel.
Befolgen Sie nach der Installation von Git die folgenden Anweisungen, um einen privaten Schlüssel und ein signiertes Zertifikat zu generieren.
Schritt 1: Starten Sie das Git Bash-Terminal
Machen Sie eine Suche nach „ Git Bash ” im Startmenü und starten Sie das Terminal:
Um das aktuelle Verzeichnis zu überprüfen, verwenden Sie „ pwd ' Befehl:
pwdDerzeit arbeiten wir im Verzeichnis %USERPROFILE%:
Schritt 2: Neues Verzeichnis erstellen
Erstellen Sie ein neues Verzeichnis, um die Zertifikate und den privaten Schlüssel zu speichern:
mkdir zertNavigieren Sie mit der Taste „ in das neu erstellte Verzeichnis. CD ' Befehl:
CD zert
Schritt 3: Privaten Schlüssel generieren
Generieren Sie nun den privaten Schlüssel mit dem angegebenen Befehl. Hier wird der generierte private Schlüssel gespeichert in „ mycert.key ”:
openssl genpkey -Algorithmus RSA -aus mycert.key
Schritt 4: CSR generieren
Um die CSR (Certificate Service Request) zu generieren, um ein signiertes Zertifikat zu erhalten, verwenden Sie den folgenden Befehl:
OpenSSL-Anforderung -neu -Schlüssel mycert.key -aus mycert.csr
Schritt 5: Zertifikat generieren
Erstellen Sie abschließend mit dem generierten privaten Schlüssel und der CSR ein Zertifikat und speichern Sie es im Ordner „ mycert.crt ' Datei. Führen Sie dazu den folgenden Befehl aus:
OpenSSL x509 -req -In mycert.csr -signkey mycert.key -aus mycert.crt -Tage 365
Nach der Generierung der TLS-Zertifikate kann der Benutzer das geheime TLS erstellen, indem er dem folgenden Abschnitt folgt.
Wie erstelle ich geheimes TLS in Kubernetes?
Um die Anwendungssicherheit und sichere Kommunikation innerhalb und außerhalb des Kubernetes-Clusters zu gewährleisten, sind die TLS-Zertifikate (Transport Layer Security) unerlässlich, die bei der Datenverschlüsselung verwendet werden. Das Kubernetes-Geheimnis ermöglicht es uns, das TLS-Zertifikat über geheimes TLS in laufende Pods einzubetten. Um ein geheimes TLS in Kubernetes zu erstellen, befolgen Sie die folgenden Anweisungen.
Schritt 1: Starten Sie den Minikube-Cluster
Um den Minikube-Cluster zu starten, starten Sie zunächst Windows PowerShell als Administrator. Erstellen Sie anschließend den Cluster und führen Sie ihn aus, indem Sie „ minikube start ' Befehl:
minikube start
Schritt 2: Knoten abrufen
Greifen Sie auf den Kubernetes-Knoten zu, um zu überprüfen, ob der Cluster gestartet ist oder nicht:
Minikube erhält Knoten
Schritt 3: Erstellen Sie geheimes TLS
Erstellen Sie das TLS-Geheimnis in Kubernetes mit „ kubectl erstellt Geheimnis
Schritt 4: Geheimnisse abrufen
Listen Sie zur Bestätigung das Kubernetes-Geheimnis mit dem angegebenen Befehl auf:
Kubectl bekommt ein GeheimnisHier können Sie sehen, dass wir effektiv ein „ Demo-Geheimnis ' das beinhaltet ' 2 ” Datenwerte:
Schritt 5: Beschreiben Sie das Geheimnis
Um zu sehen, wie Daten im Geheimen angezeigt oder gespeichert werden, beschreiben Sie das Geheimnis mit „ kubectl beschreibt das Geheimnis
Sie können sehen, dass Werte in Bytes gespeichert werden und im Gegensatz zu Kubernetes ConfigMaps nicht direkt angezeigt werden können:
Wie erstelle ich ein geheimes TLS über eine Yaml-Datei?
Um ein geheimes TLS über eine Yaml-Datei zu erstellen, erstellen Sie zunächst eine „ geheim.yml ”-Datei, fügen Sie die hinzu TLS Base64-codiertes Zertifikat im ' tls.crt ”-Taste und fügen Sie die hinzu Base64-codierter Schlüssel im ' tls.key “.
Befolgen Sie zur Demonstration die aufgeführten Schritte.
Schritt 1: Yaml-Datei erstellen
Erstellen Sie eine Datei mit dem Namen „ geheim.yml ” und fügen Sie den angegebenen Code ein:
apiVersion : v1Daten :
tls.crt : „Base64-codiertes Zertifikat“
tls.key : „Base64-codierter Schlüssel“
Art : Geheimnis
Metadaten :
Name : Mytls-Geheimnis
Namensraum : Standard
Typ : kubernetes.io/tls
Ersetzen Sie im obigen Snippet die Schlüsselwerte „tls.crt“ und „tls.key“ durch Ihr ursprüngliches Zertifikat und die Schlüsselwerte:
Schritt 2: Erstellen Sie ein Geheimnis
Wenden Sie nun die geheime Yaml-Datei über „ kubectl apply -f
Die Ausgabe zeigt, dass wir das „ Mytls-Geheimnis ” unter Verwendung der Yaml-Datei:
Hinweis: TLS-Zertifikat und privaten Schlüssel anzeigen
Um das Base64-codierte Zertifikat anzuzeigen und in der Yaml-Datei zu verwenden, führen Sie den Befehl „ aus. cat
Um den Base64-codierten Schlüssel anzuzeigen, verwenden Sie „ cat
Wie bette ich geheimes TLS in einen Kubernetes-Pod ein?
Nachdem das geheime TSL erstellt wurde, kann der Benutzer es in den Kubernetes-Pod einbetten. Benutzen Sie dazu die folgende Anleitung.
Schritt 1: Yaml-Datei erstellen
Erstellen Sie eine Datei mit dem Namen „ pod.yml ”-Datei und fügen Sie den folgenden Ausschnitt in die Datei ein:
APIVersion: v1Art: Pod
Metadaten:
Name: Demo-Pod
Spezifikation:
Behälter:
- Name: html-cont
Bild: rafia098 / html-img: 1,0
envVon:
- SecretRef:
Name: Demo-Geheimnis
Im obigen Ausschnitt:
- „ Art Der Schlüssel „gibt die Kubernetes-Ressource an, die der Benutzer erstellt.
- „ Name Mit der Taste „“ wird der Pod-Name festgelegt.
- „ Behälter Mit der Taste „Speichern“ werden die Containerinformationen gespeichert.
- „ Name Mit der Taste „“ unter der Taste „Container“ wird der Containername festgelegt.
- „ Bild Der Schlüssel „stellt das Anwendungs- oder Container-Image bereit, um die Anwendung im Container zu erstellen und zu starten.
- „ envFrom Mit dem Schlüssel „“ wird die Umgebungsvariable von anderen Kubernetes-Ressourcen festgelegt. Hier, um das geheime TLS in einen Pod einzubetten: „ SecretRef „wird verwendet, um eine geheime Referenz bereitzustellen. Um das obige geheime TLS einzubetten, geben Sie den Namen des Geheimnisses im Schlüssel „Name“ an.
Schritt 2: Erstellen oder aktualisieren Sie den Pod
Öffnen Sie als Nächstes den Ordner, in dem sich „ pod.yml „Datei wird erstellt:
CD C:\Benutzer\Dell\Dokumente\Kubernetes\Secret
Wenden Sie die Yaml-Datei an, um den Pod zu erstellen oder neu zu konfigurieren, indem Sie „ kubectl anwenden ' Befehl:
kubectl anwenden -F pod.yml
Schritt 3: Greifen Sie auf Kubernetes-Pods zu
Listen Sie zur Überprüfung die Kubernetes-Pods auf:
kubectl holt PodHier können Sie sehen, dass wir das „ Demo-Pod ' erfolgreich:
Schritt 4: Beschreiben Sie den Pod
Um zu überprüfen, ob der Pod das geheime TLS eingebettet hat oder nicht, beschreiben Sie den Pod mit dem folgenden Befehl:
kubectl beschreibt den Pod-Demo-PodDie folgende Ausgabe zeigt, dass wir das TLS-Geheimnis erfolgreich in den Pod eingebettet haben:
Wir haben erläutert, wie man geheimes TLS erstellt und es in die im Pod ausgeführte Kubernetes-Anwendung einbettet.
Abschluss
Um das geheime TLS in Kubernetes zu erstellen, erstellen Sie zunächst das TLS-signierte Zertifikat und den privaten Schlüssel. Starten Sie anschließend den Kubernetes-Cluster und führen Sie „ kubectl erstellt Geheimnis