Azure Kubernetes Service (AKS) uygulamaları için ölçeklendirme seçenekleri
Azure Kubernetes Service'te (AKS) uygulama çalıştırırken işlem kaynağı miktarını artırmanız veya azaltmanız gerekebilir. Sahip olduğunuz uygulama örneklerinin sayısını değiştirdiğinizde, temel kubernetes düğümlerinin sayısını değiştirmeniz gerekebilir. Ayrıca çok sayıda başka uygulama örneği de sağlamanız gerekebilir.
Bu makalede podları veya düğümleri el ile ölçeklendirme, Yatay pod otomatik ölçeklendiricisini kullanma, Küme otomatik ölçeklendiricisini kullanma ve Azure Container Instances (ACI) ile tümleştirme gibi temel AKS uygulama ölçeklendirme kavramları tanıtılır.
Podları veya düğümleri el ile ölçeklendirme
Uygulamanızın kullanılabilir kaynaklarda ve durumdaki bir değişikliğe nasıl yanıt verdiğini test etmek için çoğaltmaları veya podları ve düğümleri el ile ölçeklendirin. Kaynakları el ile ölçeklendirme, düğüm sayısı gibi sabit bir maliyeti korumak için kullanılacak belirli miktarda kaynak tanımlamanızı sağlar. El ile ölçeklendirmek için çoğaltma veya düğüm sayısını tanımlarsınız. Kubernetes API'sinde daha fazla pod oluşturma veya bu çoğaltma veya düğüm sayısına göre düğümlerin boşaltılması zamanlanır.
Düğümlerin ölçeğini azaltırken Kubernetes API'si, kümeniz tarafından kullanılan işlem türüne bağlı ilgili Azure İşlem API'sini çağırır. Örneğin, Sanal Makine Ölçek Kümeleri üzerinde oluşturulan kümeler için Sanal Makine Ölçek Kümeleri API hangi düğümlerin kaldırılacağını belirler. Ölçek azaltmada düğümlerin kaldırılması için nasıl seçildiği hakkında daha fazla bilgi edinmek için bkz. Sanal Makine Ölçek Kümeleri SSS.
Düğümleri el ile ölçeklendirmeye başlamak için bkz . AKS kümesindeki düğümleri el ile ölçeklendirme. Pod sayısını el ile ölçeklendirmek için bkz . kubectl scale komutu.
Yatay pod otomatik ölçeklendiricisi
Kubernetes, kaynak talebini izlemek ve pod sayısını otomatik olarak ölçeklendirmek için yatay pod otomatik ölçeklendiricisini (HPA) kullanır. Varsayılan olarak HPA, çoğaltma sayısındaki gerekli değişiklikler için ÖlçümLER API'sini 15 saniyede bir denetler ve Ölçümler API'si 60 saniyede bir Kubelet'ten veri alır. Bu nedenle HPA her 60 saniyede bir güncelleştirilir. Değişiklikler gerektiğinde, çoğaltma sayısı buna göre artırılır veya azalır. HPA, Kubernetes için Ölçüm Sunucusu sürüm 1.8 ve üzerini dağıtan AKS kümeleriyle çalışır.
Belirli bir dağıtım için HPA'yı yapılandırdığınızda, çalışabilecek en az ve en fazla çoğaltma sayısını tanımlarsınız. Ayrıca CPU kullanımı gibi ölçeklendirme kararlarını izlemek ve temel almak için ölçümü de tanımlarsınız.
AKS'de yatay pod otomatik ölçeklendiricisini kullanmaya başlamak için bkz . AKS'de podları otomatik ölçeklendirme.
Ölçeklendirme olaylarının bekleme süresi
HPA her 60 saniyede bir etkili bir şekilde güncelleştirildiğinden, önceki ölçek olayları başka bir denetim yapılmadan önce başarıyla tamamlanmamış olabilir. Bu davranış HPA'nın önceki ölçek olayının uygulama iş yükünü alabilmesi için çoğaltma sayısını değiştirmesine ve kaynak taleplerinin buna göre ayarlanmasına neden olabilir.
Yarış olaylarını en aza indirmek için bir gecikme değeri ayarlanır. Bu değer, başka bir ölçek olayının tetiklenebilmesi için HPA'nın bir ölçek olayından sonra ne kadar beklemesi gerektiğini tanımlar. Bu davranış, yeni çoğaltma sayısının geçerli olmasını ve Ölçümler API'sinin dağıtılmış iş yükünü yansıtmasını sağlar. Kubernetes 1.12 itibarıyla ölçeği artırma olaylarında gecikme olmaz, ancak ölçeği azaltma olaylarında varsayılan gecikme 5 dakikadır.
Küme otomatik ölçeklendiricisi
Değişen pod taleplerine yanıt vermek için Kubernetes kümesi otomatik ölçeklendiricisi düğüm havuzundaki istenen işlem kaynaklarına göre düğüm sayısını ayarlar. Varsayılan olarak, küme otomatik ölçeklendiricisi Ölçümler API sunucusunu düğüm sayısındaki gerekli değişiklikler için 10 saniyede bir denetler. Küme otomatik ölçeklendiricisi bir değişikliğin gerekli olduğunu belirlerse AKS kümenizdeki düğüm sayısı buna göre artar veya azalır. Küme otomatik ölçeklendiricisi, Kubernetes 1.10.x veya üzerini çalıştıran Kubernetes RBAC özellikli AKS kümeleriyle çalışır.
Küme otomatik ölçeklendiricisi genellikle yatay pod otomatik ölçeklendiricisi ile birlikte kullanılır. Yatay pod otomatik ölçeklendiricisi birleştirildiğinde, uygulama talebine göre pod sayısını artırır veya azaltır ve küme otomatik ölçeklendiricisi daha fazla pod çalıştırmak için düğüm sayısını ayarlar.
AKS'de küme otomatik ölçeklendiricisini kullanmaya başlamak için bkz . AKS'de küme otomatik ölçeklendiricisi.
Olayların ölçeğini genişletme
Bir düğümün istenen podu çalıştırmak için yeterli işlem kaynağı yoksa, bu pod zamanlama işlemi boyunca ilerleyemez. Düğüm havuzu içinde daha fazla işlem kaynağı olmadığı sürece pod başlatılamaz.
Küme otomatik ölçeklendiricisi düğüm havuzu kaynak kısıtlamaları nedeniyle zamanlamayan podlar fark ettiğinde, ek işlem kaynakları sağlamak için düğüm havuzu içindeki düğüm sayısı artar. Düğümler başarıyla dağıtıldığında ve düğüm havuzu içinde kullanıma sunulduğunda, podlar üzerinde çalışacak şekilde zamanlanır.
Uygulamanızın hızla ölçeklendirilmesi gerekiyorsa, küme otomatik ölçeklendiricisi tarafından dağıtılan daha fazla düğüm zamanlanmış podları kabul edene kadar bazı podlar zamanlanmayı bekleyen bir durumda kalabilir. Yüksek ani artış talepleri olan uygulamalar için sanal düğümler ve Azure Container Instances ile ölçeklendirme yapabilirsiniz.
Olayların ölçeğini daraltma
Küme otomatik ölçeklendiricisi, yakın zamanda yeni zamanlama istekleri almamış düğümler için pod zamanlama durumunu da izler. Bu senaryo düğüm havuzunun gerekenden daha fazla işlem kaynağına sahip olduğunu ve düğüm sayısını azaltabileceğini gösterir. Varsayılan olarak, artık 10 dakika gerekmediğinden eşiği geçen düğümler silinmek üzere zamanlanır. Bu durum oluştuğunda podlar düğüm havuzu içindeki diğer düğümlerde çalışacak şekilde zamanlanır ve küme otomatik ölçeklendiricisi düğüm sayısını azaltır.
Küme otomatik ölçeklendiricisi düğüm sayısını azalttığında podlar farklı düğümlerde zamanlandığından uygulamalarınızda bazı kesintiler yaşanabilir. Kesintiyi en aza indirmek için tek bir pod örneği kullanan uygulamalardan kaçının.
Kubernetes Olay Odaklı Otomatik Ölçeklendirme (KEDA)
Kubernetes Olay Odaklı Otomatik Ölçeklendirme (KEDA), iş yüklerinin olay odaklı otomatik ölçeklendirmesi için açık kaynak bir bileşendir. İş yüklerini alınan olay sayısına göre dinamik olarak ölçeklendirir. KEDA, uygulamaların belirli trafiğe yanıt olarak nasıl ölçeklendirilmesi gerektiğini açıklamak için Kubernetes'i ScaledObject olarak adlandırılan özel bir kaynak tanımıyla (CRD) genişletir.
KEDA ölçeklendirmesi, iş yüklerinin trafik artışları aldığı veya yüksek hacimli verileri işlediği senaryolarda kullanışlıdır. KEDA olay odaklı olduğundan ve olay sayısına göre ölçeklendirildiğinden, HPA ise kaynak kullanımına (cpu ve bellek gibi) göre ölçüm temelli olduğundan Yatay Pod Otomatik Ölçeklendiricisinden farklıdır.
AKS'de KEDA eklentisini kullanmaya başlamak için bkz . KEDA'ya genel bakış.
Azure Container Instances'a (ACI) geçiş
AKS kümenizi hızla ölçeklendirmek için Azure Container Instances (ACI) ile tümleştirebilirsiniz. Kubernetes,çoğaltma ve düğüm sayısını ölçeklendirmek için yerleşik bileşenlere sahiptir. Ancak uygulamanızın hızla ölçeklendirilmesi gerekiyorsa yatay pod otomatik ölçeklendiricisi düğüm havuzundaki mevcut işlem kaynakları tarafından sağlanabilenden daha fazla pod zamanlayabilir. Bu senaryo yapılandırılırsa küme otomatik ölçeklendiricisini tetikleyerek düğüm havuzuna daha fazla düğüm dağıtabilir, ancak bu düğümlerin başarıyla sağlanması ve Kubernetes zamanlayıcısının bunlar üzerinde pod çalıştırmasına izin verilmesi birkaç dakika sürebilir.
ACI, ek altyapı yükü olmadan kapsayıcı örneklerini hızla dağıtmanıza olanak tanır. AKS ile bağlandığınızda ACI, AKS kümenizin güvenli, mantıksal bir uzantısına dönüşür. Sanal Kubelet'i temel alan sanal düğümler bileşeni, ACI'yi sanal Kubernetes düğümü olarak sunan AKS kümenize yüklenir. Kubernetes daha sonra doğrudan AKS kümenizdeki VM düğümlerinde pod olarak değil sanal düğümler aracılığıyla ACI örnekleri olarak çalışan podlar zamanlayabilir.
Uygulamanız sanal düğümleri kullanmak için değişiklik gerektirmez. Dağıtımlarınız AKS ve ACI genelinde ölçeklendirilebilir ve küme otomatik ölçeklendiricisi AKS kümenize yeni düğümler dağıttığı için gecikme olmadan.
Sanal düğümler AKS kümenizle aynı sanal ağdaki başka bir alt ağa dağıtılır. Bu sanal ağ yapılandırması, ACI ile AKS arasındaki trafiğin güvenliğini sağlar. AKS kümesi gibi, ACI örneği de diğer kullanıcılardan yalıtılmış güvenli, mantıksal bir işlem kaynağıdır.
Sonraki adımlar
Uygulamaları ölçeklendirmeye başlamak için aşağıdaki kaynaklara bakın:
- Podları veya düğümleri el ile ölçeklendirme
- Yatay pod otomatik ölçeklendiricisini kullanma
- Küme otomatik ölçeklendiricisini kullanma
- Kubernetes Olay Odaklı Otomatik Ölçeklendirme (KEDA) eklentisini kullanma
Temel Kubernetes ve AKS kavramları hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
Azure Kubernetes Service