ConfigMaps för konfiguration
Frikoppla applikationskonfiguration från containeravbildningar med hjälp av ConfigMaps.
ConfigMaps för konfiguration är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Introduktion till ConfigMaps
Applikationer behöver ofta konfigurationsdata, till exempel anslutningssträngar till databaser eller funktionsflaggor.
Om du hårdkodar denna information direkt i dina containeravbildningar blir de svårflexibla och svåra att uppdatera.
ConfigMaps gör det möjligt att externalisera och centralisera applikationens icke-känsliga konfiguration, så att avbildningarna förblir flexibla.
Vad är en ConfigMap?
En ConfigMap är ett Kubernetes-objekt som används för att lagra icke-känsliga data i nyckel-värdepar.
Se den som en central plats för dina applikationsinställningar, som kan nås av dina Pods.
- Kopplar bort konfigurationen: Separera konfigurationen från applikationskoden.
- Flexibilitet: Ändra enkelt inställningar utan att bygga om avbildningar.
- Portabilitet: Flytta appen mellan miljöer med olika konfigurationer.
Skapa ConfigMaps: imperativt
Du kan snabbt skapa en ConfigMap direkt från kommandoraden med kubectl create configmap.
Den här metoden passar bra för enkla engångskonfigurationer eller snabba tester.
Vi skapar en ConfigMap med namnet my-app-config och en inställning för loggnivå.
kubectl create configmap my-app-config \
--from-literal=log_level=INFOGranska din ConfigMap
När du har skapat en ConfigMap kan du visa dess detaljer och verifiera innehållet.
Använd kubectl get med flaggan -o yaml för att se den fullständiga YAML-definitionen, inklusive de data som lagras i den.
kubectl get configmap my-app-config -o yamlDeklarativ ConfigMap (YAML)
För produktion och versionshantering är det standard att definiera ConfigMaps med YAML-manifest.
Detta tillvägagångssätt gör konfigurationerna reproducerbara och enkla att hantera tillsammans med applikationskoden.
Här är ett YAML-exempel för konfigurationen av ett spel:
apiVersion: v1
kind: ConfigMap
metadata:
name: game-config
data:
game.properties: |
level=easy
player_limit=10
ui.properties: |
theme=dark
language=enTillämpa ConfigMap från YAML
För att skapa ConfigMap-objektet game-config sparar du YAML-innehållet från föregående scen i en fil (till exempel game-config.yaml).
Använd sedan kubectl apply -f för att distribuera den till klustret.
# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yamlConfigMaps som miljövariabler
Ett vanligt sätt för en Pod att använda ConfigMap-data är att injicera dem som miljövariabler.
Du kan ange enskilda nycklar som ska exponeras eller använda envFrom för att exponera alla nyckel-värdepar från en ConfigMap.
Detta är idealiskt för enkla applikationsinställningar.
apiVersion: v1
kind: Pod
metadata:
name: my-env-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo Log Level: $LOG_LEVEL && sleep 3600"]
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: my-app-config
key: log_levelDemo: Pod med miljökonfiguration
Vi kör Pod-definitionen för att se miljövariabeln LOG_LEVEL i praktiken.
Spara Pod-YAML-filen som env-pod.yaml, tillämpa den och kontrollera sedan Podens loggar.
# Save Pod YAML to env-pod.yaml
kubectl apply -f env-pod.yaml
kubectl logs my-env-pod
# Clean up
kubeclt delete pod my-env-podConfigMaps som monterade volymer
För applikationer som förväntar sig konfigurationsfiler (till exempel nginx.conf och application.properties) kan du montera en ConfigMap som en volym.
Varje nyckel-värdepar i ConfigMap-objektet blir en fil i den angivna monteringssökvägen i containern.
apiVersion: v1
kind: Pod
metadata:
name: my-volume-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo 'Contents of game.properties:' && cat /etc/config/game.properties && sleep 3600"]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: game-configDemo: Pod med monterad konfiguration
Nu distribuerar vi en Pod som monterar vår ConfigMap game-config som en volym.
Spara Pod-YAML-filen som volume-pod.yaml, tillämpa den och granska loggarna för att se innehållet i den monterade filen.
# Save Pod YAML to volume-pod.yaml
kubectl apply -f volume-pod.yaml
kubectl logs my-volume-pod
# Clean up
kubeclt delete pod my-volume-podSnabbkontroll: ConfigMaps
Vilket av följande påståenden om Kubernetes ConfigMaps är sant?
Sammanfattning: ConfigMaps
Bra jobbat! Du har lärt dig hur ConfigMaps hjälper till att hantera konfiguration i Kubernetes:
- Syfte: Lagra icke-känsliga konfigurationsdata som nyckel-värdepar.
- Skapande: Imperativt med
kubectl createeller deklarativt med YAML. - Användning: Som miljövariabler eller monterade filer i Pods.
- Fördel: Kopplar bort konfigurationen från applikationskoden och ökar flexibiliteten.
Härnäst utforskar vi hur du hanterar känslig information på ett säkert sätt med Kubernetes Secrets!
Lär dig DevOps-bootcamp med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”ConfigMaps för konfiguration” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”ConfigMaps för konfiguration”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”ConfigMaps för konfiguration”?
Frikoppla applikationskonfiguration från containeravbildningar med hjälp av ConfigMaps. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”ConfigMaps för konfiguration”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- ConfigMaps för konfiguration
- Secrets för känsliga data
- Beständiga volymer och anspråk
- StorageClasses och dynamisk provisionering