ConfigMap per la configurazione
Esternalizzi la configurazione dell'applicazione dalle immagini dei container utilizzando i ConfigMap.
ConfigMap per la configurazione è una lezione Kubernetes Basics gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kubernetes Basics, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kubernetes Basics include 4 lezioni in totale.
Introduzione ai ConfigMap
Le applicazioni hanno spesso bisogno di dati di configurazione, come stringhe di connessione al database o flag delle funzionalità.
Inserire queste informazioni direttamente nelle immagini dei container può renderle rigide e difficili da aggiornare.
I ConfigMap consentono di esternalizzare e centralizzare la configurazione non sensibile dell'applicazione, mantenendo flessibili le immagini.
Che cos'è un ConfigMap?
Un ConfigMap è un oggetto Kubernetes usato per archiviare dati non sensibili in coppie chiave-valore.
Lo si può considerare un luogo centralizzato per le impostazioni dell'applicazione, a cui possono accedere i Pod.
- Separazione della configurazione: separa la configurazione dal codice dell'applicazione.
- Flessibilità: consente di modificare facilmente le impostazioni senza ricreare le immagini.
- Portabilità: permette di spostare l'applicazione tra ambienti con configurazioni diverse.
Creazione imperativa di ConfigMap
Può creare rapidamente un ConfigMap direttamente dalla riga di comando usando kubectl create configmap.
Questo metodo è ideale per configurazioni semplici e occasionali o per test rapidi.
Creiamo un ConfigMap denominato my-app-config con un'impostazione per il livello di log.
kubectl create configmap my-app-config \
--from-literal=log_level=INFOIspezione del ConfigMap
Dopo aver creato un ConfigMap, può visualizzarne i dettagli e verificarne i contenuti.
Usi kubectl get con il flag -o yaml per visualizzare la definizione YAML completa, inclusi i dati archiviati.
kubectl get configmap my-app-config -o yamlConfigMap dichiarativo (YAML)
Per la produzione e il controllo della versione, la pratica standard consiste nel definire i ConfigMap usando manifest YAML.
Questo approccio rende le configurazioni riproducibili e facili da gestire insieme al codice dell'applicazione.
Ecco un esempio YAML per la configurazione di un gioco:
apiVersion: v1
kind: ConfigMap
metadata:
name: game-config
data:
game.properties: |
level=easy
player_limit=10
ui.properties: |
theme=dark
language=enApplicazione di un ConfigMap da YAML
Per creare il ConfigMap game-config, salvi in un file il contenuto YAML della scena precedente (ad esempio game-config.yaml).
Quindi usi kubectl apply -f per eseguirne il deployment nel cluster.
# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yamlConfigMap come variabili d'ambiente
Un modo comune per consentire a un Pod di usare i dati di un ConfigMap consiste nell'iniettarli come variabili d'ambiente.
Può specificare le singole chiavi da esporre oppure usare envFrom per esporre tutte le coppie chiave-valore di un ConfigMap.
Questa soluzione è ideale per le impostazioni semplici dell'applicazione.
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 con configurazione d'ambiente
Eseguiamo la definizione del Pod per vedere in azione la variabile d'ambiente LOG_LEVEL.
Salvi il YAML del Pod in env-pod.yaml, lo applichi e quindi controlli i log del Pod.
# 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-podConfigMap come volumi montati
Per le applicazioni che si aspettano file di configurazione (ad esempio nginx.conf, application.properties), può montare un ConfigMap come volume.
Ogni coppia chiave-valore del ConfigMap diventa un file all'interno del percorso di mount specificato nel container.
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 con configurazione montata
Ora eseguiamo il deployment di un Pod che monta il ConfigMap game-config come volume.
Salvi il YAML del Pod in volume-pod.yaml, lo applichi e ispezioni i log per visualizzare il contenuto del file montato.
# 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-podVerifica rapida: ConfigMap
Quale delle seguenti affermazioni sui ConfigMap Kubernetes è vera?
Riepilogo: ConfigMap
Ottimo lavoro! Ha imparato come i ConfigMap aiutano a gestire la configurazione in Kubernetes:
- Scopo: archiviare dati di configurazione non sensibili come coppie chiave-valore.
- Creazione: in modo imperativo con
kubectl createo in modo dichiarativo con YAML. - Utilizzo: come variabili d'ambiente o file montati nei Pod.
- Vantaggio: separano la configurazione dal codice dell'applicazione, aumentandone la flessibilità.
Ora esamineremo come gestire in modo sicuro le informazioni sensibili usando i Secrets di Kubernetes.
Domande Frequenti
La lezione «ConfigMap per la configurazione» è gratuita?
Sì — il testo completo di «ConfigMap per la configurazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kubernetes Basics, passa a CoddyKit PRO. Il corso Kubernetes Basics include 4 lezioni in totale.
Cosa imparerò in «ConfigMap per la configurazione»?
Esternalizzi la configurazione dell'applicazione dalle immagini dei container utilizzando i ConfigMap. Eserciti Kubernetes Basics con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Kubernetes Basics?
Non è richiesta alcuna esperienza precedente. Kubernetes Basics su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «ConfigMap per la configurazione»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Kubernetes Basics?
Sì. Ogni lezione Kubernetes Basics include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- ConfigMap per la configurazione
- Secret per i dati sensibili
- Persistent Volume e Persistent Volume Claim
- StorageClass e provisioning dinamico