Kubernetes tarafında “node işletim sistemi patch’i” çoğu zaman ya ertelenir ya da agresif şekilde uygulanıp incident çıkarır. İki uç da yanlıştır. Sağlam yaklaşım; patch’i bakım dalgalarına bölmek, etkiyi sınırlamak ve geri dönüşü kolaylaştırmaktır.
Ön koşullar: Patch’e başlamadan önce
Ben patch sürecine girmeden şu üç şeyi şart koşarım:
- PodDisruptionBudget (PDB) kritik servislerde tanımlı mı?
- Readiness/Liveness probe’ları gerçek mi? (sadece “/healthz 200” değil)
- Capacity headroom var mı? (en az 1 dalga node’u kaldırabilecek)
Tasarım: Dalga (wave) nedir?
Dalga, aynı anda patch’e girecek node grubudur. İyi dalga tasarımı:
- AZ/zone bazında dengelidir
- Aynı servis’in tüm pod’larını aynı anda etkilemez
- Geri dönüşte “hangi dalgadaydık?” sorusunu netleştirir
Pratik bir örnek:
- Wave 0 (canary): 1–2 node
- Wave 1: toplamın %10’u
- Wave 2: toplamın %25’i
- Wave 3: kalanlar
Uygulama: Node’ları dalgalara etiketle
Basit bir etiket:
kubectl label node worker-01 maintenance.wave=0
kubectl label node worker-02 maintenance.wave=1
kubectl label node worker-03 maintenance.wave=1
Etiketi gitops ile yönetebiliyorsanız daha iyi; ama ilk adım olarak manuel bile yeterlidir.
Operasyon akışı: Drain → patch → uncordon
Her node için minimum akış:
cordondrain(güvenli parametrelerle)- OS patch / reboot
- Node ready olunca
uncordon - Servis sinyallerini kontrol et
Drain örneği:
kubectl cordon worker-01
kubectl drain worker-01 --ignore-daemonsets --delete-emptydir-data --grace-period=60 --timeout=10m
Sonra patch/reboot ve:
kubectl uncordon worker-01
Parallelism: Aynı anda kaç node?
Kuralım basit:
- Canary dalgasında 1
- Sonraki dalgalarda AZ başına 1 (veya servis kritikliğine göre daha az)
Yanlış olan; “toplam node’un %20’si” gibi tek metrikle karar vermek. Zone dağılımı ve servis replika sayısı daha belirleyicidir.
Geri dönüş (rollback) planı
Patch sürecini güvenli yapan şey “hiç sorun olmaması” değil, sorunda ne yapacağının net olmasıdır:
- Wave 0 sonrası p95/p99/5xx kötüleşirse, Wave 1’e geçme
- Kernel/driver problemi varsa aynı dalgada dur ve hızlıca image geri al
- Node’ları “known-good” AMI/image’a döndürme adımı hazır olsun
Minimum runbook kontrol listesi
- Dalgalar ve parallelism tanımlı
- PDB ve probe’lar doğrulandı
- Canary dalga hazır, on-call hazır
- Drain komutları standart
- Rollback adımı net
- Patch sonrası doğrulama (SLO + iş metriği)
Bu disiplinle node patch, “gece yapılan riskli iş” değil; planlı, ölçülebilir ve tekrarlanabilir bir operasyon olur.