{"id":63,"date":"2021-10-28T11:11:00","date_gmt":"2021-10-28T11:11:00","guid":{"rendered":"http:\/\/blog.firatyasar.com\/?p=63"},"modified":"2022-03-28T19:15:11","modified_gmt":"2022-03-28T19:15:11","slug":"azure-kubernetes-service-spot-node-pool","status":"publish","type":"post","link":"https:\/\/blog.firatyasar.com\/?p=63","title":{"rendered":"Azure Kubernetes Service Spot node pool"},"content":{"rendered":"\n<p>Spot nodepool, sport vm lerden olu\u015fan node&#8217;lar\u0131n olu\u015fturdu\u011fu vm pool&#8217;udur. Sport VM&#8217;lerin olu\u015fturdu\u011fu bu pool&#8217;u belli i\u015f y\u00fckleriniz i\u00e7in kullanarak belirgin \u00f6l\u00e7\u00fcde bir maliyet tasarrufu yapm\u0131\u015f olursunuz. Spot VM kullan\u0131m\u0131n\u0131 belirli fakt\u00f6rler etkiler. Bunlar kullan\u0131lan region, kullan\u0131lan vm size&#8217;\u0131, kullan\u0131lacak g\u00fcn gibi fakt\u00f6rlerdir.<br>Burada \u00f6nemli olan k\u0131s\u0131m \u015fu dur. Azure bu VM&#8217;ler i\u00e7in herhangi bir SLA vermemektedir. O anda o region i\u00e7erisindeki kapasitede sizin belirtti\u011finiz size&#8217;da bir availability varsa bu VM&#8217;leri d\u00fc\u015f\u00fck fiyatta kullanman\u0131za izin verir.&nbsp; AYr\u0131ca Spot kullan\u0131lan nodepool&#8217;lar arka planda ayn\u0131 fault domain i\u00e7erisinde tutulur. Bu da fiziksel olarak ya\u015fanacak bir sorunda t\u00fcm node&#8217;lar\u0131n etkilenece\u011fi anlam\u0131na gelir. Ayr\u0131ca herhangi bir high availability garantisi de verilmez.<br>Peki hangi tipte i\u015f y\u00fckleri i\u00e7in bu sport nodepool&#8217;lar uygun?<br>Genelde bu tipte i\u015f y\u00fckleri kesinti olmas\u0131 durumunda (Azure&#8217;un spot makineleri ihtiya\u00e7 duydu\u011funda geri almas\u0131 durumunda) herhangi bir sorun ya\u015famazlar. Bunlar;<\/p>\n\n\n\n<ul><li>Batch processing<\/li><li>Dev\/test environments<\/li><li>Large compute workloads<\/li><\/ul>\n\n\n\n<p><strong>Limitations<\/strong><\/p>\n\n\n\n<ul><li>E\u011fer spot nodepool kullanma niyetiniz varsa, bunu default nodepool olarak kullanamazs\u0131n\u0131z. Sport nodepool sadece secondary nodepool olarak kullan\u0131labilir.<\/li><li>Spot nodepool&#8217;lar upgrade edilemezler. E\u011fer g\u00fcncel versiyon ihtiyac\u0131n\u0131z varsa varolan nodepool ile yenisi replace etmeniz gerekir.<\/li><li>Spot nodepool&#8217;a sahip cluster&#8217;larda control plane ile\u00a0 ayn\u0131 anda upgrade i\u015flemi yap\u0131lmaz.<\/li><li>Spot nodepool&#8217;un vm scaleset i\u00e7erisinde olmas\u0131 gerekir.<\/li><li>Workload&#8217;u spot nodepool \u00fczerinde schedule edebilmek i\u00e7in gerekli toleration ve affinity configurasyonlar\u0131n\u0131n yap\u0131lmas\u0131 gerekir.<\/li><li>ScaleSetPriority ve SpotMaxPrice nodepool olu\u015fturulduktan sonra de\u011fi\u015ftirilemez.<\/li><\/ul>\n\n\n\n<p>AKS cluster \u00fczerine spot nodepool eklemek i\u00e7in a\u015fa\u011f\u0131daki \u015fekilde nodepool olu\u015fturma komutunun \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>az aks nodepool add \\\n    --resource-group myResourceGroup \\\n    --cluster-name myAKSCluster \\\n    --name spotnodepool \\\n    --priority Spot \\\n    --eviction-policy Delete \\\n    --spot-max-price -1 \\\n    --enable-cluster-autoscaler \\\n    --min-count 1 \\\n    --max-count 3 \\\n    --no-wait<\/code><\/pre>\n\n\n\n<p>Default olarak AKS cluster&#8217;a yeni nodepool ekledi\u011finizde priority de\u011feri regular olarak ayarlan\u0131r. Bu nodepool&#8217;un regular vm&#8217;lerden olu\u015faca\u011f\u0131 anlam\u0131na gelir. E\u011fer nodepool&#8217;Un spot VM&#8217;lerden olu\u015fmas\u0131n\u0131 isterseniz bu de\u011feri &#8220;Spot&#8221; olarak ayarlaman\u0131z gerekir.<\/p>\n\n\n\n<p>Spot node&#8217;lara sahip nodepool&#8217;lar \u00fczerinde a\u015fa\u011f\u0131daki taint konfig\u00fcrasyonu otomatik olarak gelir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubernetes.azure.com\/scalesetpriority=spot:NoSchedule<\/code><\/pre>\n\n\n\n<p>Bunun sebebi bu node&#8217;lar \u00fczerinde business critical i\u015f y\u00fcklerinizi \u00e7al\u0131\u015ft\u0131rmay\u0131 engellemektir.Bu node&#8217;lar \u00fczerinde schedule olacak olan belirli i\u015f y\u00fcklerinin gereken toleration\u00a0 tan\u0131mlar\u0131na sahip olmalar\u0131 gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>spec:\n  containers:\n  - name: spot-example\n  tolerations:\n  - key: \"kubernetes.azure.com\/scalesetpriority\"\n    operator: \"Equal\"\n    value: \"spot\"\n    effect: \"NoSchedule\"<\/code><\/pre>\n\n\n\n<p>Belirli i\u015f y\u00fckleriniz i\u00e7in spot nodepool&#8217;lar\u0131 cluster&#8217;\u0131n\u0131za ekleyerek maliyet avantajlar\u0131 elde edebilirsiniz.<\/p>\n\n\n\n<p>Kaynak: <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/spot-node-pool\" data-type=\"URL\" data-id=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/spot-node-pool\">https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/spot-node-pool<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spot nodepool, sport vm lerden olu\u015fan node&#8217;lar\u0131n olu\u015fturdu\u011fu vm pool&#8217;udur. Sport VM&#8217;lerin olu\u015fturdu\u011fu bu pool&#8217;u belli i\u015f y\u00fckleriniz i\u00e7in kullanarak belirgin \u00f6l\u00e7\u00fcde bir maliyet tasarrufu yapm\u0131\u015f olursunuz. Spot VM kullan\u0131m\u0131n\u0131 belirli fakt\u00f6rler etkiler. Bunlar kullan\u0131lan region, kullan\u0131lan vm size&#8217;\u0131, kullan\u0131lacak g\u00fcn gibi fakt\u00f6rlerdir.Burada \u00f6nemli olan k\u0131s\u0131m \u015fu dur. Azure bu VM&#8217;ler i\u00e7in herhangi bir SLA\u2026 <span class=\"read-more\"><a href=\"https:\/\/blog.firatyasar.com\/?p=63\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":32,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[5,2,21,23,22],"_links":{"self":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/63"}],"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=63"}],"version-history":[{"count":1,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/63\/revisions"}],"predecessor-version":[{"id":64,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/63\/revisions\/64"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/media\/32"}],"wp:attachment":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}