DevOps-bootcamp · leksjon

ConfigMaps for konfigurasjon

Skill applikasjonskonfigurasjonen fra containerbildene ved hjelp av ConfigMaps.

Leksjon 1 av 412 trinn

ConfigMaps for konfigurasjon er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Introduksjon til ConfigMaps

Applikasjoner trenger ofte konfigurasjonsdata, for eksempel tilkoblingsstrenger til databaser eller funksjonsflagg.

Hvis du hardkoder denne informasjonen direkte i containeravbildningene, kan de bli lite fleksible og vanskelige å oppdatere.

ConfigMaps gjør det mulig å eksterne og sentralisere applikasjonens ikke-sensitive konfigurasjon, slik at avbildningene forblir fleksible.

Hva er en ConfigMap?

En ConfigMap er et Kubernetes-objekt som brukes til å lagre ikke-sensitive data som nøkkel-verdi-par.

Tenk på den som et sentralt sted for applikasjonsinnstillinger som kan brukes av Pods.

  • Kobler konfigurasjonen fra: Skiller konfigurasjonen fra applikasjonskoden.
  • Fleksibilitet: Gjør det enkelt å endre innstillinger uten å bygge avbildninger på nytt.
  • Portabilitet: Gjør det mulig å flytte appen mellom miljøer med ulik konfigurasjon.

Opprette ConfigMaps: Imperativt

Du kan raskt opprette en ConfigMap direkte fra kommandolinjen ved hjelp av kubectl create configmap.

Denne metoden egner seg godt for enkle engangskonfigurasjoner eller rask testing.

La oss opprette en ConfigMap med navnet my-app-config og en innstilling for loggnivå.

kubectl create configmap my-app-config \
  --from-literal=log_level=INFO

Undersøke ConfigMap

Etter at du har opprettet en ConfigMap, kan du vise detaljene og kontrollere innholdet.

Bruk kubectl get sammen med flagget -o yaml for å se hele YAML-definisjonen, inkludert dataene som er lagret i den.

kubectl get configmap my-app-config -o yaml

Deklarativ ConfigMap (YAML)

For produksjon og versjonskontroll er det vanlig praksis å definere ConfigMaps ved hjelp av YAML-manifester.

Denne tilnærmingen gjør konfigurasjonene reproduserbare og enkle å administrere sammen med applikasjonskoden.

Her er et YAML-eksempel på konfigurasjonen til et spill:

apiVersion: v1
kind: ConfigMap
metadata:
  name: game-config
data:
  game.properties: |
    level=easy
    player_limit=10
  ui.properties: |
    theme=dark
    language=en

Bruke ConfigMap fra YAML

For å opprette ConfigMap-en game-config lagrer du YAML-innholdet fra forrige scene i en fil (for eksempel game-config.yaml).

Bruk deretter kubectl apply -f for å distribuere den til klyngen.

# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yaml

ConfigMaps som miljøvariabler

En vanlig måte for en Pod å bruke data fra en ConfigMap på er å injisere dem som miljøvariabler.

Du kan angi individuelle nøkler som skal eksponeres, eller bruke envFrom for å eksponere alle nøkkel-verdi-parene fra en ConfigMap.

Dette egner seg godt for enkle applikasjonsinnstillinger.

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økonfigurasjon

La oss kjøre Pod-definisjonen for å se miljøvariabelen LOG_LEVEL i bruk.

Lagre Pod-YAML-en i env-pod.yaml, bruk den, og kontroller deretter loggene til Pod-en.

# 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 monterte volumer

For applikasjoner som forventer konfigurasjonsfiler (for eksempel nginx.conf og application.properties) kan du montere en ConfigMap som et volum.

Hvert nøkkel-verdi-par i ConfigMap-en blir en fil i den angitte monteringsstien inne i containeren.

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 montert konfigurasjon

La oss nå distribuere en Pod som monterer ConfigMap-en game-config som et volum.

Lagre Pod-YAML-en i volume-pod.yaml, bruk den, og undersøk loggene for å se innholdet i den monterte 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

Kort kontroll: ConfigMaps

Hvilket av de følgende utsagnene om Kubernetes ConfigMaps er riktig?

Oppsummering: ConfigMaps

Godt jobbet! Du har lært hvordan ConfigMaps bidrar til å håndtere konfigurasjon i Kubernetes:

  • Formål: Lagre ikke-sensitive konfigurasjonsdata som nøkkel-verdi-par.
  • Opprettelse: Imperativt med kubectl create eller deklarativt med YAML.
  • Bruk: Som miljøvariabler eller monterte filer i Pods.
  • Fordel: Kobler konfigurasjonen fra applikasjonskoden og gir større fleksibilitet.

Deretter skal vi se på hvordan du håndterer sensitiv informasjon på en sikker måte ved hjelp av Kubernetes Secrets!

Gratis å komme i gang

Lær deg DevOps-bootcamp med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
142
Leksjoner
568

Ofte stilte spørsmål

Er leksjonen «ConfigMaps for konfigurasjon» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «ConfigMaps for konfigurasjon», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva lærer jeg i «ConfigMaps for konfigurasjon»?

Skill applikasjonskonfigurasjonen fra containerbildene ved hjelp av ConfigMaps. Du øver på DevOps-bootcamp med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med DevOps-bootcamp?

Ingen tidligere erfaring er nødvendig. DevOps-bootcamp på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «ConfigMaps for konfigurasjon»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne DevOps-bootcamp-leksjonen?

Ja. Alle DevOps-bootcamp-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. ConfigMaps for konfigurasjon
  2. Secrets for sensitive data
  3. Persistent Volumes og Claims
  4. StorageClasses og dynamisk klargjøring
← Tilbake til DevOps-bootcamp