Kubernetes Node affinity Kullanımı Hakkında

Merhaba,

Pod veya deployent tanımında node affinity kullandığım zaman preferredDuringSchedulingIgnoredDuringExecution ve requiredDuringSchedulingIgnoredDuringExecution de kullansam her ikisinde de ilk olarak podlarım oluşturulurken hangi node üzerinde oluşturmasını istersem oluşturuyor fakat sonra podların üzerinde olduğu node u kapatıyorum ve o node üzerindeki podlar diğer nodelara otomatik olarak geçmiyor. İlgili node kapalıyken terminating de etmiyor. Terminate etmediği içinde pod u tekrar başlattığımda terminate ediliyor diye uyarı veriyor. Deployment ı manuel olarak yeniden başlattığımda kapalı node üzerindeki podları değil tüm podları yeniden başlatıyor ve weigh değeri düşük olarak belirlediğim node a atıyor. Bu işlemin node u kapattığımda otomatik olarak gerçekleşmesi için ne yapmam gerekiyor.

node kapandıktan sonra kubernetes’in onu unhealthy olarak işaretlemesini bekleyin sonrasında podlar da yeniden schedule olacaktır, tabi deployment olarak oluşturduysanız.

Evet hocam defaultta bulunan süreyi değiştirince sorun düzeldi. Pod içerisine aşağıdaki şekilde
toleration kısmı ekliyorum defaultta 5 dakika olan süreyi 3 saniyeye çekmesi lazım ama tam olarak 3 saniyede node un çalışmadığını algılayıp atmıyor 1 dakikayı bulabiliyor bu süre.

image

Ben bu süreyi pod ve deployment içinden değilde cluster bazlı değiştirmem için hangi yaml dosyasını düzenlemem lazım.

Birde preferredDuringSchedulingIgnoredDuringExecution: parametresiyle node seçimi yaptığımda sırasıyla weight değeri yüksek olan nodeları tek tek kapatıp denediğimde 3 node a katar podları atıyor. İlk 3 node um kapandığında 4.node a podu atamıyor. nodeAffinity de altta belirlemem gereken bir node sınırı var mı

Son olarak kapanan nodelarımın biri tekrar aktif hale geldiğinde diğer node a atanan o objenin tekrar aktif olan (weight i yüksek olan) node a tekrar otomatik olarak geri geçmesini istersem nasıl bir ayar yapabilirim.