Einführung
In diesem Lab lernen Sie, wie Sie ConfigMaps in Kubernetes verwenden, um Ihre Anwendungen zu konfigurieren. ConfigMaps bieten eine Möglichkeit, Konfigurationsdaten von Ihrem Anwendungs-Code zu trennen, sodass Sie die Anwendungs-Konfiguration einfach verwalten und aktualisieren können, ohne die Anwendung selbst zu ändern.
Starten Sie das Minikube-Cluster
Bevor Sie Ressourcen erstellen, benötigen Sie einen laufenden Kubernetes-Cluster. Minikube ist eine leichte Kubernetes-Umgebung, die auf Ihrem lokalen Rechner läuft.
Navigieren Sie zu Ihrem Arbeitsverzeichnis:
Öffnen Sie das Terminal und navigieren Sie zum Standard-Projektordner:
cd /home/labex/projectStarten Sie Minikube:
Starten Sie Minikube, um einen Kubernetes-Cluster zu initialisieren:
minikube start- Dieser Befehl richtet einen Ein-Knoten-Kubernetes-Cluster auf Ihrem lokalen Rechner ein.
- Minikube kann je nach Leistung Ihres Systems einige Minuten dauern, um zu starten.
Überprüfen Sie, ob Minikube läuft:
Überprüfen Sie den Status des Minikube-Clusters:
minikube status- Suchen Sie nach Komponenten wie
kubeletundapiserver, die alsRunningaufgeführt sind. - Wenn der Cluster nicht läuft, führen Sie
minikube starterneut aus.
- Suchen Sie nach Komponenten wie
Wenn Sie Probleme beim Starten von Minikube haben, können Sie minikube delete verwenden, um die Umgebung bei Bedarf zurückzusetzen.
Erstellen Sie eine ConfigMap
In diesem Schritt erstellen Sie eine ConfigMap, die die Konfigurationsdaten für Ihre Anwendung enthält.
Erstellen Sie eine Datei mit dem Namen configmap.yaml im Verzeichnis /home/labex/project/ mit folgendem Inhalt:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
DATABASE_URL: postgres://user:password@host:port/dbname
Diese ConfigMap enthält ein einzelnes Schlüssel-Wert-Paar, wobei der Schlüssel DATABASE_URL ist und der Wert eine PostgreSQL-Datenbank-Verbindungszeichenfolge ist.
Um die ConfigMap zu erstellen, führen Sie den folgenden Befehl aus:
kubectl apply -f configmap.yaml
Verwenden Sie die ConfigMap in Ihrer Anwendung
In diesem Schritt verwenden Sie die ConfigMap in Ihrer Anwendung.
Erstellen Sie eine Datei mit dem Namen deployment.yaml im Verzeichnis /home/labex/project/ mit folgendem Inhalt:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
env:
- name: DATABASE_URL
valueFrom:
configMapKeyRef:
name: my-config
key: DATABASE_URL
Diese Bereitstellung (Deployment) gibt einen einzelnen Container an, der Ihre Anwendung ausführt und die Umgebungsvariable DATABASE_URL verwendet, um sich mit einer PostgreSQL-Datenbank zu verbinden. Der Wert von DATABASE_URL wird aus der ConfigMap my-config abgerufen.
Um die Bereitstellung zu erstellen, führen Sie den folgenden Befehl aus:
kubectl apply -f deployment.yaml
Überprüfen Sie die Konfiguration
In diesem Schritt überprüfen Sie, ob die Konfiguration auf Ihre Anwendung angewendet wurde.
Zuerst finden Sie den Namen des Pods, der Ihre Anwendung ausführt, indem Sie den folgenden Befehl ausführen:
kubectl get pods -l app=my-app
Sie sollten einen einzelnen Pod sehen, der Ihre Anwendung ausführt. Notieren Sie sich den Namen des Pods.
Als Nächstes führen Sie den folgenden Befehl aus, um eine Shell-Sitzung im Container zu öffnen, der Ihre Anwendung ausführt:
kubectl exec -it pod-name -- /bin/sh
Ersetzen Sie <pod-name> durch den Namen des Pods, den Sie zuvor notiert haben.
Sobald Sie in der Shell-Sitzung sind, führen Sie den folgenden Befehl aus, um den Wert der Umgebungsvariable DATABASE_URL auszugeben:
echo $DATABASE_URL
Sie sollten die Datenbank-Verbindungszeichenfolge sehen, die Sie in der ConfigMap festgelegt haben.
Aktualisieren Sie die ConfigMap
In diesem Schritt aktualisieren Sie die ConfigMap und sehen, wie sich dies auf Ihre Anwendung auswirkt.
Aktualisieren Sie die Datei configmap.yaml mit einem neuen Wert für den Schlüssel DATABASE_URL:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
DATABASE_URL: postgres://newuser:newpassword@newhost:newport/newdbname
Dadurch wird der Schlüssel DATABASE_URL auf einen neuen Wert aktualisiert.
Um die ConfigMap zu aktualisieren, führen Sie den folgenden Befehl aus:
kubectl apply -f configmap.yaml
Überprüfen Sie die Aktualisierung
In diesem Schritt überprüfen Sie, ob die Aktualisierung der ConfigMap auf Ihre Anwendung angewendet wurde.
Zuerst finden Sie den Namen des Pods, der Ihre Anwendung ausführt, indem Sie den folgenden Befehl ausführen:
kubectl get pods -l app=my-app
Sie sollten einen einzelnen Pod sehen, der Ihre Anwendung ausführt. Notieren Sie sich den Namen des Pods.
Als Nächstes führen Sie den folgenden Befehl aus, um eine Shell-Sitzung im Container zu öffnen, der Ihre Anwendung ausführt:
kubectl exec -it pod-name -- /bin/sh
Ersetzen Sie <pod-name> durch den Namen des Pods, den Sie zuvor notiert haben.
Sobald Sie in der Shell-Sitzung sind, führen Sie den folgenden Befehl aus, um den Wert der Umgebungsvariable DATABASE_URL auszugeben:
echo $DATABASE_URL
Sie können sehen, dass die Konfiguration nicht wirksam geworden ist, es sind immer noch die gleichen Daten wie zuvor. Sie müssen das Deployment (Bereitstellung) mit dem folgenden Befehl neu starten.
kubectl rollout restart deployment my-app
Wenn das Neustarten abgeschlossen ist, gehen Sie erneut in den Container hinein und verwenden Sie den obigen Befehl, um die Konfiguration zu überprüfen.
Sie sollten die aktualisierte Datenbank-Verbindungszeichenfolge sehen.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie ConfigMaps in Kubernetes verwenden, um Ihre Anwendungen zu konfigurieren. Sie haben eine ConfigMap mit Konfigurationsdaten erstellt, die ConfigMap in Ihrer Anwendung genutzt und die ConfigMap aktualisiert, um zu sehen, wie sich dies auf Ihre Anwendung auswirkt. Sie haben auch gelernt, wie Sie überprüfen können, ob die Konfiguration auf Ihre Anwendung angewendet wurde, und wie Sie die im Lab erstellten Ressourcen bereinigen können.


