Azure Kubernetes Service (AKS), Kubernetes kümesindeki düğümleri izlemek ve yönetmek için çeşitli araçlar sunar. Bu araçlardan biri de Düğüm Sorun Algılayıcısı (Node Problem Detector – NPD)’dır. NPD, düğümle ilgili sorunları algılamak, raporlamak ve bu bilgileri kullanarak küme sağlığını iyileştirmek amacıyla tasarlanmıştır. Bu makalede, NPD’nin AKS’deki rolünü ve işleyişini detaylı bir şekilde ele alacağız.
Node problem detector Github linki için aşağıdaki linki kullanabilirsiniz.
https://github.com/kubernetes/node-problem-detector
Node Problem Detector Overview
NPD, açık kaynaklı bir Kubernetes bileşenidir ve kümedeki her düğümde systemd olarak çalışır. Bu bileşen, düğümlerin CPU ve disk kullanımı gibi çeşitli ölçümlerini ve ağ bağlantısı gibi sistem bilgilerini toplar. Bir sorun tespit ettiğinde, olaylar ve/veya düğüm koşulları oluşturarak durumu raporlar.
AKS üzerinde NPD kullanımı
AKS, Azure bulut platformunda çalışan Kubernetes kümelerinde düğüm izleme ve yönetimi için NPD’yi kullanır. AKS üzerinde, Linux uzantısı aracılığıyla NPD varsayılan olarak etkinleştirilmiştir. Bu, AKS kullanıcılarının ek bir yapılandırma yapmadan düğüm sağlığını izleyebilecekleri anlamına gelir.
Node Conditions and Events
NPD, düğümde meydana gelen sorunları belirlemek için düğüm koşullarını ve olayları kullanır. Düğüm koşulları, düğümün kullanılamaz olmasına neden olan kalıcı sorunları ifade ederken, olaylar daha genel bilgiler sağlar ve temel sorunların tanımlanmasına yardımcı olur. AKS, NPD’den gelen bilgileri kullanarak, düğümdeki kalıcı sorunları ortaya çıkarabilir ve karşılık gelen Kubernetes olaylarını yayar.
Node Conditions
Sorun Daemon türü | NodeCondition | Nedeni |
CustomPluginMonitor | FilesystemCorruptionProblem | FilesystemCorruption Algılandı |
CustomPluginMonitor | KubeletProblem | KubeletIsDown |
CustomPluginMonitor | ContainerRuntimeProblem | ContainerRuntimeIsDown |
CustomPluginMonitor | VMEventScheduled | VMEventScheduled |
CustomPluginMonitor | FrequentUnregisterNetDevice | UnregisterNetDevice |
CustomPluginMonitor | FrequentKubeletRestart | FrequentKubeletRestart |
CustomPluginMonitor | FrequentContainerdRestart | FrequentContainerdRestart |
CustomPluginMonitor | FrequentDockerRestart | FrequentDockerRestart |
SystemLogMonitor | KernelDeadlock | DockerHung |
SystemLogMonitor | ReadonlyFilesystem | FilesystemIsReadOnly |
Sorun Daemon türü | NodeCondition | Nedeni |
CustomPluginMonitor | FilesystemCorruptionProblem | FilesystemCorruption Algılandı |
Events
Sorun Daemon türü | Nedeni |
CustomPluginMonitor | FilesystemCorruption Algılandı |
CustomPluginMonitor | KubeletIsDown |
CustomPluginMonitor | ContainerRuntimeIsDown |
CustomPluginMonitor | FreezeScheduled |
Düğüm Koşullarını ve Olaylarını İzleme
AKS’de, kubectl describe node komutu kullanılarak düğüm koşulları ve olayları izlenebilir. Bu, kullanıcıların düğümün mevcut durumunu ve olası sorunlarını detaylı bir şekilde görmelerini sağlar. Bu bilgiler, sorun giderme ve küme yönetimi süreçlerinde değerli bir kaynaktır.
kubectl describe node my-aks-node
Ölçümler ve İzleme NPD, düğüm sorunlarına ilişkin ölçümleri Prometheus kullanımı için sunar. Bu ölçümler, izleme ve uyarı oluşturma amacıyla kullanılabilir ve Prometheus, bu verileri Node IP’sinin 20257 numaralı bağlantı noktasından toplayabilir. Kullanıcılar, bu ölçümleri kullanarak, düğümlerin sağlığı hakkında daha ayrıntılı bilgilere erişebilir ve proaktif bir şekilde yönetim yapabilir.
Scrap edilmiş metric örnekleri:
problem_gauge{reason="UnregisterNetDevice",type="FrequentUnregisterNetDevice"} 0
problem_gauge{reason="VMEventScheduled",type="VMEventScheduled"} 0
Sonuç NPD, AKS’de düğüm sağlığının izlenmesi ve yönetilmesi için kritik bir bileşendir. Düğüm koşulları, olaylar ve Prometheus ölçümleri aracılığıyla, kullanıcılar kümelerinin performansını ve güvenilirliğini artırabilir. Bu bileşenin sağladığı ayrıntılı bilgiler, AKS kullanıcılarının küme sağlığını proaktif bir şekilde iyileştirmelerine olanak tanır.