CodeBlanks Logo Icon CodeBlanks

Meydan okuma - Uzman projesi

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:

  • Yedek CRD'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

terminal
# buraya yaz

Örnek çözüm

terminal
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: STRICT

Beklenen çı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

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl get yd -n magaza
kubectl get constraints
velero schedule get
istioctl analyze -n magaza

Beklenen çı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ç.

Soru
kubectl label namespace magaza ____=enabled
Cevap
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

Uzman bölümündeki tüm dersler