Junior
Mi a különbség a secrets és a configmaps között a Kubernetesben?
sobes.tech MI
Válasz az MI-től
A titkokat érzékeny információk, például jelszavak, API kulcsok, tanúsítványok tárolására használják. Alapértelmezés szerint base64 kódolva vannak (bár ez nem adattitkosítás nyugalmi állapotban, hanem egyszerű kódolás), és a Kubernetes magasabb biztonsági szinttel kezeli őket (például nem jelennek meg közvetlenül a naplókban).
A ConfigMap-ek nem érzékeny konfigurációs információk tárolására szolgálnak az alkalmazások számára, például szolgáltatás URL-ek, naplózási beállítások, konfigurációs fájlok. Kulcs-érték párok vagy teljes fájlok formájában tárolódnak. A ConfigMap-ek nem nyújtanak további adatvédelmet.
| Paraméter | Secrets | ConfigMaps |
|---|---|---|
| Cél | Érzékeny információk tárolása | Érzéketlen konfigurációk tárolása |
| Kódolás | base64 (alapértelmezett) | Nincs |
| Biztonság | Növelt (nem jelenik meg a naplókban, stb.) | Nincs külön biztonsági intézkedés |
| Példák adatok | Jelszavak, tokenek, kulcsok, tanúsítványok | Környezeti változók, konfigurációs fájlok |
Mindkét objektum beilleszthető a podokba fájlként vagy környezeti változóként.
# Titok környezeti változóként való beillesztésének példája
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: my-db-secret
key: password
# ConfigMap fájlként való beillesztésének példája
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: my-app-config