ConfigMaps og Secrets
Administrer konfigurationsdata og følsomme oplysninger sikkert i Deres Kubernetes-deployments ved hjælp af ConfigMaps og Secrets.
ConfigMaps og Secrets er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Introduktion til ConfigMaps og Secrets
Velkommen! I denne lektion lærer du, hvordan du administrerer konfigurationsdata og følsomme oplysninger i Kubernetes. Vi udforsker ConfigMaps og Secrets, to vigtige værktøjer til fleksible og sikre applikationsudrulninger.

Hvorfor eksternalisere konfiguration?
Forestil dig, at databaseoplysninger eller API-nøgler er skrevet direkte ind i din applikations Docker-image. Det gør opdateringer vanskelige og afslører følsomme data.
- Ufleksibilitet: Ændringer kræver, at imaget bygges igen.
- Sikkerhedsrisiko: Følsomme data er indbygget i imaget.
- Miljøspecifikt: Forskellige miljøer (udvikling, produktion) kræver forskellige indstillinger.
ConfigMaps: Ikke-følsomme data
En ConfigMap er et Kubernetes-objekt, der bruges til at gemme ikke-følsomme konfigurationsdata som nøgle-værdi-par. Tænk på den som et centralt sted til din apps indstillinger, f.eks. logniveauer eller API-slutpunkter.
Den afkobler konfigurationen fra din applikationskode, så dine udrulninger bliver mere portable og nemmere at administrere.
Definér en ConfigMap
Du kan oprette en ConfigMap ud fra bogstavelige værdier, filer eller mapper. Her er et enkelt eksempel defineret 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 den er oprettet, kan en Pod bruge data fra en ConfigMap som miljøvariabler. Det er en almindelig måde at sende indstillinger til din applikation på.
Sådan bruger en Pod vores 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 monterede filer
Alternativt kan data fra en ConfigMap monteres som filer i din container. Hvert nøgle-værdi-par bliver til en fil, hvor nøglen er filnavnet, og værdien er indholdet.
Det er nyttigt til konfigurationsfiler, som din applikation forventer at læse 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: Følsomme data
Secrets minder om ConfigMaps, men er udviklet til følsomme data som adgangskoder, API-nøgler eller TLS-certifikater. Kubernetes hjælper dig med at administrere og distribuere dem sikkert.
Mens ConfigMaps gemmer data i klartekst, er Secrets base64-kodede. Det er IKKE kryptering, men det forhindrer utilsigtet eksponering.
Definér en Secret
Når du opretter en Secret, skal værdierne være base64-kodede. Du kan bruge echo -n 'my-password' | base64 til at kode dem.
Her er et eksempel på en databaseadgangskode:
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: YWRtaW4= # base64 of 'admin'
password: c3VwZXJzZWNyZXRwYXNz # base64 of 'supersecretpass'Brug af Secrets i Pods
Secrets bruges af Pods på næsten samme måde som ConfigMaps: som miljøvariabler eller monterede filer. Kubernetes afkoder dem automatisk, før de præsenteres for containeren.
Af sikkerhedshensyn foretrækkes det generelt at bruge dem som monterede filer, da miljøvariabler lettere kan logges eller inspiceres.
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: NeverBedste praksis for sikkerhed
Husk, at base64-kodning ikke er kryptering. Hvis du har brug for ægte kryptering ved lagring, kan du få brug for en backend til Kubernetes Secrets (som Vault) eller benytte cloududbyderens KMS-tjenester.
- RBAC: Styr, hvem der har adgang til Secrets.
- Mindste privilegium: Giv kun Pods adgang til de Secrets, de har brug for.
- Monterede filer: Foretræk at montere Secrets som filer frem for at bruge miljøvariabler.
Hurtigt tjek af konfiguration
Du skal gemme en API-nøgle (følsom) og en indstilling for logniveau (ikke-følsom) til din applikation i Kubernetes.
Hvilke Kubernetes-objekter skal du bruge til hver af dem?
Opsummering: ConfigMaps og Secrets
Godt gået! Du har lært, hvordan du administrerer applikationskonfiguration og følsomme data i Kubernetes.
- ConfigMaps: Gemmer ikke-følsomme nøgle-værdi-par.
- Secrets: Gemmer følsomme data (base64-kodede).
- Begge kan bruges som miljøvariabler eller monterede filer af Pods.
- Følg altid bedste praksis for sikkerhed, når du håndterer følsomme oplysninger.
Dernæst kan du udforske avancerede sikkerhedsemner som RBAC og eksterne løsninger til administration af Secrets.
Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “ConfigMaps og Secrets” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “ConfigMaps og Secrets”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “ConfigMaps og Secrets”?
Administrer konfigurationsdata og følsomme oplysninger sikkert i Deres Kubernetes-deployments ved hjælp af ConfigMaps og Secrets. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “ConfigMaps og Secrets”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Deployments til stateless-apps
- Services til netværksadgang
- ConfigMaps og Secrets
- Ingress og ekstern routing