Trafik artışını karşılamak için dışa doğru ölçeklendirme yapmak veya maliyetleri düşürmek için içe doğru ölçeklendirme yapmak amacıyla bir düğüm havuzu için beklenen düğüm sayısını ayarlayın.
ACK, iş yüküne göre kaynakları ayarlamak için düğüm otomatik ölçeklendirme veya anlık düğüm ölçeklendirmeyi destekler.
Nasıl çalışır?
Expected Nodes alanı, bir düğüm havuzu için hedeflenen düğüm sayısını belirler. Bir değişikliği gönderdiğinizde, ACK gerçek düğüm sayısını bu hedefe ulaştırmak için gerekli ECS örneklerini oluşturur veya kaldırır.
Scale out — Beklenen Düğüm sayısını mevcut sayının üzerine çıkarın. ACK, Auto Scaling aracılığıyla ECS örnekleri sağlar, her birinde cloud-init betiğini çalıştırır ve ardından bunları havuza ekler. Oluşturma işlemi başarısız olursa, ACK otomatik olarak yeniden dener. Örnek türleri ve alanlar, düğüm havuzunun ölçeklendirme ilkesine bağlıdır.
İçe ölçeklendirme (Scale in) — Beklenen Düğüm sayısını mevcut sayının altına düşürün. İçe ölçeklendirme sırasında yalnızca kullandıkça öde ECS örnekleri serbest bırakılır. Bir düğümün sistem diski ve veri disklerinin yaşam döngüsü düğüme bağlıdır. İçe ölçeklendirme sırasında bir düğüm serbest bırakıldığında, diskleri de onunla birlikte serbest bırakılır ve bu disklerdeki tüm veriler kalıcı olarak kaybolur; geri alınamaz. Kalıcılık gerektiren veriler için, depolamayı düğüm yaşam döngüsünden ayırmak üzere Kalıcı Birim (PV) kullanarak yönetin.
Beklenen Düğüm sayısını değiştirerek içe ölçeklendirme tetiklendiğinde, düğüm boşaltma (drain) işlemi başarısız olsa bile ACK düğümleri kaldırır. Katı bir boşaltma gereksiniminiz varsa, bunun yerine hedef düğümü manuel olarak kaldırın. Bkz. Düğüm kaldırma.
İçe ölçeklendirme sırasında kaldırma sırası, ölçeklendirme ilkesine bağlıdır:
| Ölçeklendirme ilkesi | Kaldırma sırası |
|---|---|
| Öncelik | Yeni oluşturulan örnekler önce kaldırılır. |
| Dağıtım dengeleme | Alanlar ilkeye göre filtrelenir; alanlar arasındaki sayıları dengelemek için yeni oluşturulan örnekler önce kaldırılır. |
| Maliyet optimizasyonu | Örnekler, vCPU fiyatına göre azalan sırada kaldırılır. |
Dışa ölçeklendirme sırasında faturalama
Faturalama, oluşturulan ECS örneklerinin gerçek teknik özelliklerine dayanır. Örneğin, iki örnek türü, kullandıkça öde faturalaması ve Öncelik ölçeklendirme ilkesi ile:
İlk öncelikli vSwitch'in alanında iki A Düğümü örneği oluşturulur.
A Düğümü envanteri yetersizse, ikinci öncelikli vSwitch'in alanında üç B Düğümü örneği oluşturulur.
Bir saatlik maliyet = (A Düğümü birim fiyatı × 2 × 1) + (B Düğümü birim fiyatı × 3 × 1).
GPU düğüm havuzları
ebmgn7 veya ebmgn7e ECS Bare Metal Instance ailelerinden örnekler eklerken, ACK bu örneklerde tutulan Çoklu Örnek GPU (MIG) yapılandırmasını sıfırlar. Bu sıfırlama işlemi zaman alır ve örneklerin kümeye katılmasını engelleyebilir.
Katılma hatalarını gidermek için bkz. ECS Bare Metal örneklerini ekleyemediğimde ne yapmalıyım?
Bkz. GPU hızlandırmalı hesaplama optimize edilmiş örnek aileleri (gn, ebm ve scc serileri).
Ön koşullar
Şunlara sahip olduğunuzdan emin olun:
En az bir düğüm havuzuna sahip bir ACK kümesi
(İsteğe bağlı, RAM kullanıcıları) AliyunOOSLifecycleHook4CSRole rolü Alibaba Cloud hesabınıza atanmış ve AliyunRAMReadOnlyAccess izni RAM kullanıcısına eklenmiştir.
Düğüm havuzunu ölçeklendirin
kubectl delete node komutunu çalıştırmayın. Bu işlem, ECS örneklerini serbest bırakmadan düğümleri Kubernetes'ten kaldırır ve düğüm havuzunun kapasite takibini kaybetmesine neden olur. Düğüm havuzlarını ölçeklendirmek için ACK konsolunu kullanın.
ACK konsoluna giriş yapın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Nodes > Node Pools seçeneğini seçin.
Ölçeklendirmek istediğiniz düğüm havuzunu bulun ve Actions sütunundaki Scale seçeneğine tıklayın.
-
(İsteğe bağlı) CloudOps Orchestration Service (OOS) henüz yetkilendirilmemişse, rolü oluşturmak ve yetkilendirmeyi tamamlamak için AliyunOOSLifecycleHook4CSRole bağlantısına tıklayın.
Bir RAM kullanıcısı kullanıyorsanız, AliyunRAMReadOnlyAccess iznini RAM kullanıcısına eklemeden önce Alibaba Cloud hesabının AliyunOOSLifecycleHook4CSRole rolüne sahip olduğundan emin olun.
-
Expected Nodes değerini ayarlayın ve değişikliği onaylayın. Status sütunu Updating, Scaling Out (veya Removing) ve ardından Active durumları arasında döngü yapar.
Durum Scaling Out olarak gösterildiğinde, düğüm havuzu dışa doğru ölçeklendirilmektedir. Durum tekrar Active olduğunda, dışa ölçeklendirme tamamlanmıştır.
Durum Removing olarak gösterildiğinde, düğüm havuzu içe doğru ölçeklendirilmektedir. Durum tekrar Active olduğunda, içe ölçeklendirme tamamlanmıştır.
ÖnemliKümenin güvenlik grubu
100.64.0.0/10adresine erişimi engelliyorsa, yeni düğümler kümeye katılamaz.
Dışa ölçeklendirme görevi ayrıntılarını görüntülemek için düğüm havuzunun adına tıklayın, ardından Scaling Activities sekmesini açın.
Bir düğümdeki operasyon günlüğünü görüntüleyin:
grep cloud-init /var/log/messages
Bir düğüm havuza katıldıktan sonra, /var/log/messages temizlenir ve yalnızca başarısız olan katılma girişlerini tutar. Bir düğüm katılamazsa, günlük Cluster Tasks sekmesindeki görev sonucuna senkronize edilir.
Kaçınılması gereken işlemler
Aşağıdaki işlemler beklenen sayaç mekanizmasını atlar ve uzlaştırma döngülerine veya veri kaybına neden olabilir.
| İşlem | Ne olur? | Bunun yerine ne yapılmalı? |
|---|---|---|
kubectl delete node ile düğümleri silme |
ACK, beklenen düğümleri Kubernetes düğüm listesine değil, ölçeklendirme grubundaki ECS örneklerine göre izler. ECS örneği çalışmaya devam eder, ancak düğüm Unknown olarak görünür. | Düğüm havuzunun adına tıklayın, Nodes sekmesini açın ve düğümleri kaldırın. Gerekirse Release ECS Instance seçeneğini belirleyin. Manuel olarak eklenen ve abonelik tabanlı düğümlerin ECS konsolundan serbest bırakılması gerekir. |
| ECS örneklerini doğrudan ECS konsolundan veya API'den serbest bırakma | Düğüm havuzu tutarsızlığı algılar ve beklenen sayıyı geri yüklemek için yeni ECS örnekleri oluşturur. | Düğümleri kaldırmak için ACK konsolunu kullanın. Bkz. Düğüm kaldırma. Manuel olarak eklenen düğümler ve abonelik tabanlı düğümler için ECS konsolundan manuel serbest bırakma gerekir. |
| Auto Scaling konsolunda ölçeklendirme grubundan ECS örneklerini kaldırma (beklenen sayı değiştirilmeden) | Düğüm havuzu değişikliği algılar ve yerine yeni örnekler oluşturur. | Düğüm havuzları tarafından kullanılan ölçeklendirme gruplarını Auto Scaling konsolunda doğrudan değiştirmeyin. |
| Abonelik tabanlı ECS örneklerinin süresinin dolmasına izin verme | Düğüm havuzu serbest bırakmayı algılar ve yerine yeni örnekler oluşturur. | Abonelik tabanlı örneklerin süresi dolmadan önce kaldırın veya yenileyin. Bkz. Düğüm kaldırma ve Abonelik tabanlı örneği yenileme. |
| Auto Scaling konsolunda ölçeklendirme grubunda sağlık denetimlerini etkinleştirme | Sağlık denetimi sağlıklı olmayan (örneğin askıya alınmış) bir örnek tespit ettiğinde, Auto Scaling yerine yeni bir ECS örneği oluşturur. | ACK tarafından kullanılan ölçeklendirme gruplarında sağlık denetimleri varsayılan olarak devre dışıdır. Bu ayarları değiştirmeyin. |
Ölçeklendirme hatalarını giderme
Ölçeklendirme başarısız olursa, Clusters sayfasında küme adına tıklayın, Cluster Tasks sekmesini açın ve hata ayrıntılarını görmek için View Cause seçeneğine tıklayın.
| Hata kodu | Neden | Çözüm |
|---|---|---|
RecommendEmpty.InstanceTypeNoStock |
Mevcut alanda yetersiz ECS envanteri. | Farklı alanlarda vSwitch'ler eklemek ve birden fazla örnek türü yapılandırmak için Düğüm havuzunu değiştirin. Bkz. Düğüm havuzunun ölçeklenebilirliğini kontrol etme. |
NodepoolScaleFailed.FailedJoinCluster |
Düğümler ACK kümesine katılamadı. | Düğüme giriş yapın ve hatayı kontrol etmek için grep cloud-init /var/log/messages komutunu çalıştırın. |
InvalidAccountStatus.NotEnoughBalance / InsufficientBalance.CreditPay / Account.Arrearage |
Yetersiz hesap bakiyesi. | Hesabınıza bakiye yükleyin. |
InvalidParameter.NotMatch (önyükleme modu uyumsuzluğu) |
Örnek türü, işletim sistemi görüntüsünün önyükleme modunu (BIOS) desteklemiyor. | Farklı bir örnek türü seçin. Düğüm havuzunun Overview sekmesinde işletim sistemi ve görüntü kimliğini kontrol edin. Desteklenen örnek türlerini sorgulamak için DescribeImageSupportInstanceTypes API'sini çağırın. |
QuotaExceed.ElasticQuota |
Mevcut bölgede belirtilen örnek türü için ECS kotası aşıldı. | Farklı bir örnek türü seçin, mevcut ECS örneklerini azaltın veya Kota Merkezi'nden kota artışı talep edin. |
InvalidResourceType.NotSupported |
Örnek türü mevcut alanda desteklenmiyor veya stokta yok. | Alanda desteklenen örnek türlerini bulmak için DescribeAvailableResource API'sini çağırın ve ardından düğüm havuzunu güncelleyin. |
InvalidImage.NotSupported |
İşletim sistemi görüntüsü güvenlik açısından geliştirilmiş örnekleri desteklemiyor. | Farklı bir örnek türü seçin. Desteklenen görüntüler için bkz. ECS konsolunda güvenilir bir örnek oluşturma. |
InvalidParameter.NotMatch (vTPM görüntü uyumsuzluğu) |
İşletim sistemi görüntüsü vTPM etkinleştirilmiş bir örnek türü gerektiriyor. | Farklı bir örnek türü seçin. Düğüm havuzunun Overview sekmesinde işletim sistemi ve görüntü kimliğini kontrol edin. |
QuotaExceeded.PrivateIpAddress |
Mevcut vSwitch'te kullanılabilir özel IP adresi yok. | Düğüm havuzuna daha fazla vSwitch ekleyin ve yeniden deneyin. |
InvalidParameter.KmsNotEnabled |
Key Management Service (KMS) anahtarı devre dışı. | KMS konsoluna giriş yapın ve anahtarı etkinleştirin. |
InvalidInstanceType.NotSupported |
Örnek türü, işletim sistemi görüntüsü mimarisini desteklemiyor. | Farklı bir örnek türü seçin. Uyumlu örnek türlerini sorgulamak için DescribeImageSupportInstanceTypes API'sini çağırın. ACK tarafından desteklenen görüntüler için bkz. İşletim sistemi görüntüleri. |
ApiServer.InternalError / Err.QueryEndpoints |
ACK kümesinin API sunucusuna ulaşılamıyor. | API sunucusu erişilebilirliğini kontrol edin. Bkz. ACK konsolunda küme erişim sorunlarını giderme. |
RecommendEmpty.InstanceTypeNotAuthorized |
Belirtilen örnek türünü kullanma izni yok. | Destek talebi oluşturun ve ECS izinleri talep edin. |
RecommendEmpty.DiskTypeNoStock |
Alanda yetersiz cloud disk envanteri. | Daha fazla vSwitch ekleyin veya farklı bir disk türü seçin. |
InvalidParameter.KMSKeyId.KMSUnauthorized |
KMS'e erişim izni yok. | ECS konsolunda, ECS için AliyunECSDiskEncryptDefaultRole rolünü atayın. Bkz. Şifrelemeyle ilgili izinler. |
InvalidParameter.Conflict |
Cloud disk türü örnek türüyle uyumlu değil. | Farklı bir örnek türü veya disk türü seçin. |
NotSupportSnapshotEncrypted.DiskCategory |
Sistem diski şifrelemesi için ESSD gereklidir. | Bir ESSD seçin. Disk türleri ve şifreleme için bkz. Disk türleri ve şifreleme. |
ScalingActivityInProgress |
Düğüm havuzu zaten ölçeklendiriliyor. | Yeniden denemeden önce mevcut ölçeklendirme etkinliğinin tamamlanmasını bekleyin. Düğüm havuzlarını doğrudan Auto Scaling konsolunda ölçeklendirmeyin. |
Instance.StartInstanceFailed |
ECS örnekleri başlatılamadı. | Yeniden deneyin. Sorun devam ederse, ECS ekibine destek talebi oluşturun. |
OperationDenied.NoStock |
Belirtilen alanda örnek türü stokta yok. | Farklı bir örnek türü seçin. Bkz. Düğüm havuzunun ölçeklenebilirliğini kontrol etme. |
NodepoolScaleFailed.WaitForDesiredSizeTimeout |
Dışa ölçeklendirme görevi zaman aşımına uğradı. | ACK konsolunda Clusters > küme adı > Nodes > Node Pools yolunu izleyin, düğüm havuzunun adına tıklayın ve görev ayrıntılarını görüntülemek için Scaling Activities sekmesini açın. |
ApiServer.TooManyRequests |
Kubernetes API sunucusu isteği kısıtladı. | İstek sıklığını azaltın veya daha sonra yeniden deneyin. |
NodepoolScaleFailed.PartialSuccess |
Yetersiz envanter nedeniyle bazı düğümler oluşturulamadı. | Düğüm havuzu için yapılandırılan örnek türlerini değiştirin. Bkz. Düğüm havuzunun ölçeklenebilirliğini kontrol etme. Bkz. Düğüm havuzunu düzenleme. |
Sonraki adımlar
Düğüm kaldırma — bir düğüm havuzundan düğüm kaldırma işlemleri ve önlemleri.
Düğüm havuzu bakım ve onarımı — düğüm havuzları için yükseltme, otomatik onarım ve işletim sistemi CVE yamalaması.
Düğümler ve düğüm havuzları için en iyi uygulamalar — dağıtım kümeleri, geçici örnek tabanlı düğüm havuzları ve daha fazlası.