Azure Kubernetes Service Node Problem Detector

By | June 28, 2023

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üNodeConditionNedeni
CustomPluginMonitorFilesystemCorruptionProblemFilesystemCorruption Algılandı
CustomPluginMonitorKubeletProblemKubeletIsDown
CustomPluginMonitorContainerRuntimeProblemContainerRuntimeIsDown
CustomPluginMonitorVMEventScheduledVMEventScheduled
CustomPluginMonitorFrequentUnregisterNetDeviceUnregisterNetDevice
CustomPluginMonitorFrequentKubeletRestartFrequentKubeletRestart
CustomPluginMonitorFrequentContainerdRestartFrequentContainerdRestart
CustomPluginMonitorFrequentDockerRestartFrequentDockerRestart
SystemLogMonitorKernelDeadlockDockerHung
SystemLogMonitorReadonlyFilesystemFilesystemIsReadOnly
Sorun Daemon türüNodeConditionNedeni
CustomPluginMonitorFilesystemCorruptionProblemFilesystemCorruption Algılandı

Events

Sorun Daemon türüNedeni
CustomPluginMonitorFilesystemCorruption Algılandı
CustomPluginMonitorKubeletIsDown
CustomPluginMonitorContainerRuntimeIsDown
CustomPluginMonitorFreezeScheduled

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.

Leave a Reply

Your email address will not be published. Required fields are marked *