Skip to content

Lab7 ConfigMap Solution

ConfigMap de type Volume

Copier le fichier /etc/nginx/nginx.conf à partir d’un pod web existant

Terminal window
kubectl cp web:/etc/nginx/nginx.conf nginx.conf

Modifier le fichier et créer un ConfigMap nommé nginx-conf

Terminal window
kubectl create configmap nginx-conf --from-file=nginx.conf

Créer un pod web avec le ConfigMap nginx-conf

Terminal window
vi web.yml
apiVersion: v1
kind: Pod
metadata:
name: web
labels:
app: web
spec:
containers:
- name: www
image: nginx:1.21-alpine
volumeMounts:
- name: config
mountPath: "/etc/nginx/nginx.conf"
subPath: "nginx.conf"
volumes:
- name: config
configMap:
name: nginx-conf

Vérifier le fichier de conf /etc/nginx/nginx.conf du pod web

Terminal window
kubectl exec -it web -- sh
cat /etc/nginx/nginx.conf

ConfigMap de type variable d’environnement

Créer un ConfigMap nommé mysql-pass qui contient une clé password et une valeur root

Terminal window
vi cm-mysql.yml
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-pass
data:
password: root
Terminal window
kubectl apply -f cm-mysql.yml

Créer un pod mysql et initialiser le ROOT_PASSWORD de mysql

Terminal window
vi mysql.yml
apiVersion: v1
kind: Pod
metadata:
name: mysql
spec:
containers:
- image: mysql:8.0
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
configMapKeyRef:
name: mysql-pass
key: password
Terminal window
kubectl apply -f mysql.yml

Vérifier que le pod mysql est Running

Terminal window
kubectl get pods