Özet - Secret
- Docker & Kubernetes kursu
- Orta seviye
- Ders 54/82
- 5 dk
YAML ve bağlamayı birleştirerek hassas veriyi güvenli kullanırsın.
Özet: Secret
Bu grupta:
- Secret gizli verileri tutar; değerler base64'tür, şifreli değildir. Git'e konmaz, RBAC ve etcd şifrelemesiyle korunur.
- Türler:
Opaque,kubernetes.io/tls,dockerconfigjson(imagePullSecrets). - YAML'da
stringDatadüz metin kabul eder;echo -nsatır sonunu önler. - Kullanım:
secretKeyRef/secretRefya dasecret.secretNamevolume'ü (defaultMode). - Döndürme:
--dry-run=client -o yaml | kubectl apply -f -verollout restart.
kubectl create secret generic db-gizli --from-file=DB_PASSWORD=./parola.txt
kubectl get secret db-gizli -o jsonpath='{.data.DB_PASSWORD}' | base64 -dUygulama TLS secret'ını bağla
Bir pod'un spec bölümünü yaz (spec: ile başlayarak): volumes altında web-tls Secret'ından defaultMode: 0400 ile tls volume'ü; container adı nginx, image nginx:1.27; tls'yi /etc/tls'ye readOnly: true ile bağla.
Başlangıç kodu
# buraya yazÖrnek çözüm
spec:
volumes:
- name: tls
secret:
secretName: web-tls
defaultMode: 0400
containers:
- name: nginx
image: nginx:1.27
volumeMounts:
- name: tls
mountPath: /etc/tls
readOnly: trueBeklenen çıktı
pod/web configured $ kubectl exec web -- ls /etc/tls tls.crt tls.key
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Secret YAML'ını Git deposunda güvenle tutmak için hangisi kullanılır?
- type: Opaque yazmak
- Sealed Secrets ya da External Secrets gibi bir araç Doğru cevap
- base64 ile bir kez daha kodlamak
- stringData kullanmak
Açıklama: Sealed Secrets yalnızca cluster'ın çözebildiği şifreli bir nesne üretir.
2 Secret'ı volume olarak bağla.
volumes:
- name: tls
secret:
____: web-tls
volumes:
- name: tls
secret:
secretName: web-tls
Açıklama: Secret volume'ünde secretName kullanılır.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
Secret |
Gizli |
ConfigMap |
Gizli değil |
base64 -d |
Değeri çöz |
imagePullSecrets |
Özel registry |