Junior
Czym jest ConfigMap w Kubernetes?
sobes.tech AI
Odpowiedź od AI
ConfigMap jest obiektem API używanym do przechowywania danych nie poufnych w parach klucz-wartość w Kubernetes. Umożliwia oddzielenie konfiguracji aplikacji od jej obrazu kontenera, co czyni aplikacje bardziej przenośnymi i upraszcza zarządzanie konfiguracją.
Dane w ConfigMap można używać na następujące sposoby:
- Jako zmienne środowiskowe w kontenerze.
- Jako argumenty wiersza poleceń dla kontenera.
- Jako pliki w woluminie montowanym w Pod.
Przykład tworzenia ConfigMap z pliku:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
my-config-file.properties: |
database.url=jdbc:mysql://localhost:3306/mydatabase
database.username=mydbuser
database.password=secret
Użycie ConfigMap w Pod przez zmienne środowiskowe:
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app
image: my-app-image
env:
- name: DATABASE_URL
valueFrom:
configMapKeyRef:
name: my-config
key: database.url
- name: DATABASE_USERNAME
valueFrom:
configMapKeyRef:
name: my-config
key: database.username
Użycie ConfigMap w Pod przez montowanie jako plik:
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app
image: my-app-image
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: my-config
Kluczowe cechy:
- Używany do danych nie poufnych. Dla danych poufnych należy używać Secrets.
- Pozwala na dynamiczną aktualizację konfiguracji bez przebudowy obrazu.
- Dane w ConfigMap mają ograniczenie rozmiaru (domyślnie 1 MB).
- Niektóre zmiany w ConfigMap mogą wymagać ponownego uruchomienia Pod, aby zaczęły obowiązywać, w zależności od metody użycia (zmienne środowiskowe wymagają restartu, montowanie jako plik może być dynamiczne).