CodeBlanks Logo Icon CodeBlanks

ConfigMap ve Secret

Uygulama yapılandırması için ConfigMap ve Secret yazarsın.

ConfigMap ve Secret

Ayarlar ikiye ayrılır: gizli olmayanlar ConfigMap'e (sürüm kontrolünde), gizliler Secret'a (komutla, depo dışında). API'nin bağlantı adresi servis adlarını kullanır:

# 40-ayar.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: api-ayar
  namespace: magaza
data:
  DB_HOST: db
  DB_PORT: "5432"
  DB_NAME: magaza
  LOG_LEVEL: info

Ayar değişince

ConfigMap güncellenince ortam değişkeni olarak kullanan API pod'ları eski değeri görmeye devam eder. Uygulamak için deployment yeniden başlatılır; kademeli yenilendiği için kesinti olmaz:

kubectl apply -f k8s/40-ayar.yaml
kubectl rollout restart deployment/api -n magaza
kubectl rollout status deployment/api -n magaza
kubectl exec -n magaza deploy/api -- printenv LOG_LEVEL

Uygulama Projenin ConfigMap'i

Bir ConfigMap YAML'ı yaz: adı api-ayar, namespace'i magaza; data altında DB_HOST: db, DB_PORT: "5432", LOG_LEVEL: info.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
apiVersion: v1
kind: ConfigMap
metadata:
  name: api-ayar
  namespace: magaza
data:
  DB_HOST: db
  DB_PORT: "5432"
  LOG_LEVEL: info

Beklenen çıktı

configmap/api-ayar created

Soru ve cevaplar

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

1 DB_PORT değeri neden tırnak içinde yazılır?

  • ConfigMap değerleri metin olmalı; 5432 YAML'da sayı olarak okunur Doğru cevap
  • Port gizli olduğu için
  • Tırnak zorunlu değil, alışkanlık
  • Base64 için

Açıklama: Tırnaksız sayı ConfigMap'in reddedilmesine yol açar.

2 Container'daki tek bir ortam değişkenini yazdır.

Soru
kubectl exec -n magaza deploy/api -- ____ LOG_LEVEL
Cevap
kubectl exec -n magaza deploy/api -- printenv LOG_LEVEL

Açıklama: printenv AD tek değişkeni yazar.

3 Eşleştir.

Kavram Anlamı
ConfigMap Depoda, gizli değil
Secret Komutla, gizli
DB_HOST: db Servis adı
rollout restart Yeni ayarı uygula

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