ConfigMaps for konfigurasjon
Skill applikasjonskonfigurasjonen fra containerbildene ved hjelp av ConfigMaps.
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=INFOUndersø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 yamlDeklarativ 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=enBruke 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 yamlConfigMaps 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_levelDemo: 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-podConfigMaps 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-configDemo: 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-podKort 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 createeller 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!
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
- ConfigMaps for konfigurasjon
- Secrets for sensitive data
- Persistent Volumes og Claims
- StorageClasses og dynamisk klargjøring