Çok sayıda pod'u hızlı bir şekilde oluşturmanız gerektiğinde ECS düğümlerinin ölçeklendirme hızı yetersiz kalabilir. Ekstra ECS düğümü ayırmak da kaynak israfına yol açar. Sanal düğümler, sabit bir kaynak havuzu ayırmanıza veya sürdürmenize gerek kalmadan pod'ları Elastic Container Instance (ECI) örneği olarak çalışacak şekilde zamanlamanıza olanak tanıyarak bu sorunu çözer. Bu yaklaşım esneklik sağlar ve kaynak maliyetlerini azaltır.
Neden sanal düğüm kullanmalısınız?
Sanal düğümler nedir?
ACK kümelerinde düğümler, iş yüklerini çalıştırmak için hesaplama ve depolama kaynakları sağlayan temel birimlerdir. Çoğu ACK kümesi en az bir ECS düğüm havuzuna sahiptir. Bir pod oluşturulduğunda kubelet bunu düğüm havuzundaki bir ECS düğümüne zamanlar. Bu zamanlama modu trafiği istikrarlı uygulamalar için idealdir. Ancak ECS örneklerinin oluşturulup başlatılması zaman aldığından bu mod ani trafik artışlarıyla başa çıkmakta zorlanır. Sanal düğümler, pod'ları doğrudan Alibaba Cloud Elastic Container Instance (ECI) üzerinde çalışacak şekilde zamanlamanıza olanak tanır; bu sayede düğüm yönetimi operasyonel yükü azalır ve boşta kalan düğüm kaynaklarından kaçınılarak maliyetler düşürülür.
ECS düğümlerine kıyasla sanal düğümler özel etiketler, ek açıklamalar veya taint'leri desteklemez.
Sanal düğüm, hesaplama kaynaklarını sarmalamak için ack-virtual-node bileşenini kullanır; bu sayede alttaki altyapıyı yönetmeden iş yüklerini dağıtabilirsiniz. Bileşen uygulama pod'larını otomatik olarak ECI üzerinde çalışacak şekilde zamanlar. ECI, sunucusuz bir konteyner hizmetidir ve her ECI örneği bir poda eşdeğerdir. Konteynerleştirilmiş uygulamaları dağıtmak için ECI kullandığınızda bir konteyner görüntüsü sağlarsınız ve yalnızca konteynerlerinizin tükettiği kaynaklar için ücret ödersiniz.
Avantajlar
Sanal düğümler aşağıdaki avantajları sunar.
Tamamen yönetilen: Altta yatan kaynak havuzlarını oluşturmanıza gerek yoktur, bu da işletim ve bakım iş yükünü azaltır. Sanal düğümler yönetilen kaynaklardır ve sistem yükseltmeleri veya güvenlik yaması yüklemeleri gibi Kubernetes düğümleri için rutin işletim ve bakım işlemleri gerektirmez.
-
Yüksek kapasite: Kapasite planlaması yapmadan maksimum 50.000 poda kadar ölçeklendirebilirsiniz.
ÖnemliBirçok pod hizmetlerle ilişkiliyse pod sayısını 20.000 içinde tutmanızı öneririz.
Saniyeler içinde esneklik: Kısa sürede binlerce pod oluşturabilirsiniz. Bu durum, trafik artışları sırasında pod oluşturma gecikmelerinin hizmetleri etkilemesini önler.
Güvenli yalıtım: Pod'lar ECI tabanlı olarak oluşturulur. Her konteyner örneği, hafif sandbox'lı konteyner teknolojisi kullanılarak diğerlerinden güçlü bir şekilde yalıtılır.
Maliyet etkinliği: Uygulamalar talebe göre oluşturulur ve kullandıkça öde modeliyle faturalandırılır. Boştaki kaynaklar için ücret alınmaz. Sunucusuz mimari ayrıca işletim ve bakım maliyetlerini de azaltır.
Kullanım senaryoları
Sanal düğümler aşağıdaki senaryolar için uygundur.
-
Çevrimiçi hizmetler
Çevrimiçi eğitim ve e-ticaret gibi sık sık ani trafik artışları yaşayan çevrimiçi hizmetler için sanal düğümler saniyeler içinde ölçeklendirmeyi destekler. Bu sayede trafik artışları sırasında yavaş ölçeklendirmeden kaynaklanan sistem arızaları önlenir ve boşta kalan kaynaklardan kaynaklanan israfın önüne geçilir.
-
Veri işleme
Spark ve Presto görevleri gibi birçok eşzamanlı çevrimiçi veri görevini işlemek için eşzamanlılık artık alttaki kaynakların maliyetiyle sınırlı değildir. Büyük veri işleme gereksinimlerini karşılamak amacıyla binlerce poda hızlıca ölçeklenebilirsiniz.
-
Yapay zeka görevleri
Model eğitimi ve model çıkarımı gibi sürekli çalışmayan ancak önemli hesaplama kaynakları gerektiren yapay zeka görevleri için kaynak ayırmanıza gerek yoktur. Bunun yerine kaynakları talebe göre kullanabilir ve saniye bazında ödeme yaparak yapay zeka çıkarım maliyetlerini azaltabilirsiniz. Ayrıca saniye düzeyindeki esneklik sayesinde ani iş yüklerine hızlıca yanıt verebilirsiniz.
-
CI/CD hazırlama ortamları
CI/CD sürecindeki toplu test görevleri (CI paketleme, stres testi ve simülasyon testi gibi) için sanal düğümleri kullanarak konteyner örneklerini istediğiniz zaman oluşturup serbest bırakabilirsiniz. Kaynakları talebe göre kullanırsınız ve saniye bazında ücretlendirilirsiniz. Bu yaklaşım büyük ölçekli kaynakları düşük maliyetle sunar.
-
Jobs ve CronJobs
Jobs ve CronJobs sürekli çalışmak zorunda değildir. Bir job tamamlandığında durur ve ilgili pod silinir. Sanal düğümlerle job tamamlandığında faturalandırma durur ve hesaplama kaynakları otomatik olarak serbest bırakılır. Bu sayede boşta kalan kaynaklardan kaynaklanan israf önlenir.
Sınırlamalar
Sanal düğümleri kullanmadan önce aşağıdaki sınırlamaları dikkate alın.
DaemonSet iş yükleri desteklenmez. Geçici çözüm olarak sidecar konteyner kullanın.
Bir pod'un
manifestdosyasındaHostPathveyaHostNetworkbelirtemezsiniz.-
Ayrıcalıklı (privileged) konteynerler desteklenmez. Bunun yerine belirli yetenekleri eklemek için Security Context kullanın.
NotAyrıcalıklı konteyner özelliği dahili ön izleme aşamasındadır. Bu özelliği denemek için bir destek talebi oluşturun.
NodePort Hizmetleri ve oturum benzeşimi desteklenmez.
China (Shenzhen Finance) ve China GovCloud bölgeleri desteklenmez.
Faturalandırma
Sanal düğümler ücretsizdir. Sanal düğümlerde çalışan ECI pod'ları ECI faturalandırma kurallarına göre ücretlendirilir. Daha fazla bilgi için bkz. ECI faturalandırmasına genel bakış.
ECI pod'ları kullandıkça öde faturalandırma yöntemini kullanır. Bir ECI pod'u Pending durumuna girdiğinde faturalandırma başlar ve pod Succeeded veya Failed durumuna geçtiğinde durur. Daha fazla bilgi için bkz. ECI pod yaşam döngüsü.
Sanal düğümlerin kullanımı
Hızlı başlangıç
Sanal düğümlerin nasıl kullanılacağı hakkında bilgi için bkz. Pod'ları ECI üzerinde çalışacak şekilde zamanlama.
ack-virtual-node bileşenini dağıtma
ACK kümesinde ack-virtual-node bileşenini dağıttıktan sonra sanal düğüm özelliğini etkinleştirebilirsiniz.
ACK yönetilen kümeler
Bir ACK yönetilen kümesinde ack-virtual-node bileşenini Component Management sayfasından dağıtmanız gerekir. Bileşen varsayılan olarak yönetilir ve worker düğüm kaynaklarını tüketmez.
ACK konsolunda oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Components and Add-ons seçeneğine tıklayın.
-
Add-ons sayfasında Core Components sekmesine tıklayın, ACK Virtual Node öğesini bulun ve ardından Install seçeneğine tıklayın. Kurulumu tamamlamak için ekrandaki talimatları izleyin.
Kurulum sırasında kümenin varsayılan vSwitch'i ve güvenlik grubu ilk ECI yapılandırma parametreleri olarak kullanılır. Parametreleri değiştirmek için bunları eci-profile yapılandırarak güncelleyebilirsiniz.
ACK özel kümeler
Bir ACK özel kümesinde ack-virtual-node bileşenini Marketplace sayfasından dağıtmanız gerekir. Kurulum tamamlandıktan sonra kube-system ad alanında ack-virtual-node-controller adlı bir deployment oluşturulur. Deployment bir worker düğümünde çalışır.
ACK konsolunda oturum açın. Sol gezinme bölmesinde seçeneğine tıklayın.
Marketplace sayfasında App Catalog sekmesine tıklayın. ack-virtual-node öğesini arayın ve seçin. ack-virtual-node sayfasında Deploy seçeneğine tıklayın.
-
Create panelinde bir küme ve ad alanı seçebilir ve ardından Next seçeneğine tıklayabilirsiniz.
Namespace kube-system olarak, Release Name ise ack-virtual-node olarak ayarlanır.
-
Parameters sayfasında en son Chart Version sürümünü seçin. Parameters bölümünde sanal düğüm parametrelerini yapılandırın ve OK seçeneğine tıklayın.
Parametre
İsteğe Bağlı Özellikler
Açıklama
Nasıl elde edilir
ALIYUN_CLUSTERID
Zorunlu
Küme kimliği.
Cluster Information sayfasının Basic Information sekmesinde küme kimliğini edinin.
ALIYUN_RESOURCEGROUP_ID
İsteğe bağlı
Kaynak grubu kimliği.
Bu parametreyi yapılandırmazsanız varsayılan kaynak grubu kullanılır. Bu parametreyi yapılandırmak için Resource Management konsoluna giderek hedef kaynak grubunun kimliğini edinin.
ECI_REGION
Zorunlu
Bölge kimliği.
Cluster Information sayfasının Basic Information sekmesinde Region bilgilerini edinin.
NotBölge adları ile bölge kimlikleri arasındaki ilişki hakkında daha fazla bilgi için bkz. Bölgeler ve alanlar.
ECI_VPC
İsteğe bağlı
VPC kimliği.
Cluster Information sayfasının Basic Information sekmesinde küme VPC kimliğini edinin.
ECI_VSWITCH
Zorunlu
vSwitch kimliği.
Uygulama pod'larına IP adresi atamak için kullanılan vSwitch kimliklerinin listesi. Birden çok vSwitch kimliğini virgülle (,) ayırın, örneğin
vsw-xxx1, vsw-xxx2. Düğüm havuzuyla aynı vSwitch listesini kullanmanızı öneririz.Node Pools sayfasında bir düğüm havuzuna tıklayın. Details sekmesinde Node Configurations bölümünde düğüm vSwitch kimliğini edinin.
NotvSwitch'lerin ECI tarafından desteklenen alanlarda olduğundan emin olun.
ECI_SECURITY_GROUP
Zorunlu
Güvenlik grubu kimliği.
Cluster Information sayfasının Basic Information sekmesinde güvenlik grubu kimliğini edinin.
ECI_ACCESS_KEY
Zorunlu
AccessKey kimliğiniz.
Daha fazla bilgi için bkz. AccessKey çifti edinme.
RAM kullanıcısına AliyunECIFullAccess ilkesini atayın. Daha fazla bilgi için bkz. RAM kullanıcısına izin verme.
ECI_SECRET_KEY
Zorunlu
AccessKey gizli anahtarınız.
Daha fazla bilgi için bkz. AccessKey çifti edinme.
RAM kullanıcısına AliyunECIFullAccess ilkesini atayın. Daha fazla bilgi için bkz. RAM kullanıcısına izin verme.
KUBERNETES_APISERVER_HOST
Zorunlu
API sunucusunun IP adresi.
API sunucusunun iç uç noktasının IP adresi ve bağlantı noktası. Bilgileri Cluster Information sayfasının Basic Information sekmesinden sorgulayabilirsiniz.
KUBERNETES_APISERVER_PORT
Zorunlu
API sunucusunun bağlantı noktası.
-
ack-virtual-node bileşeninin dağıtım durumunu kontrol edin.
kubectl -n kube-system get deploy ack-virtual-node-controllerBeklenen çıktı:
NAME READY UP-TO-DATE AVAILABLE AGE ack-virtual-node-controller 1/1 1 1 2m31s
Pod'ları ECI üzerinde çalışacak şekilde zamanlama
ACK, ECS ve ECI'nin hibrit dağıtım senaryolarındaki çeşitli zamanlama gereksinimlerini karşılamak için birden çok zamanlama çözümü sunar. Daha fazla bilgi için bkz. Pod'ları sanal düğüme zamanlama.
ECI pod'larının varsayılan CPU mimarisi x86 ve varsayılan işletim sistemi Linux'tur. Arm mimarisini veya Windows işletim sistemini kullanan bir ECI pod'u oluşturmak için bkz. Pod'ları Arm tabanlı sanal düğüme zamanlama veya (Davetli Ön İzleme) Pod'ları Windows sanal düğüme zamanlama.
ECI pod'larını esnek şekilde yapılandırma
Pod ek açıklamalarını kullanarak ECI özelliklerini yapılandırabilirsiniz; örneğin bir ECI pod'unun teknik özelliklerini belirtme, pod oluşturmayı hızlandırmak için görüntü önbelleğini etkinleştirme, bir ECI pod'una IPv6 adresi atama ve geçici depolama alanının boyutunu artırma gibi işlemler yapabilirsiniz. Daha fazla bilgi için bkz. ECI pod ek açıklamaları.
Belirli koşulları karşılayan ECI pod'larına gerekli ek açıklamaları dinamik olarak eklemek için bir eci-profile öğesinin ECI Effect özelliğini kullanabilirsiniz. Bu sayede pod'ların toplu orkestrasyonu mümkün olur.
Sanal düğümleri yönetme
ack-virtual-node bileşenini yükseltme
Sanal düğümlerin bazı gelişmiş özelliklerini kullanmak için ack-virtual-node bileşenini yükseltmeniz gerekebilir.
Yükseltme yaklaşık 1 dakika sürer. Yükseltme sırasında pod oluşturamazsınız ancak mevcut pod'lar etkilenmez.
ACK yönetilen kümeler
ACK konsolunda oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Components and Add-ons seçeneğine tıklayın.
Add-ons sayfasında Core Components sekmesine tıklayın, ACK Virtual Node öğesini bulun ve ardından Upgrade seçeneğine tıklayın. Yükseltmeyi tamamlamak için ekrandaki talimatları izleyin.
ACK özel kümeler
ACK konsolunda oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde seçeneğine tıklayın.
Helm listesinde ack-virtual-node öğesini bulun ve Actions sütunundaki Update seçeneğine tıklayın. Version bölümünde en son Chart sürümünü seçin.
-
Parametre yapılandırma bölümünde parametreleri güncelleyin ve OK seçeneğine tıklayın.
Görüntüyü belirli bir sürüme yükseltmek için
virtualNode.image.tagdeğerini de belirtebilirsiniz.
Sanal düğüm yapılandırmasını değiştirme
eci-profile; ACS ve ECI pod'larının ait olduğu VPC ve vSwitch'ler ile Arm sanal düğümlerin etkinleştirilip etkinleştirilmeyeceği gibi yapılandırmaları içerir. İhtiyaçınıza göre data alanındaki sabit yapılandırma öğelerini güncelleyebilirsiniz.
Sanal düğümleri silme
ack-virtual-node bileşenini kaldırdığınızda sanal düğüm otomatik olarak silinir ve kümedeki ACS ile ECI pod'ları otomatik olarak temizlenir.
Kümedeki ACS ve ECI pod'larını kontrol ederek pod'lar silindikten sonra hizmetlerinizin etkilenmediğinden emin olun.
-
ack-virtual-node bileşenini kaldırın.
ACK yönetilen kümeler: Add-ons sayfasında ack-virtual-node bileşenini kaldırın.
ACK özel kümeler: Helm sayfasında ack-virtual-node bileşenini silin.