Uzun zamandır yazmak istediğim bir konuya değinme vakti geldi. Azure Kubernetes Service (AKS) üzerinde Uptime SLA isminde bir feature bulunuyor. Çoğunuzun kafasına “Zaten yönetilen olarak aldığımız bu hizmet için bir de ayrıca SLA almanın anlamı nedir?” Ya da “Zaten Microsoft bu service özelinde SLA sağlamıyor mu? ” şeklinde sorular oluşmuş olabilir. Şimdi bu konuyu biraz daha derinlemesine inceleyip AKS’nin Uptime SLA ile sahip olduğu avantajları netleştirelim.
Microsoft kendi dökümanlarında Uptime SLA için şu şekilde bir tanım kullanıyor.”Uptime SLA is a tier to enable a financially backed, higher SLA for an AKS cluster“.
Bildiğiniz üzere Microsoft Azure platformu üzerinde AKS free olarak müşterilerine sunuluyor. Yani cluster’ın control-plane dediğimi bileşenleri Microsoft tarafından herhangi bir ek ücret alınmadan yönetiliyor. Ancak bu free olarak yönetilen control-plane bileşenleri bir kaç replikadan oluşan limitli kaynaklar ile geliyor. Bu sebeple Microsoft bu hizmet için herhangi bir SLA taahhüt etmiyor. Burada %95.5 SLO (service level objective) veriyor.
Microsoft Uptime SLA feature ile birlikte AKS tarafındaki availability zone kullanan Kubernetes API Server için %99.95 SLA , availability zone kullanmayan Kubernetes API Server için %99.9 SLA vermeyi taahhüt ediyor. Bunu yaparken control plane bileşenlerini ayrı availability zone’larda konumlandırıp ve update ve fault domain konfigürasyonlarını yaparak SLA ile verilen uptime’ı karışılıyor.Microsoft eğer AKS üzerinde production iş yükleri çalıştırıyorsanız control plane bileşenlerinin availability’si için Uptime SLA’i almanızı tavsiye ediyor.
Feature olarak sunulan bu hizmetin saatlik ücreti yaklaşık 0,10$ civarında. Yani aylık cluster makiyetiniz üzerine ortalama 73$’lık bir ek SLA ücreti geliyor.
Uptime SLA nasıl etkinleştirilir?
Uptime SLA kubernetes kurulumu sırasında yada var olan cluster üzerindeki update seçeneği ile –uptime-sla parametresi kullanılarak aşağıdaki gibi etkinleştirilebilir.
# Create an AKS cluster with uptime SLA
az aks create --resource-group myResourceGroup --name myAKSCluster --uptime-sla --node-count 1
# Update an existing cluster to use Uptime SLA
az aks update --resource-group myResourceGroup --name myAKSCluster --uptime-sla
İstenildiği taktirde –no-uptime-sla parametresi kullanılarak SLA özelliği iptal edilebilir.
Sonuç olarak production iş yükleri için kullanılan Kubernetes cluster’ların yedekli çalışması ve erişilebilir olması gereklidir. Saatlik ücreti 0.10$ olaran bu hizmet ile Azure platformu üzerinde Kubernetes cluster’larınızın her daim ulaşılabilir olmasını sağlayabilir siniz.
Kaynak: https://docs.microsoft.com/en-us/azure/aks/uptime-sla