ConfigMaps do konfiguracji
Oddziel konfigurację aplikacji od obrazów kontenerów za pomocą obiektów ConfigMaps.
ConfigMaps do konfiguracji to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Wprowadzenie do ConfigMaps
Aplikacje często potrzebują danych konfiguracyjnych, takich jak parametry połączenia z bazą danych lub flagi funkcji.
Zakodowanie tych informacji bezpośrednio w obrazach kontenerów może sprawić, że staną się one sztywne i trudne do aktualizacji.
ConfigMaps umożliwiają wyodrębnienie i scentralizowanie niesensytywnej konfiguracji aplikacji, dzięki czemu obrazy pozostają elastyczne.
Czym jest ConfigMap?
ConfigMap to obiekt Kubernetes służący do przechowywania niesensytywnych danych w parach klucz–wartość.
Można traktować go jako centralne miejsce przechowywania ustawień aplikacji, z którego mogą korzystać Pody.
- Oddzielenie konfiguracji: Oddziela konfigurację od kodu aplikacji.
- Elastyczność: Umożliwia łatwą zmianę ustawień bez ponownego budowania obrazów.
- Przenośność: Ułatwia przenoszenie aplikacji między środowiskami o różnych konfiguracjach.
Tworzenie ConfigMaps: sposób imperatywny
Możesz szybko utworzyć ConfigMap bezpośrednio z wiersza poleceń za pomocą kubectl create configmap.
Ta metoda sprawdza się w przypadku prostych, jednorazowych konfiguracji lub szybkich testów.
Utwórzmy ConfigMap o nazwie my-app-config z ustawieniem poziomu logowania.
kubectl create configmap my-app-config \
--from-literal=log_level=INFOSprawdzanie ConfigMap
Po utworzeniu ConfigMap możesz wyświetlić jego szczegóły i zweryfikować zawartość.
Użyj kubectl get z flagą -o yaml, aby zobaczyć pełną definicję YAML, w tym przechowywane w niej dane.
kubectl get configmap my-app-config -o yamlDeklaratywny ConfigMap (YAML)
W środowisku produkcyjnym i na potrzeby kontroli wersji standardową praktyką jest definiowanie ConfigMaps za pomocą manifestów YAML.
Takie podejście sprawia, że konfiguracje można odtwarzać i łatwo nimi zarządzać wraz z kodem aplikacji.
Oto przykład YAML konfiguracji gry:
apiVersion: v1
kind: ConfigMap
metadata:
name: game-config
data:
game.properties: |
level=easy
player_limit=10
ui.properties: |
theme=dark
language=enZastosowanie ConfigMap z YAML
Aby utworzyć ConfigMap game-config, zapisz zawartość YAML z poprzedniej sceny w pliku (np. game-config.yaml).
Następnie użyj kubectl apply -f, aby wdrożyć go w klastrze.
# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yamlConfigMaps jako zmienne środowiskowe
Jednym z popularnych sposobów korzystania przez Pod z danych ConfigMap jest wstrzyknięcie ich jako zmiennych środowiskowych.
Możesz wskazać pojedyncze klucze, które mają zostać udostępnione, albo użyć envFrom, aby udostępnić wszystkie pary klucz–wartość z ConfigMap.
To idealne rozwiązanie w przypadku prostych ustawień aplikacji.
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_levelDemonstracja: Pod z konfiguracją środowiska
Uruchommy definicję Podu, aby zobaczyć działanie zmiennej środowiskowej LOG_LEVEL.
Zapisz YAML Podu w pliku env-pod.yaml, zastosuj go, a następnie sprawdź logi Podu.
# 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 jako woluminy montowane
W przypadku aplikacji, które wymagają plików konfiguracyjnych (np. nginx.conf, application.properties), możesz zamontować ConfigMap jako wolumin.
Każda para klucz–wartość w ConfigMap staje się plikiem w określonej ścieżce montowania wewnątrz kontenera.
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-configDemonstracja: Pod z zamontowaną konfiguracją
Teraz wdrożymy Pod, który zamontuje nasz ConfigMap game-config jako wolumin.
Zapisz YAML Podu w pliku volume-pod.yaml, zastosuj go i przejrzyj logi, aby zobaczyć zawartość zamontowanego pliku.
# 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-podSzybkie sprawdzenie: ConfigMaps
Które z poniższych stwierdzeń dotyczących Kubernetes ConfigMaps jest prawdziwe?
Podsumowanie: ConfigMaps
Świetnie! Poznałeś sposób, w jaki ConfigMaps pomagają zarządzać konfiguracją w Kubernetes:
- Cel: Przechowywanie niesensytywnych danych konfiguracyjnych w parach klucz–wartość.
- Tworzenie: Imperatywnie za pomocą
kubectl createlub deklaratywnie przy użyciu YAML. - Wykorzystanie: Jako zmienne środowiskowe lub zamontowane pliki wewnątrz Podów.
- Korzyść: Oddzielenie konfiguracji od kodu aplikacji, co zwiększa elastyczność.
W następnej części dowiesz się, jak bezpiecznie obsługiwać poufne informacje za pomocą Kubernetes Secrets!
Często zadawane pytania
Czy lekcja „ConfigMaps do konfiguracji” jest bezpłatna?
Tak — pełny tekst „ConfigMaps do konfiguracji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „ConfigMaps do konfiguracji”?
Oddziel konfigurację aplikacji od obrazów kontenerów za pomocą obiektów ConfigMaps. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „ConfigMaps do konfiguracji”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- ConfigMaps do konfiguracji
- Secrets do poufnych danych
- Woluminy trwałe i żądania zasobów
- StorageClass i dynamiczne udostępnianie zasobów