DevOps-bootcamp · Lektion

ConfigMaps för konfiguration

Frikoppla applikationskonfiguration från containeravbildningar med hjälp av ConfigMaps.

Lektion 1 av 412 steg

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=INFO

Granska 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 yaml

Deklarativ 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=en

Tillä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 yaml

ConfigMaps 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_level

Demo: 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-pod

ConfigMaps 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-config

Demo: 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-pod

Snabbkontroll: 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 create eller 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!

Gratis att börja

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

  1. ConfigMaps för konfiguration
  2. Secrets för känsliga data
  3. Beständiga volymer och anspråk
  4. StorageClasses och dynamisk provisionering
← Tillbaka till DevOps-bootcamp