İçeriğe Atla
Rehberler · 13 dk okuma · görüntülenme
100%

Kubernetes Kontrol Düzlemi Sertifika Süresi Dolması: Runbook

API Server erişimi bir anda x509 hatalarıyla kesildiğinde; kubeadm tabanlı cluster’larda sertifika yenileme ve güvenli toparlama adımları.

Kubernetes API sertifikası süresi dolma akışını gösteren kapak görseli

Kubernetes’te sertifika süresi dolması, “kademeli bozulma” değil; çoğu zaman bir anda herkesin duvara çarptığı bir incident’tır: kubectl çalışmaz, controller’lar API’ye konuşamaz, node’lar statü güncelleyemez ve sistem sanki “tamamen çökmüş” gibi görünür.

Bu yazı; özellikle kubeadm ile kurulu (self-managed) cluster’larda sertifika süresi dolması senaryosu için pratik bir runbook’tur. Managed Kubernetes (EKS/AKS/GKE) için yaklaşım farklıdır.

Kubernetes API sertifikası süresi dolma akışını gösteren kapak görseli
Sertifika sorunu; kontrol düzlemi bileşenleri arasında zincirleme kimlik doğrulama kırılması üretir.

Belirti seti (hızlı tanı)

En sık görülen hatalar:

  • x509: certificate has expired or is not yet valid
  • Unable to connect to the server: x509: certificate signed by unknown authority
  • Unauthorized (sertifika yenilenmiş ama kubeconfig eskimiş)

Incident triage’da iki soruyu hızlı cevaplayın:

  1. Hata istemci tarafında mı (kubeconfig / local) yoksa cluster tarafında mı?
  2. Hata tek bileşeni mi etkiliyor yoksa kontrol düzlemi genelinde mi?

Kapsam: Bu runbook hangi kurulumlar için?

  • Kubeadm ile kurulan cluster’lar
  • Control-plane node’lara SSH erişiminiz var
  • Etcd erişimi aynı node üzerinde veya ayrı ama yönetilebilir

Eğer managed Kubernetes kullanıyorsanız: sertifika yenileme genelde provider yönetimindedir; bu runbook’u “kubeconfig / client cert” kısmı için kullanın.

Adım 0 — Değişiklik yönetimi (incident modunda bile)

Bu incident’ta panikle yapılan iki hata çok pahalıdır:

  • “Bir şeyler denedim” deyip farklı node’larda farklı işlemler yapmak (tutarsızlık)
  • Aynı anda birden fazla node’da sertifika yenilemek (split-brain riskini büyütür)

Bu yüzden:

  • Tek bir Incident Commander + tek bir operator
  • Yapılan her komut karar günlüğüne not

Adım 1 — Sertifika durumunu kontrol et (kubeadm)

Control-plane node’da:

sudo kubeadm certs check-expiration

Çıktıda EXPIRES alanı geçmişteyse, problem büyük olasılıkla budur.
Eğer sadece belirli sertifikalar bitmişse bile, yenilemeyi “parça parça” değil, kontrollü yapın.

Adım 2 — Sertifikaları yenile

Kubeadm için en pratik yol:

sudo kubeadm certs renew all

Bazı kurulumlarda admin kubeconfig de yenilenir. Yine de son adımda kubeconfig’i doğrulayın.

Adım 3 — Kontrol düzlemi bileşenlerini güvenli şekilde yeniden başlat

Kubeadm çoğu kurulumda control-plane bileşenlerini static pod olarak yönetir. Genelde kubelet, manifest değişimini algılayıp pod’ları yeniden yaratır; ama sertifika yenileme sonrası pratikte şu adım işe yarar:

sudo systemctl restart kubelet

Sonra:

sudo crictl ps | rg -n \"kube-apiserver|kube-controller-manager|kube-scheduler\"
sudo crictl logs $(sudo crictl ps -q --name kube-apiserver) | tail -n 40

Amaç: API server’ın sağlıklı ayağa kalktığını doğrulamak.

Adım 4 — Kubeconfig’i doğrula (istemci tarafı)

Eğer kubectl tarafında hâlâ x509 görüyorsanız:

  • Kullanılan kubeconfig’in güncel olup olmadığını kontrol edin
  • Admin config’i yeniden alın / kopyalayın

Control-plane node’da tipik yol:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes

Adım 5 — Etcd ve controller’ların toparlandığını doğrula

Bu incident’ta “kubectl çalıştı” diye bitirmeyin. Şunları kontrol edin:

  • Node’lar Ready mı?
  • kube-system pod’larında crashloop var mı?
  • Controller’lar yeni event üretiyor mu?
kubectl get nodes -o wide
kubectl -n kube-system get pods
kubectl get events --sort-by=.lastTimestamp | tail -n 30

Önleyici kontroller (bu incident bir daha yaşanmasın)

En etkili önlem: sertifika bitmeden alarm üretmek.

  • kubeadm certs check-expiration çıktısını günlük job ile toplayın
  • EXPIRES < 30 gün → uyarı, < 7 gün → kritik
  • Zaman senkronizasyonunu (NTP) kontrol düzlemi için “kritik servis” olarak izleyin

Son söz

Kontrol düzlemi sertifikası bittiğinde amaç “kubeadm komutunu bulmak” değil; kontrollü, tek elden, doğrulamayla ilerleyen bir toparlama yürütmektir. İyi bir runbook + erken uyarı ile bu incident, saatler süren bir kesinti yerine 15–30 dakikalık planlı bir bakım gibi yönetilebilir.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

Yeni yazılardan haberdar olun

Haftada bir yeni içerikler ve kaynaklar doğrudan e-postanıza gelsin.

Spam yok. Yalnızca yeni ve önemli içerikler için e-posta gönderilir.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar