Secret bağlama
- Docker & Kubernetes kursu
- Orta seviye
- Ders 52/82
- 4 dk
Secret'i environment veya volume olarak bağlamayı öğrenirsin.
Secret bağlama
Secret'lar container'a ConfigMap'le aynı yollarla verilir: secretKeyRef/secretRef ile ortam değişkeni ya da volume olarak dosya. Dosya olarak bağlamak daha güvenlidir: ortam değişkenleri çökme dökümlerinde ve alt süreçlerde görünebilir.
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-gizli
key: DB_PASSWORD
volumeMounts:
- name: tls
mountPath: /etc/tls
readOnly: true
volumes:
- name: tls
secret:
secretName: web-tlsDosya izinleri
Secret volume'ündeki dosyaların izinleri defaultMode ile kısıtlanabilir (sekizlik değer). Böylece yalnızca dosya sahibi okuyabilir:
volumes:
- name: tls
secret:
secretName: web-tls
defaultMode: 0400
$ kubectl exec web -- ls -l /etc/tls/
-r-------- 1 root root ... tls.crt
-r-------- 1 root root ... tls.keyUygulama Parolayı ver
Bir container bölümü yaz (containers: ile başlayarak): container adı api, image api:1.0; env altında DB_PASSWORD değişkeni secretKeyRef ile db-gizli Secret'ının DB_PASSWORD anahtarından.
Başlangıç kodu
# buraya yazÖrnek çözüm
containers:
- name: api
image: api:1.0
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-gizli
key: DB_PASSWORDBeklenen çıktı
deployment.apps/api configured
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Volume'de Secret'ın adı hangi alanla verilir?
- name
- secretRef
- key
- secretName Doğru cevap
Açıklama: ConfigMap volume'ünde name, Secret volume'ünde secretName kullanılır.
2 Secret'tan tek bir anahtarı ortam değişkenine al.
valueFrom:
____:
name: db-gizli
key: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-gizli
key: DB_PASSWORD
Açıklama: secretKeyRef tek anahtar, secretRef tüm anahtarlardır.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
secretKeyRef |
Tek anahtar ortam değişkeni |
secretRef |
Tüm anahtarlar (envFrom) |
secretName |
Volume kaynağı |
defaultMode |
Dosya izni |