Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulamaları Azure Kubernetes Service'te (AKS) çalıştırırken kümenizdeki işlem kaynaklarının miktarını etkin bir şekilde artırmanız veya azaltmanız gerekebilir. Sahip olduğunuz uygulama örneklerinin sayısını değiştirdiğinizde, temel alınan 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, sabit bir maliyeti korumak için düğüm sayısı gibi kullanılacak belirli miktarda kaynak tanımlamanızı sağlar. El ile ölçeklendirmek için bir kopya veya düğüm sayısı belirtirsiniz. Kubernetes API, replika veya düğüm sayısına göre daha fazla pod oluşturulmasını ya da düğümlerin boşaltılmasını zamanlar.
Düğümlerin ölçeğini azalttığınızda 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'si hangi düğümlerin kaldırılacağını belirler. Ölçek azaltmada düğümlerin kaldırılması için nasıl seçildiğini öğrenmek için Sanal Makine Ölçek Kümeleri SSS'ye bakın.
Düğümleri el ile ölçeklendirmeye başlamak için AKS kümesinde düğümleri el ile ölçeklendirme bölümüne bakın. 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 denetlerken Ölçümler API'si 60 saniyede bir Kubelet'ten veri alır. Sonuç olarak HPA her 60 saniyede bir güncelleştirilir. Değişiklik gerektiğinde, çoğaltma sayısı buna göre ölçeklendirilir. HPA, Metrics Server yüklenmiş Kubernetes sürüm 1.8 ve üzerini dağıtılmış 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 başlatmak için AKS'de podları otomatik ölçeklendirme konusuna bakın.
Ölçeklendirme olaylarının soğuma 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'de ölçeği artırma olaylarının gecikmesi yoktur. 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'deki küme otomatik ölçeklendiricisi ile çalışmaya başlamak için AKS'de Küme Otomatik Ölçeklendiricisi başlıklı makaleye bakın.
Olayların ölçeğini genişletme
Bir düğümde istenen podu çalıştırmak için yeterli hesaplama kaynakları yoksa, bu pod planlama sürecinde ilerleyemez. Düğüm havuzunda daha fazla işlem kaynağı sağlanmadığı sürece pod çalıştırı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ı bekleme durumunda kalabilir. Yüksek ani artış talepleri olan uygulamalar için sanal düğümler ve Azure Container Instances ile ölçeklendirme yapabilirsiniz.
Etkinliklerde ölçek
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, 10 dakika boyunca artık gereksinim duyulmayan bir 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ği için KEDA Yatay Pod Otomatik Ölçeklendiricisinden farklıdır; HPA ise kaynak kullanımına (cpu ve bellek gibi) göre ölçüm temellidir.
AKS'de KEDA eklentisini kullanmaya başlamak için bkz . KEDA'ya genel bakış.
Düğüm Otomatik Sağlama
Düğüm otomatik sağlama (önizleme) (NAP), AKS kümenizde Karpenter'ı otomatik olarak dağıtan, yapılandıran ve yöneten açık kaynak Karpenter projesini kullanır. NAP, bekleyen pod kaynak gereksinimlerine göre düğümleri dinamik olarak sağlar; gerçek zamanlı talebi karşılamak için en uygun sanal makine (VM) SKU'sunu ve miktarını otomatik olarak seçer.
NAP, hangi SKU'nun bekleyen iş yükleri için en uygun olduğuna karar vermek için başlangıç noktası olarak vm SKU'larının önceden tanımlanmış bir listesini alır. Daha hassas bir denetim için kullanıcılar düğüm havuzu tarafından kullanılan kaynakların üst sınırlarını ve birden çok düğüm havuzu varsa iş yüklerinin zamanlanması gereken yeri tercih edebilir.
Denetim Düzlemi Ölçeklendirme ve Korumalar
Kubernetes'in her kaynak türü bir boyutu temsil eden çok boyutlu bir ölçek zarfı vardır. Tüm kaynaklar aynı değildir. Örneğin, saatler genellikle gizli diziler üzerinde ayarlanır ve bu da kube-apiserver'a maliyet ekleyen liste çağrılarına ve denetim düzleminde saatsiz kaynaklara kıyasla orantısız olarak daha yüksek yüke neden olur.
Denetim düzlemi kümedeki tüm kaynak ölçeklendirmesini yönetir, böylece kümeyi belirli bir boyut içinde ne kadar çok ölçeklendirirseniz, diğer boyutlar içinde o kadar az ölçeklendirme yapabilirsiniz. Örneğin, bir AKS kümesinde yüz binlerce pod çalıştırmak, kontrol düzleminin ne kadar pod değişim hızını (saniyede pod mutasyonları) destekleyeebileceğini etkiler. En iyi yöntemlere bakın.
AKS, kümedeki toplam çekirdek sayısı ve cpu veya kontrol düzlemi bileşenleri üzerindeki bellek baskısı gibi önemli sinyallere göre denetim düzlemi bileşenlerini otomatik olarak ölçeklendirir.
Denetim düzleminin ölçeklenip ölçeklenmediğini doğrulamak için 'large-cluster-control-plane-scaling-status' adlı ConfigMap'i kontrol edin.
kubectl describe configmap large-cluster-control-plane-scaling-status -n kube-system
Kontrol Düzlemi Korumaları
API sunucusunun ölçeklenmesi yüksek yük senaryolarında api sunucusunu otomatik olarak kararlı hale getirmezse, AKS yönetilen bir API sunucu koruyucusu dağıtır. Bu koruma, sistem dışı istemci isteklerini kısıtlayarak ve denetim düzleminin tamamen yanıt vermemesini önleyerek API sunucusunu korumak için son çare mekanizması işlevi görür. Kubelet gibi bileşenlerden API sunucusuna yapılan sistem açısından kritik çağrılar normal çalışmaya devam edecektir.
Yönetilen API sunucu koruyucusunun uygulanıp uygulanmadığını doğrulamak için "aks-managed-apiserver-guard" FlowSchema ve PriorityLevelConfiguration olup olmadığını denetleyin.
kubectl get flowschemas
kubectl get prioritylevelconfigurations
Hızlı azaltma için kümeye "aks-managed-apiserver-guard" FlowSchema ve PriorityLevelConfiguration uygulandıysa API sunucusu ve Etcd Sorun Giderme kılavuzuna bakın.
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ının destekleyebileceğinden 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, 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, küme otomatik ölçeklendiricisinin AKS kümenize yeni düğümler eklemesiyle gecikme olmadan ölçeklenebilir.
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: