Kubernetes Eviction Policy Ayarları

0 Replies 35 Views
·

Leave a rating: Kubernetes Eviction Policy Ayarları

You have already rated this thread. Re-rating it will remove your existing rating or review.

Rating:

Raters: Kubernetes Eviction Policy Ayarları

Participants
Thread Starter #0

Kubernetes Eviction Policy Ayarları


Giriş: Eviction Politikalarına Genel Bakış


Kubernetes kümelerinde kararlılık ve performans hayati öneme sahiptir. Bu bağlamda, "Eviction Policy" (Atma Politikası), düğümlerin kaynak baskısı altında veya sağlıksız duruma düştüğünde pod'ları nasıl yöneteceğini belirleyen kritik bir mekanizmadır. Amacı, düğümün çökmesini önlemek ve diğer pod'ların sağlıklı bir şekilde çalışmasını sağlamaktır. Kubernetes, kaynak kıtlığı yaşayan bir düğümde, hangi pod'ların atılacağına dair önceliklendirme ve süreç yönetimi yapar. Bu politikalar, kümenin genel sağlığını korurken, iş yüklerinizin beklendiği gibi çalışmasını güvence altına alır. Bu nedenle, Kubernetes operatörlerinin eviction politikalarını doğru bir şekilde anlamaları ve yapılandırmaları büyük önem taşır.

Pod Atılmasına Yol Açan Nedenler


Bir pod'un düğümden atılmasının birçok farklı nedeni bulunur. En yaygın nedenlerden biri, düğüm üzerindeki bellek, CPU veya disk gibi temel kaynakların tükenmesidir. Örneğin, bir uygulama beklenenden daha fazla bellek kullandığında, düğüm "bellek baskısı" altına girebilir ve Kubelet, düğümün kararlılığını korumak için pod'ları atmaya başlayabilir. Ek olarak, disk G/Ç sorunları, düğümün ağ bağlantısındaki problemler veya düğümün "Hazır Değil" (NotReady) durumuna geçmesi de pod'ların atılmasına yol açar. Bazen, küme yöneticileri belirli bir düğümü bakıma almak veya iş yükünü yeniden dengelemek amacıyla manuel olarak pod'ları atabilirler. Tüm bu senaryolarda, Kubernetes'in eviction politikaları, sistemin nasıl tepki vereceğini belirler.

QoS (Quality of Service) Sınıfları ve Eviction İlişkisi


Kubernetes'te pod'lara atanan QoS (Quality of Service) sınıfları, eviction süreçlerinde belirleyici bir rol oynar. Üç ana QoS sınıfı vardır: Guaranteed, Burstable ve BestEffort. Guaranteed sınıfındaki pod'lar, hem kaynak taleplerini (requests) hem de limitlerini (limits) belirtir ve bu değerler eşit olduğunda atanır. Bu pod'lar, kaynakları ayrılmış olduğu için en düşük atılma önceliğine sahiptir. Burstable pod'lar, sadece kaynak taleplerini belirtir veya taleplerinden daha yüksek limitler tanımlar. Onlar, Guaranteed'den sonra, BestEffort'tan önce atılır. BestEffort sınıfındaki pod'lar ise hiçbir kaynak talebi veya limiti belirtmezler; bu nedenle, kaynak baskısı altında ilk atılacak pod'lardır. Başka bir deyişle, kritik iş yüklerinizin Guaranteed sınıfında olması, onların atılma riskini önemli ölçüde azaltır.

Hard Eviction Sınırları ve Önemi


