Junior
Kubernetes'ta ConfigMap nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
ConfigMap, Kubernetes'te anahtar-değer çiftleri halinde saklanan gizli olmayan verileri depolamak için kullanılan bir API nesnesidir. Uygulamanın yapılandırmasını konteyner görüntüsünden ayırmaya olanak tanır, böylece uygulamaları daha taşınabilir hale getirir ve yapılandırma yönetimini kolaylaştırır.
ConfigMap'teki veriler aşağıdaki şekillerde kullanılabilir:
- Konteynerin ortam değişkenleri olarak.
- Konteyner için komut satırı argümanları olarak.
- Pod'a monte edilen bir hacimdeki dosyalar olarak.
Bir dosyadan ConfigMap oluşturma örneği:
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
ConfigMap'in Pod'da ortam değişkenleri aracılığıyla kullanımı:
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
ConfigMap'in Pod'da dosya olarak monte edilmesi:
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
Önemli özellikler:
- Gizli olmayan veriler için kullanılır. Gizli veriler için Secrets kullanılmalıdır.
- Yapılandırmayı dinamik olarak güncellemeye olanak tanır, yeniden imaj oluşturmayı gerektirmez.
- ConfigMap'teki veriler boyut sınırına tabidir (varsayılan 1 MB).
- ConfigMap'teki bazı değişiklikler, kullanım yöntemine bağlı olarak Pod'un yeniden başlatılmasını gerektirebilir (ortam değişkenleri yeniden başlatma gerektirir, dosya olarak monte edilmesi dinamik olabilir).