Sobes.tech
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).