"Hard Eviction" (Sert Atma) sınırları, bir düğümün belirli bir kaynağın kullanım eşiğini aştığında hemen pod'ları atmaya başladığı önceden tanımlanmış eşiklerdir. Bu sınırlar, genellikle düğümün kararlılığını doğrudan etkileyebilecek durumları ifade eder. Örneğin, eğer düğümün kullanılabilir disk alanı belirli bir yüzde altına düşerse veya bellek kullanımı kritik bir seviyeye ulaşırsa, Kubelet hemen pod'ları atmaya başlar. Bu mekanizma, düğümün çökmesini veya tamamen kullanılamaz hale gelmesini önlemek için tasarlanmıştır. Hard eviction eşikleri, `kubelet` yapılandırmasında `eviction-hard` parametresiyle belirlenir ve düğüm yöneticileri bu değerleri kendi küme ihtiyaçlarına göre ayarlayabilirler. Bu sınırlar, kümenin genel sağlığını güvence altına almak için kritik bir rol oynar.

Soft Eviction ve Grace Period Mekanizması


"Soft Eviction" (Yumuşak Atma) mekanizması, hard eviction'dan daha esnek bir yaklaşımdır. Bu durumda, Kubelet belirli bir kaynak eşiğine ulaşıldığını algılar ancak pod'ları hemen atmaz. Bunun yerine, bir "grace period" (bekleme süresi) tanımlar. Örneğin, düğümdeki bellek kullanımı belirli bir soft eviction eşiğini aşarsa, Kubelet uyarı verir ancak pod'a kapanması için belirli bir süre tanır. Bu süre içinde pod, düzgün bir şekilde kapatma işlemlerini (kaynakları serbest bırakma, bağlantıları sonlandırma vb.) tamamlayabilir. Bu özellik, uygulamaların ani kapanmalar yerine daha kontrollü bir şekilde sonlandırılmasını sağlar, böylece veri kaybı veya servis kesintisi riski azalır. `kubelet` yapılandırmasında `eviction-soft` ve `eviction-soft-grace-period` parametreleriyle bu mekanizmayı yapılandırırız.

Eviction Politikalarını Yapılandırma ve En İyi Uygulamalar


Kubernetes eviction politikalarını doğru yapılandırmak, küme kararlılığı için esastır. Bu ayarları Kubelet'in yapılandırma dosyasında (genellikle `/var/lib/kubelet/config.yaml`) buluruz. `eviction-hard`, `eviction-soft`, `eviction-soft-grace-period` gibi parametrelerle çeşitli eşikler ve bekleme süreleri tanımlarız. Örneğin, `eviction-hard: memory.available<10%` ayarı, kullanılabilir bellek %10'un altına düştüğünde sert atma başlatır. En iyi uygulamalardan biri, iş yüklerinizin kritiklik seviyesine göre QoS sınıflarını dikkatlice belirlemektir. Ayrıca, düğümlerinizdeki kaynak kullanımını düzenli olarak izlemeli ve eviction olaylarının kök nedenlerini anlamak için logları ve olayları incelemelisiniz. Bu nedenle, proaktif bir yaklaşım benimsemek ve gerekli ayarlamaları yapmak, istenmeyen pod atılmalarını minimize eder.

Eviction Mekanizmalarını Anlama ve İzleme


Eviction mekanizmalarını doğru bir şekilde anlamak ve izlemek, küme yöneticilerinin sorumluluğundadır. Kubernetes, eviction olaylarını "Pod Evicted" veya "Node Has No Available Memory" gibi mesajlarla etkinlik günlüğüne (events) kaydeder. Bu olayları `kubectl describe pod` veya `kubectl get events` komutlarıyla inceleyebiliriz. Ek olarak, Prometheus ve Grafana gibi izleme araçlarını kullanarak düğüm kaynak kullanımını (bellek, CPU, disk) sürekli olarak takip edebilirsiniz. Sık sık yaşanan pod atılmaları, kaynak yetersizliği, yanlış yapılandırılmış kaynak talepleri/limitleri veya uygulama bellek sızıntıları gibi sorunların habercisi olabilir. Sonuç olarak, bu verileri analiz ederek sorunların kök nedenlerini belirler ve ilgili pod'ların kaynak ayarlarını veya düğüm kapasitesini optimize edebilirsiniz.

You must be logged in to reply.

0 quotes selected