Junior
Kubernetes'ta secrets ve configmaps arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Secrets, hassas bilgiler, şifreler, API anahtarları, sertifikalar gibi bilgileri saklamak için kullanılır. Varsayılan olarak base64 ile kodlanmıştır (bu, veri dinlenirken şifreleme değil, sadece kodlama anlamına gelir) ve Kubernetes tarafından daha yüksek bir güvenlik seviyesiyle işlenir (örneğin, doğrudan loglarda gösterilmezler).
ConfigMaps, uygulamaların hassas olmayan yapılandırma bilgilerini saklamak için kullanılır, örneğin servis URL'leri, günlükleme ayarları, yapılandırma dosyaları. Anahtar-değer çiftleri veya tam dosyalar olarak saklanırlar. ConfigMaps, ek bir veri koruması sağlamaz.
| Parametre | Secrets | ConfigMaps |
|---|---|---|
| Amacı | Hassas bilgilerin saklanması | Hassas olmayan yapılandırmanın saklanması |
| Kodlama | base64 (varsayılan) | Yok |
| Güvenlik | Artırılmış (loglarda gösterilmez, vb.) | Spesifik güvenlik önlemleri yok |
| Veri örnekleri | Parolalar, tokenlar, anahtarlar, sertifikalar | Ortam değişkenleri, yapılandırma dosyaları |
Her iki nesne de podlara dosya veya ortam değişkenleri olarak monte edilebilir.
# Bir secret'ın ortam değişkeni olarak montajı örneği
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'in dosya olarak montajı örneği
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