Aus dem Kurs: Kubernetes lernen

ConfigMap und Secret erstellen – Tutorial zu Kubernetes

Aus dem Kurs: Kubernetes lernen

ConfigMap und Secret erstellen

Nun werden wir für unser MongoDB/Mongo-Express-Setup als Erstes ConfigMap- und Secret-Komponenten erstellen. Hier habe ich die ConfigMap-Konfigurationsdatei schon vorbereitet und Sie sehen, das ist ziemlich einfache Syntax bzw. die configmap.yaml-Datei ist ziemlich einfach strukturiert. In den ersten zwei Zeilen haben wir ConfigMap-Typ, also "kind", welche Komponente wir erstellen, die Metadaten, wo der Name drin steht, und das ist der Hauptteil, wo die Inhalte von ConfigMap definiert werden. Im data-Bereich können wir Key-Value-Pairs auflisten. Das heißt in unserem Fall, für unser Setup, brauchen wir Datenbank-Endpoint in unserem ConfigMap. Das heißt, hier kann ich als Key-Value-Pair definieren "db_host" und das wäre der interne Service von MongoDB. Und die können wir nennen "mongodb-service". Das werden wir natürlich später auch erstellen. Und wenn wir diese Datei ausführen, wird eine ConfigMap-Komponente erstellt, die genau diesen Inhalt enthält. Als Nächstes haben wir eine Secret-Komponente, die eigentlich ziemlich gleich strukturiert ist wie ConfigMap. Hier haben wir auch Metadaten: Secret, kind. Und hier haben wir den Data-Bereich, wo auch Key-Value-Pairs aufgelistet werden können. Der Typ ist von Secret, weil es gibt mehrere Typen von Secret, die wir hier definieren können mit dem type-Attribut. Und hier habe ich für MongoDB username- und passwort-Keys definiert und was wichtig ist zu wissen, die Werte von diesen Key-Value-Daten in Secret muss in Base64 kodiert sein. Das heißt, die Werte, die "username" und "password" für MongoDB sein werden, müssen wir in Base64 kodieren und dann hier einfach reinkopieren. Wir können das auf der Kommandozeile machen, und zwar mit dem echo-Command. Mit "ech -n" und Username, dafür können wir nehmen, was wir wollen, also, in dem Fall nehme ich "user", und mit Pipe einfach "base64" und das gibt mir den kodierten Wert, den ich als Wert hier reinposten kann. Und das Gleiche für das Passwort. Natürlich können Sie auch das in einem anderen Tool machen, aber es geht auch mit dem echo-Command. Passwort können wir auch "pwd" z.B. nehmen und Base64-kodieren und das wäre der Wert. Nun haben wir die zwei Komponenten fertig konfiguriert und die können wir in dem Cluster jetzt erstellen. "kubectl apply"-Command, "mongodb=configmap.yaml" zuerst erstellen, dann secret und wir können das auch mit "kubectl get secret"-Command abrufen. Hier sehen wir "mongodb-secret" und "kubectl get configmap" wird unsere ConfigMap anzeigen.

Inhalt