Skip to content

Hint 3 — neredeyse cevap#

env/deployment.yaml'ı şu üç değişiklikle düzelt, yeniden uygula, deneyi tekrarla.

spec:
  strategy:
    type: RollingUpdate          # Recreate DEĞİL
    rollingUpdate:
      maxUnavailable: 0          # hiçbir an hazır replica sayısı düşmesin
      maxSurge: 1
  # ...
      containers:
        - name: web
          image: nginxinc/nginx-unprivileged:1.27-alpine
          ports:
            - containerPort: 8080
          readinessProbe:        # trafik yalnız gerçekten hazır pod'a gitsin
            httpGet: { path: /, port: 8080 }
            initialDelaySeconds: 2
            periodSeconds: 5

Ayrıca bir PDB ekle (gönüllü kesintide blast radius'u sınırlar):

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: web
  namespace: chaos
spec:
  minAvailable: 2
  selector:
    matchLabels: { app: web }

Uygula ve deneyi tekrar yürüt:

kubectl apply -f env/deployment.yaml
kubectl apply -f env/pdb.yaml
kubectl -n chaos rollout restart deploy/web    # artık başarısız istek ~0 olmalı

gameday.md'ye hipotez → deney → sonuç → bulunan zafiyet → eylem maddesini yaz. Tam teşhis akışı: solution.md.