{"id":39,"date":"2021-02-10T18:53:00","date_gmt":"2021-02-10T18:53:00","guid":{"rendered":"http:\/\/blog.firatyasar.com\/?p=39"},"modified":"2021-03-31T18:55:05","modified_gmt":"2021-03-31T18:55:05","slug":"aks-advanced-scheduling","status":"publish","type":"post","link":"https:\/\/blog.firatyasar.com\/?p=39","title":{"rendered":"AKS &#8211; Advanced Scheduling"},"content":{"rendered":"\n<p>Resource intensive application\u2019lar\u0131n limitlenmesinde advanced scheduling bile\u015fenleri \u00f6nemli rol oynar. Bu \u00f6zellikler sayesinde node\u2019lar\u0131n belirli i\u015f y\u00fckleri i\u00e7in available olmas\u0131na olanak sa\u011flan\u0131r.<\/p>\n\n\n\n<p>\u00d6rnek olarak cluster \u00fczerinde AI yada ML \u00e7al\u0131\u015ft\u0131racak olan i\u015f y\u00fckleri GPU\u2019lu node\u2019lara ihtiya\u00e7 duyarlar. GPU\u2019ya sahip olan resource\u2019lar pahal\u0131 olduklar\u0131 i\u00e7in bu tipte kaynaklara ihtiya\u00e7 duyan i\u015f y\u00fcklerinin burada schedule olabilmeleri i\u00e7in baz\u0131 limitlendirme \u00e7al\u0131\u015fmalar\u0131 yap\u0131lmas\u0131 gerekir.<\/p>\n\n\n\n<p>Cloud mimarilerinde bunlar node\u2019lar\u0131 gruplayarak kolayl\u0131kla yap\u0131labilir. Bu mant\u0131ksal gruplamalar \u00fczerinden node\u2019lar taint\u2019lenebilir. Ard\u0131ndan sadece bu taint\u2019leri tolere edebilecek toleration konfig\u00fcrasyonuna sahip olan pod\u2019lar bu node\u2019lar \u00fczerinde schedule olabilirler.<\/p>\n\n\n\n<p>E\u011fer ortamda taint edilmi\u015f bir node bulunuyorsa ve tolere edilmi\u015f bir pod varsa bu pod taint edilmi\u015f node \u00fczerinde schedule edilir.<\/p>\n\n\n\n<h3>Node Selector:<\/h3>\n\n\n\n<p>Taint-Toleration mekanizmas\u0131 resource\u2019lar\u0131 mant\u0131ksal olarak izole eder ancak bu i\u015flemi sert bir \u015fekilde yapar. (Hard cut off)<\/p>\n\n\n\n<p>Daha light olarak node selector kullan\u0131labilir.Node selector kullan\u0131lan mekanizmalarda selector olarak hardware tipleri kullan\u0131labilir. (SSD, ram miktar\u0131 etc.)<\/p>\n\n\n\n<p>Node selector mekanizmas\u0131 pod assign etme i\u015fleminde olduk\u00e7a basittir. Daha advanced senoryolar ile pod scheduling yap\u0131lmak istenirse node affinity kullan\u0131lmas\u0131 \u00f6nerilir.<\/p>\n\n\n\n<p>Node selector mekanizmas\u0131nda node\u2019lar belli \u00f6zelliklerine g\u00f6re label\u2019lan\u0131rlar. Pod\u2019lar ise \u00fczerilerinde node selector konfig\u00fcrasyonunu ta\u015f\u0131y\u0131p label\u2019lanan node\u2019larda schedule edilirler. Node selector\u2019\u00fcn taint\/toleration mekanizmas\u0131ndan fark\u0131 \u00e7ok keskin \u015fekilde scheduling\u2019i belirlemiyor olmas\u0131d\u0131r. \u00d6rne\u011fin label\u2019lanm\u0131\u015f pod \u00fczerinde node selector konfig\u00fcrasyonu yap\u0131lmam\u0131\u015f pod\u2019lar da schedule edilebilir. Bu mekanizmada node selector konfig\u00fcrasyonunu ta\u015f\u0131yan pod\u2019lar \u00f6nceliklidir.<\/p>\n\n\n\n<h3>Node Affinity:<\/h3>\n\n\n\n<p>Node affinity mekanizmas\u0131 ile pod schedule etme i\u015flemleri \u00e7ok esnek bir hale gelir.<\/p>\n\n\n\n<h3>Inter-Pod Affinity &amp; Anti-Affinity<\/h3>\n\n\n\n<p>Node affinity \u00f6zelli\u011fi node seviyesinde konfig\u00fcre edilirken inter-pod affinity ve anti-affinity rule\u2019lar\u0131 pod seviyesinde konfig\u00fcre edilirler.<\/p>\n\n\n\n<p>Bu configler ile scheduler\u2019a pod schedule i\u015flemi yap\u0131l\u0131rken schedule edilecek node \u00fczerinde ayn\u0131 pod\u2019un \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmesini s\u00f6yleriz. Default olarak replicaset i\u00e7erisinde bulunan pod\u2019lar cluster i\u00e7erisindeki ayr\u0131 node\u2019lar \u00fczerinde schedule edilme e\u011filimindedir. Bu affinity rule\u2019lar\u0131 ile daha complex hale getirilebilir.<\/p>\n\n\n\n<p>Anti-affinity rule\u2019u tam da bu g\u00f6revi yapar. Replica pod\u2019lar\u0131 cluster i\u00e7erisinde farkl\u0131 node\u2019lara da\u011f\u0131tarak schedule eder.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>F\u0131rat<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Resource intensive application\u2019lar\u0131n limitlenmesinde advanced scheduling bile\u015fenleri \u00f6nemli rol oynar. Bu \u00f6zellikler sayesinde node\u2019lar\u0131n belirli i\u015f y\u00fckleri i\u00e7in available olmas\u0131na olanak sa\u011flan\u0131r. \u00d6rnek olarak cluster \u00fczerinde AI yada ML \u00e7al\u0131\u015ft\u0131racak olan i\u015f y\u00fckleri GPU\u2019lu node\u2019lara ihtiya\u00e7 duyarlar. GPU\u2019ya sahip olan resource\u2019lar pahal\u0131 olduklar\u0131 i\u00e7in bu tipte kaynaklara ihtiya\u00e7 duyan i\u015f y\u00fcklerinin burada schedule olabilmeleri i\u00e7in\u2026 <span class=\"read-more\"><a href=\"https:\/\/blog.firatyasar.com\/?p=39\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/39"}],"collection":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=39"}],"version-history":[{"count":1,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/39\/revisions"}],"predecessor-version":[{"id":40,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/39\/revisions\/40"}],"wp:attachment":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=39"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=39"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}