Büyük AKS kümelerini çalıştırırken veya ölçeklendirirken sık karşılaşılan sorunlar hakkında SSS
Bu makalede, Microsoft Azure Kubernetes Service'te (AKS) büyük kümeleri çalıştırdığınızda veya ölçeklendirirken karşılaşabileceğiniz yaygın sorunlar hakkında sık sorulan sorular yanıtlanmaktadır. Büyük küme, 500 düğümlü ölçekten daha fazla çalışan herhangi bir kümedir.
Oluşturma, ölçeği artırma veya yükseltme sırasında "kota aşıldı" hatası alıyorum
Bu sorunu çözmek için, oluşturmaya, ölçeklendirmeye veya yükseltmeye çalıştığınız abonelikte bir destek isteği oluşturun ve ilgili kaynak türü için bir kota isteyin. Daha fazla bilgi için bkz . Bölgesel işlem kotaları.
Gelişmiş ağ kullanan bir AKS kümesi dağıttığımda "insufficientSubnetSize" hatası alıyorum
Bu hata, bir küme için kullanılan bir alt ağın, başarılı kaynak ataması için CIDR içinde artık kullanılabilir IP'lere sahip olmadığını gösterir. Bu sorun yükseltmeler, ölçek genişletmeleri veya düğüm havuzu oluşturma sırasında oluşabilir. Bu sorun, alt ağdaki boş IP sayısının aşağıdaki formülün sonucundan az olması nedeniyle oluşur:
istenen düğüm sayısı * düğüm havuzu
--max-pod
değeri
Önkoşullar
400 düğümün ötesine ölçeklendirmek için Azure CNI ağ eklentisini kullanmanız gerekir.
Sanal ağınızı ve alt ağlarınızı dağıttığınız düğüm ve pod sayısına uyacak şekilde planlamaya yardımcı olmak için bkz . Kümenizin IP adreslerini planlama. IP tükenmesi nedeniyle yapabileceğiniz alt ağ planlaması veya küme yeniden oluşturma yükünü azaltmak için bkz . Dinamik IP ayırma.
Çözüm
Mevcut bir alt ağın CIDR aralığını güncelleştiremediğiniz için bu sorunu çözmek için yeni bir alt ağ oluşturma izniniz olmalıdır. Şu adımları izleyin:
İşlem hedefleri için yeterli olan daha büyük bir CIDR aralığına sahip yeni bir alt ağı yeniden oluşturun.
Çakışmayan yeni bir aralığa sahip yeni bir alt ağ oluşturun.
Yeni alt ağda yeni bir düğüm havuzu oluşturun.
Değiştirilecek eski alt ağda bulunan eski düğüm havuzundan podları boşaltın.
Eski alt ağı ve eski düğüm havuzunu silin.
SNAT bağlantı noktası tükenmesi nedeniyle düzensiz çıkış bağlantı hataları yaşıyorum
Görece büyük bir ölçekte (500'den fazla düğüm) çalışan kümeler için daha fazla ölçeklenebilirlik için AKS Yönetilen Ağ Adresi Çevirisi (NAT) Ağ Geçidi'ni kullanmanızı öneririz. Azure NAT Gateway, IP adresi başına en fazla 64.512 giden UDP ve TCP trafik akışına ve en fazla 16 IP adresine izin verir.
Yönetilen NAT kullanmıyorsanız SNAT bağlantı noktası tükenme sorunlarını anlamak ve çözmek için bkz . Kaynak ağ adresi çevirisi (SNAT) tükenmesi ve bağlantı zaman aşımları sorunlarını giderme.
Azure portalını kullanarak 5.000 düğüme kadar ölçeği artıramıyorum
Azure CLI'yi kullanarak aşağıdaki adımları izleyerek en fazla 5.000 düğüme kadar ölçeklendirin:
Aşağıdaki komutu çalıştırarak kümede en az sayıda düğüm havuzu oluşturun (düğüm havuzu düğümü üst sınırı 1.000 olduğundan):
az aks nodepool add --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedCluster
Düğüm havuzlarının ölçeğini birer birer artırabilirsiniz. İdeal olarak, 1.000'in art arda ölçek artırmaları arasında beş dakikalık uyku süresi ayarlayın. Şu komutu çalıştırın:
az aks nodepool scale --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedCluster
Yükseltmem çalışıyor ama yavaş
Varsayılan yapılandırmasında AKS, yükseltme sırasında aşağıdaki eylemleri gerçekleştirerek atlar:
- Yeni bir düğüm oluşturuluyor.
- Düğüm havuzunu istenen düğüm sayısının ötesinde bir düğüme göre ölçeklendirme.
En yüksek dalgalanma ayarları için bir düğümün varsayılan değeri, AKS'nin mevcut uygulamaları boşaltmadan önce yeni bir düğüm oluşturduğu ve önceki sürüme sahip bir düğümü değiştirdiğini gösterir. Bu ek düğüm, AKS'nin iş yükü kesintilerini en aza indirmenize olanak tanır.
Çok sayıda düğümü olan kümeleri yükselttiğiniz zaman, varsayılan değerini max-surge
kullanırsanız kümenin tamamını yükseltmek birkaç saat sürebilir. Yükseltme hızı ile yükseltme kesintisi max-surge
arasında bir denge sağlamak için düğüm havuzu başına özelliğini özelleştirebilirsiniz. Maksimum artış değerini artırarak yükseltme işleminin daha erken bitebilmesini sağlarsınız. Ancak, en yüksek dalgalanma için büyük bir değer yükseltme işlemi sırasında kesintilere de neden olabilir.
Mevcut düğüm havuzunun en yüksek dalgalanmasını artırmak veya özelleştirmek için aşağıdaki komutu çalıştırın:
az aks nodepool update --resource-group MyResourceGroup --name mynodepool --cluster-name MyManagedCluster --max-surge 5
Dağıtım ayarlarınızın yükseltme veya ölçeklendirme işleminin tamamlanmasını nasıl geciktirebileceğini de göz önünde bulundurmanız önemlidir:
- SKU ailesi B serisi VM'ler sistem düğüm havuzundaki AKS tarafından desteklenmez ve güncelleştirmeler sırasında ve sonrasında düşük performansla karşılaşabilir.
- Başarılı bir yükseltme için doğru olduklarından emin olmak için dağıtımınızın PDB kaynak ayarlarını denetleyin. Daha fazla bilgi için bkz . AKS iş yükü en iyi yöntemleri.
İpucu
Bu davranış hakkında daha fazla içgörü elde etmek için Azure portalındaki Etkinlik Günlüğü sayfasında hata ayrıntılarını görüntüleyebilir veya kümenizdeki kaynak günlüklerini gözden geçirebilirsiniz.
Yükseltmem kota (5.000 küme) sınırına ulaşıyor
Bu sorunu çözmek için bkz . Bölgesel vCPU kotalarını artırma.
750'den fazla düğümde iç hizmet oluşturma işlemim yavaş veya zaman aşımı hatası nedeniyle başarısız oluyor
Standart Load Balancer (SLB) arka uç havuzu güncelleştirmeleri bilinen performans sorunlarıdır. Büyük ölçekte hizmetlerin ve SLB'nin daha hızlı oluşturulmasını sağlayacak yeni bir özellik üzerinde çalışıyoruz. Bu sorun hakkında bize geri bildirim göndermek için bkz . IP tabanlı arka uç havuzu ile yük dengeleyici için Azure Kubernetes desteği.
Çözüm
Kümenin ölçeğini 750'den az düğüme azaltmanızı ve ardından küme için bir iç yük dengeleyici oluşturmanızı öneririz. İç yük dengeleyici oluşturmak için, aşağıdaki örnek yordama göre bir LoadBalancer
hizmet türü ve azure-load-balancer-internal
ek açıklama oluşturun.
1. Adım: İç yük dengeleyici oluşturma
İç yük dengeleyici oluşturmak için, aşağıdaki örnekte gösterildiği gibi internal-lb.yaml adlı ve hizmet türünü ve azure-load-balancer-internal
ek açıklamasını içeren LoadBalancer
bir hizmet bildirimi oluşturun:
apiVersion: v1
kind: Service
metadata:
name: internal-app
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: internal-app
2. Adım: İç yük dengeleyiciyi dağıtma
komutunu kullanarak iç yük dengeleyiciyi kubectl apply
dağıtın ve aşağıdaki örnekte gösterildiği gibi YAML bildiriminizin adını belirtin:
kubectl apply -f internal-lb.yaml
Kümeniz oluşturulduktan sonra bir iç yük dengeleyici (bu yordama göre) sağlayabilir ve iç yük dengeli hizmeti çalışır durumda tutabilirsiniz. Bunu yaptığınızda yük dengeleyiciye uygun ölçekte daha fazla hizmet ekleyebilirsiniz.
Büyük ölçekte SLB hizmeti oluşturma işleminin çalıştırılması saatler sürer
SLB arka uç havuzu güncelleştirmeleri bilinen performans sorunlarıdır. Oluşturma, güncelleştirme ve silme işlemleri için çok daha hızlı performansla yük dengeli hizmetleri büyük ölçekte çalıştırmanıza olanak sağlayacak yeni bir özellik üzerinde çalışıyoruz. Bize geri bildirim göndermek için bkz . IP tabanlı arka uç havuzuna sahip yük dengeleyici için Azure Kubernetes desteği.
Üçüncü taraf bilgileri hakkında yasal uyarı
Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.