ConfigMaps og Secrets
Administrer konfigurasjonsdata og sensitiv informasjon på en sikker måte i Kubernetes-distribusjonene dine ved hjelp av ConfigMaps og Secrets.
ConfigMaps og Secrets er en gratis leksjon i Grunnleggende Docker og DevOps på CoddyKit. Dette er leksjon 3 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 Grunnleggende Docker og DevOps, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende Docker og DevOps inneholder totalt 4 leksjoner.
Introduksjon til ConfigMaps og Secrets
Velkommen! I denne leksjonen skal vi lære hvordan konfigurasjonsdata og sensitiv informasjon administreres i Kubernetes. Vi skal utforske ConfigMaps og Secrets, to viktige verktøy for fleksible og sikre applikasjonsdistribusjoner.

Hvorfor eksternalisere konfigurasjon?
Se for Dem at databaselegitimasjon eller API-nøkler er hardkodet direkte i Docker-imaget til applikasjonen Deres. Dette gjør oppdateringer vanskelige og eksponerer sensitive data.
- Ufleksibelt: Endringer krever at imaget bygges på nytt.
- Sikkerhetsrisiko: Sensitive data er bakt inn i imaget.
- Miljøspesifikt: Ulike miljøer (utvikling, produksjon) trenger ulike innstillinger.
ConfigMaps: Ikke-sensitive data
En ConfigMap er et Kubernetes-objekt som brukes til å lagre ikke-sensitive konfigurasjonsdata som nøkkel-verdi-par. Tenk på det som et sentralt sted for innstillingene til applikasjonen Deres, for eksempel loggnivåer eller API-endepunkter.
Den kobler konfigurasjonen fra applikasjonskoden, noe som gjør distribusjonene mer portable og enklere å administrere.
Definere en ConfigMap
De kan opprette en ConfigMap fra literalverdier, filer eller kataloger. Her er et enkelt eksempel definert i en YAML-fil:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-app-config
data:
log_level: "INFO"
api_endpoint: "http://myapi.example.com"ConfigMap som miljøvariabler
Når en ConfigMap er opprettet, kan en Pod bruke dataene som miljøvariabler. Dette er en vanlig måte å overføre innstillinger til applikasjonen Deres på.
Slik bruker en Pod vår my-app-config:
apiVersion: v1
kind: Pod
metadata:
name: configmap-env-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo Log Level: $LOG_LEVEL; echo API: $API_ENDPOINT"]
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: my-app-config
key: log_level
- name: API_ENDPOINT
valueFrom:
configMapKeyRef:
name: my-app-config
key: api_endpoint
restartPolicy: NeverConfigMap som monterte filer
Alternativt kan ConfigMap-data monteres som filer inne i containeren Deres. Hvert nøkkel-verdi-par blir en fil, der nøkkelen er filnavnet og verdien er innholdet.
Dette er nyttig for konfigurasjonsfiler som applikasjonen forventer å lese fra en bestemt sti.
apiVersion: v1
kind: Pod
metadata:
name: configmap-file-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "cat /etc/config/log_level; cat /etc/config/api_endpoint"]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: my-app-config
restartPolicy: NeverSecrets: Sensitive data
Secrets ligner på ConfigMaps, men er utviklet for sensitive data som passord, API-nøkler eller TLS-sertifikater. Kubernetes hjelper Dem med å administrere og distribuere dem på en sikker måte.
Mens ConfigMaps lagrer data i klartekst, er Secrets base64-kodet. Dette er IKKE kryptering, men det hindrer utilsiktet eksponering.
Definere en Secret
Når De oppretter en Secret, må verdiene være base64-kodet. De kan bruke echo -n 'my-password' | base64 til å kode dem.
Her er et eksempel på et databasepassord:
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: YWRtaW4= # base64 of 'admin'
password: c3VwZXJzZWNyZXRwYXNz # base64 of 'supersecretpass'Bruke Secrets i Pods
Pods bruker Secrets på omtrent samme måte som ConfigMaps: som miljøvariabler eller monterte filer. Kubernetes dekoder dem automatisk før de presenteres for containeren.
Av sikkerhetshensyn foretrekkes det vanligvis å bruke dem som monterte filer, siden miljøvariabler lettere kan logges eller inspiseres.
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: my-app-container
image: busybox
command: ["sh", "-c", "echo DB User: $DB_USERNAME; echo DB Pass: $DB_PASSWORD"]
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-credentials
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
restartPolicy: NeverBeste sikkerhetspraksis
Husk at base64-koding ikke er kryptering. For ekte kryptering i hvile kan De trenge en Kubernetes Secrets-backend (for eksempel Vault) eller bruke KMS-tjenester fra en skyleverandør.
- RBAC: Kontroller hvem som har tilgang til Secrets.
- Minste privilegium: Gi bare Pods tilgang til Secrets de trenger.
- Monterte filer: Foretrekk å montere Secrets som filer fremfor å bruke miljøvariabler.
Rask sjekk av konfigurasjon
De må lagre en API-nøkkel (sensitiv) og en innstilling for loggnivå (ikke-sensitiv) for applikasjonen Deres i Kubernetes.
Hvilke Kubernetes-objekter bør De bruke for hver av dem, i samme rekkefølge?
Oppsummering: ConfigMaps og Secrets
Godt jobbet! De har lært hvordan applikasjonskonfigurasjon og sensitive data administreres i Kubernetes.
- ConfigMaps: Lagrer ikke-sensitive nøkkel-verdi-par.
- Secrets: Lagrer sensitive data (base64-kodet).
- Begge kan brukes som miljøvariabler eller monterte filer av Pods.
- Følg alltid beste sikkerhetspraksis når De håndterer sensitiv informasjon.
Deretter kan De utforske avanserte sikkerhetstemaer som RBAC og eksterne løsninger for Secrets-administrasjon.
Lær deg Grunnleggende Docker og DevOps 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
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «ConfigMaps og Secrets» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende Docker og DevOps, inkludert «ConfigMaps og Secrets», 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 Grunnleggende Docker og DevOps inneholder totalt 4 leksjoner.
Hva lærer jeg i «ConfigMaps og Secrets»?
Administrer konfigurasjonsdata og sensitiv informasjon på en sikker måte i Kubernetes-distribusjonene dine ved hjelp av ConfigMaps og Secrets. Du øver på Grunnleggende Docker og DevOps 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 Grunnleggende Docker og DevOps?
Ingen tidligere erfaring er nødvendig. Grunnleggende Docker og DevOps 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 3 av 4.
Hvor lang tid tar leksjonen «ConfigMaps og Secrets»?
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 Grunnleggende Docker og DevOps-leksjonen?
Ja. Alle Grunnleggende Docker og DevOps-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
- Deployments for tilstandsløse apper
- Services for nettverkstilgang
- ConfigMaps og Secrets
- Ingress og ekstern ruting