Configurer votre application
Une même image de conteneur doit pouvoir tourner en dev et en prod : la configuration ne se met pas dans l’image, elle s’injecte au déploiement. Kubernetes fournit deux objets pour ça :
- ConfigMap : configuration non sensible (URLs, options, fichiers de conf) ;
- Secret : données sensibles (mots de passe, tokens, clés d’API).
Exemple complet, prêt à copier :
apiVersion: v1kind: ConfigMapmetadata: name: mon-app-configdata: APP_ENV: "production" nginx.conf: | server { listen 8080; }---apiVersion: v1kind: Secretmetadata: name: mon-app-secretsstringData: DB_PASSWORD: "changez-moi"Créer une ConfigMap et un Secret
-
Dans votre namespace, ouvrez Storage › ConfigMaps (ou Storage › Secrets).
-
Cliquez sur Create, nommez l’objet, puis saisissez vos paires clé/valeur.
-
Validez avec Create.
# ConfigMap depuis des littérauxkubectl create configmap mon-app-config \ --from-literal=APP_ENV=production -n <namespace>
# ConfigMap depuis un fichierkubectl create configmap mon-app-config \ --from-file=nginx.conf -n <namespace>
# Secretkubectl create secret generic mon-app-secrets \ --from-literal=DB_PASSWORD='changez-moi' -n <namespace>Les injecter dans un conteneur
En variables d’environnement
containers: - name: web image: mon-app:1.0 env: # Une clé précise d'un Secret - name: DB_PASSWORD valueFrom: secretKeyRef: name: mon-app-secrets key: DB_PASSWORD # Toutes les clés d'une ConfigMap d'un coup envFrom: - configMapRef: name: mon-app-configEn fichiers montés
Idéal pour les fichiers de configuration complets :
containers: - name: web image: nginx:alpine volumeMounts: - name: config mountPath: /etc/nginx/conf.dvolumes: - name: config configMap: name: mon-app-config items: - key: nginx.conf path: default.confBonnes pratiques
- Jamais de secrets dans l’image ni dans le YAML committé. Utilisez
stringDatalocalement, ou créez les Secrets viakubectl create secret/ Rancher, hors de votre dépôt Git. - Un objet par application plutôt qu’une ConfigMap géante partagée : les rollouts restent ciblés.
- Quotas : 50 ConfigMaps et 50 Secrets par namespace (détails).
Étapes suivantes
- Exposer votre application ;
- Migrer depuis un docker-compose — la
conversion
environment:/env_file:→ ConfigMap/Secret y est détaillée.