Environment değişkeni
- Docker & Kubernetes kursu
- Orta seviye
- Ders 45/82
- 4 dk
ConfigMap'i environment değişkeni olarak bağlamayı öğrenirsin.
Ortam değişkeni olarak
ConfigMap değerleri container'a iki yolla ortam değişkeni olarak verilir: tek tek valueFrom.configMapKeyRef ile ya da tüm anahtarlar birden envFrom ile:
containers:
- name: api
image: api:1.0
envFrom:
- configMapRef:
name: api-ayar
env:
- name: SEVIYE
valueFrom:
configMapKeyRef:
name: api-ayar
key: LOG_LEVELHata ve isteğe bağlılık
Pod'un kullandığı ConfigMap yoksa container CreateContainerConfigError durumunda kalır. Eksik olmasına izin verilecekse optional: true yazılır:
$ kubectl get pod api-5d8f7c9b4-qrstu
NAME READY STATUS RESTARTS
api-5d8f7c9b4-qrstu 0/1 CreateContainerConfigError 0
$ kubectl describe pod api-5d8f7c9b4-qrstu | grep -i configmap
Warning Failed configmap "api-ayar" not foundUygulama Ayarı container'a ver
Bir Deployment'ın container bölümünü yaz (containers: ile başlayarak): container adı api, image api:1.0; envFrom ile api-ayar ConfigMap'inin tüm anahtarları; env altında SEVIYE değişkeni configMapKeyRef ile api-ayar'ın LOG_LEVEL anahtarından.
Başlangıç kodu
# buraya yazÖrnek çözüm
containers:
- name: api
image: api:1.0
envFrom:
- configMapRef:
name: api-ayar
env:
- name: SEVIYE
valueFrom:
configMapKeyRef:
name: api-ayar
key: LOG_LEVELBeklenen çıktı
deployment.apps/api configured $ kubectl exec deploy/api -- env | grep -E "LOG_LEVEL|SEVIYE" LOG_LEVEL=info SEVIYE=info
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 ConfigMap'teki bir değer değişince, ortam değişkeni olarak kullanan çalışan pod ne görür?
- Pod çöker
- Eski değeri; pod yeniden başlatılana kadar değişmez Doğru cevap
- Yeni değeri hemen
- Boş değer
Açıklama: Ortam değişkenleri süreç başlarken okunur; kubectl rollout restart gerekir.
2 ConfigMap'in tüm anahtarlarını ortam değişkeni yap.
____:
- configMapRef:
name: api-ayar
envFrom:
- configMapRef:
name: api-ayar
Açıklama: envFrom tüm anahtarları birden yükler.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
envFrom |
Tüm anahtarlar |
configMapKeyRef |
Tek anahtar |
CreateContainerConfigError |
ConfigMap bulunamadı |
optional: true |
Eksikse sorun yok |