Meydan okuma - Uzman projesi
- Docker & Kubernetes kursu
- Uzman
- Ders 47/47
- 6 dk
CRD, Operator ve Istio'yu birleştiren bir proje kurarsın.
Meydan okuma: uzman projesi
Son meydan okumada uzman bölümündeki parçaları birleştireceksin. magaza uygulaması için:
YedekCRD'si ve operator'ü ile her gece veritabanı yedeği,- Istio ile mTLS zorunluluğu ve kanarya yönlendirmesi,
- Gatekeeper ile zorunlu etiket ve latest yasağı,
- Velero ile namespace yedeği ve geri yükleme tatbikatı.
magaza namespace'i
├─ istio-injection=enabled + PeerAuthentication STRICT
├─ Yedek magaza-db (operator -> CronJob)
├─ Constraint'ler (takim/ortam etiketi, latest yasak)
└─ Velero schedule gece (720h)Uygulama Mesh ve mTLS
Önce magaza namespace'ine istio-injection=enabled etiketini ekleyen ve deployment'ları yeniden başlatan (kubectl rollout restart deploy -n magaza) iki komutu yaz. Ardından bir PeerAuthentication YAML'ı yaz: security.istio.io/v1; adı default, namespace'i magaza; spec.mtls.mode: STRICT.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl label namespace magaza istio-injection=enabled
kubectl rollout restart deploy -n magaza
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
name: default
namespace: magaza
spec:
mtls:
mode: STRICTBeklenen çıktı
namespace/magaza labeled deployment.apps/api restarted deployment.apps/web restarted peerauthentication.security.istio.io/default created
Uygulama Denetim listesi
Kurulumu doğrulayan dört komut yaz: magaza'daki Yedek nesnelerini listele (kubectl get yd -n magaza); tüm Constraint'leri listele; Velero zamanlamalarını listele; magaza namespace'inin Istio yapılandırmasını çözümle (istioctl analyze -n magaza).
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl get yd -n magaza
kubectl get constraints
velero schedule get
istioctl analyze -n magazaBeklenen çıktı
NAME AGE magaza-db 2d NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS deployment-etiketleri deny 0 latest-yasak deny 0 NAME STATUS CREATED SCHEDULE BACKUP TTL gece Enabled 2026-11-01 10:20:00 +0300 +03 0 2 * * * 720h0m0s ✔ No validation issues found when analyzing namespace: magaza.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 istio-injection etiketi eklendikten sonra mevcut pod'lara sidecar nasıl eklenir?
- Deployment'lar yeniden başlatılarak (rollout restart) Doğru cevap
- Kendiliğinden hemen eklenir
- istioctl delete ile
- Eklenemez
Açıklama: Enjeksiyon pod oluşturulurken yapılır.
2 Namespace'te sidecar enjeksiyonunu aç.
kubectl label namespace magaza ____=enabled
kubectl label namespace magaza istio-injection=enabled
Açıklama: Etiket yeni pod'lara Envoy ekletir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
PeerAuthentication |
mTLS zorunluluğu |
Yedek |
Veritabanı yedeği isteği |
Constraint |
Politika uygulaması |
velero schedule |
Namespace yedeği |