0Pricing
DevOps Bootcamp · Lekcja

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=INFO

Sprawdzanie 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 yaml

Deklaratywny 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=en

Zastosowanie 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 yaml

ConfigMaps 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_level

Demonstracja: 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-pod

ConfigMaps 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-config

Demonstracja: 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-pod

Szybkie 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 create lub 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

  1. ConfigMaps do konfiguracji
  2. Secrets do poufnych danych
  3. Woluminy trwałe i żądania zasobów
  4. StorageClass i dynamiczne udostępnianie zasobów
← Powrót do DevOps Bootcamp