<jupyter_start><jupyter_text>Übung: ConfigMap---------------------------Am Beispiel von Apache Web Server soll der Einsatz von ConfigMap Demonstriert werden.Zuerst müssen die ConfigMaps mittels `kubectl` erstellt werden. Vorher erstellen wir eine neue Namespace `configmap` um Erstellen Ressourcen von den anderen zu trennen:<jupyter_code>! kubectl create namespace configmap
! kubectl create configmap web2 --from-file=index=09-8-ConfigMap/index-2.html -n configmap
! kubectl create configmap web1 --from-file=index=09-8-ConfigMap/index-1.html -n configmap<jupyter_output><empty_output><jupyter_text>Die so erstellen ConfigMaps, hätten wir auch im YAML Format beschreiben können. Deshalb geben wir uns diese im YAML Format aus:<jupyter_code>! kubectl get configmap -o yaml -n configmap<jupyter_output><empty_output><jupyter_text>Anschliessend sind die Volumes in der YAML Datei so zu setzen, dass sie auf die ConfigMap Keys zugreifen- - -    apiVersion: v1    kind: Pod    metadata:      labels:        app.kubernetes.io/name: web1      name: web1      namespace: configmap      spec:      containers:      - image: httpd        name: apache        volumeMounts:             - name: config-volume           mountPath: /usr/local/apache2/htdocs      volumes:        - name: config-volume          configMap:            name: web1            items:            - key: index              path: index.html- - -Dann können wir die Pods und Services erstellen:<jupyter_code>! kubectl apply -f 09-8-ConfigMap -n configmap<jupyter_output><empty_output><jupyter_text>Die Ausgaben der Web Server mit den jeweiligen `index.html` Dateien bzw. ConfigMap schauen wir uns an:<jupyter_code>! echo "Web Server 1: " $(kubectl config view -o=jsonpath='{ .clusters[0].cluster.server }' | sed -e 's/https:/http:/' -e "s/6443/$(kubectl get service web1 -n configmap -o=jsonpath='{ .spec.ports[0].nodePort }')/")
! echo "Web Server 2: " $(kubectl config view -o=jsonpath='{ .clusters[0].cluster.server }' | sed -e 's/https:/http:/' -e "s/6443/$(kubectl get service web2 -n configmap -o=jsonpath='{ .spec.ports[0].nodePort }')/")<jupyter_output><empty_output><jupyter_text>Und wir schauen uns Verzeichnis und Dateiinhalt an, wie die Pods diese sehen:<jupyter_code>! kubectl exec -n configmap web1 -- ls -la /usr/local/apache2/htdocs
! kubectl exec -n configmap web1 -- cat /usr/local/apache2/htdocs/index.html<jupyter_output><empty_output><jupyter_text>Aufräumen<jupyter_code>! kubectl delete namespace configmap<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11556791104050834, 'fraction_numerical': 0.015091342335186657, 'mean_word_length': 3.743879472693032, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '204809', 'license': 'Apache-2.0', 'n_tokens_mistral': 873, 'n_tokens_neox': 864, 'n_words': 235, 'path': 'data/jupyter/09-8-ConfigMap.ipynb', 'repo_name': 'mc-b/duk', 'size': '2518'}