CodeBlanks Logo Icon CodeBlanks

Meydan okuma - ConfigMap

ConfigMap yazıp Pod'a environment olarak bağlarsın.

Meydan okuma: ayarı dışarı al

Bir nginx sitesinin ayar dosyasını image'a gömmek yerine ConfigMap'e alacaksın. Dosya volume olarak bağlanacak; ayar değişince pod'lar yeniden başlatılmadan dosya güncellenecek, nginx'e yeniden yüklemesi söylenecek.

kubectl create configmap nginx-ayar --from-file=default.conf
# ... volumes: configMap: nginx-ayar  ->  /etc/nginx/conf.d
kubectl create configmap nginx-ayar --from-file=default.conf --dry-run=client -o yaml | kubectl apply -f -
kubectl exec deploy/web -- nginx -s reload

Uygulama Volume'lü Deployment şablonu

Bir Deployment şablonunun spec bölümünü yaz (spec: ile başlayarak): volumes altında nginx-ayar ConfigMap'inden ayar volume'ü; container adı nginx, image nginx:1.27; ayar'ı /etc/nginx/conf.d'ye readOnly: true ile bağla.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
spec:
  volumes:
    - name: ayar
      configMap:
        name: nginx-ayar
  containers:
    - name: nginx
      image: nginx:1.27
      volumeMounts:
        - name: ayar
          mountPath: /etc/nginx/conf.d
          readOnly: true

Beklenen çıktı

deployment.apps/web configured

Uygulama Ayarı güncelle

Üç komut yaz: default.conf dosyasından nginx-ayar ConfigMap'ini oluşturmadan YAML olarak üretip kubectl apply -f -'e aktar; deploy/web'de cat /etc/nginx/conf.d/default.conf çalıştırarak dosyayı kontrol et; deploy/web'de nginx -s reload çalıştır.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl create configmap nginx-ayar --from-file=default.conf --dry-run=client -o yaml | kubectl apply -f -
kubectl exec deploy/web -- cat /etc/nginx/conf.d/default.conf
kubectl exec deploy/web -- nginx -s reload

Beklenen çıktı

configmap/nginx-ayar configured
server {
    listen 80;
    location / { root /usr/share/nginx/html; }
}
2026/11/03 13:05:21 [notice] 42#42: signal process started

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bu düzende ayar dosyası subPath ile bağlansaydı ne olurdu?

  • Fark olmazdı
  • ConfigMap güncellemesi dosyaya yansımazdı Doğru cevap
  • Dosya hiç görünmezdi
  • nginx çökerdi

Açıklama: subPath bağlamaları otomatik yenilenmez.

2 nginx'e ayarı yeniden yüklet.

Soru
kubectl exec deploy/web -- nginx -s ____
Cevap
kubectl exec deploy/web -- nginx -s reload

Açıklama: nginx -s reload süreci durdurmadan ayarı yeniden okur.

3 Eşleştir.

Kavram Anlamı
--from-file=default.conf Dosyadan ConfigMap
configMap volume Dosya olarak bağla
| kubectl apply -f - Güncelle
nginx -s reload Yeniden yükle

Orta seviye bölümündeki tüm dersler