Küme Yönetimi
GPUStack, küme tabanlı çalışan yönetimini destekler ve birden fazla küme türü sağlar. DigitalOcean gibi bir Cloud Provider aracılığıyla bir kümenin temel hazırlığını yapabilir veya şirket içinde barındırılan bir küme oluşturabilir ve Docker çalıştırma komutlarını kullanarak çalışanlar ekleyebilirsiniz. Alternatif olarak, şirket içinde barındırılan bir Kubernetes kümesindeki tüm düğümleri GPUStack çalışanları olarak kaydedebilirsiniz.
Küme Oluştur
Clusterssayfasına gidin.Add Clusterdüğmesine tıklayın.- Bir küme sağlayıcısı seçin.
Self-Hostsağlayıcısı içinDockerveKubernetesveCloud ProvideriçinDigitalOceanveSHUIHUA FUTUREvardır. - Sağlayıcıya bağlı olarak
Base ConfigurationveAdd Workeradımlarında farklı seçeneklerin ayarlanması gerekir. - Temel Yapılandırmadaki
Advancedküme ayarları,Worker Configuration YAML'yi kullanarak çalışan seçeneklerini önceden yapılandırmanıza olanak tanır.
Docker Kümesi Oluşturun
Basic ConfigurationadımındaNamealanı zorunludur,Descriptionise isteğe bağlıdır.Save'a tıklayın.Add Workeradımında,docker runkomutu aracılığıyla bir çalışan eklemeden önce bazı seçeneklere ve doğrulamalara ihtiyaç vardır.Select the GPU vendor. Test edilen sağlayıcılar arasındaNvidia,AMDveAscendbulunmaktadır. Deneysel satıcılar arasındaHygon,Moore Threads,Iluvatar,CambriconveMetaxbulunmaktadır. Bir satıcı seçtikten sonraNext'a tıklayın.Check Environment. Ortamınızın bir çalışan eklemeye hazır olduğunu doğrulamak için bir kabuk komutu sağlanır. Komut dosyasını kopyalayın ve ortamınızda çalıştırın. Komut dosyası Tamam'a döndükten sonraNext'e tıklayın.-
Specify argumentseklenecek çalışan için. Aşağıdaki argümanları sağlayın veNext'e tıklayın: -Specify the worker IPveya çalışanınAuto-detect the Worker IPolmasına izin verin. Çalışan IP'sine sunucudan erişilebildiğinden emin olun. - Çalışan konteyneri için birAdditional Volume Mountbelirtin. Montaj yolu mevcut model dosyalarını yeniden kullanmak için kullanılabilir. -
Run commandçalışan konteynerini oluşturmak ve başlatmak için. Bash betiğini kopyalayın ve ortamınızda çalıştırın.
Cluster oluşturulduktan sonra çalışan de eklenebilir.
Clusterssayfasına gidin.- Çalışan eklemek istediğiniz kümeyi bulun.
- İşlemler sütunundaki üç nokta düğmesine tıklayın, ardından
Add Worker'ı seçin. - Çalışan ekleme seçeneklerini seçin.
Select the GPU vendor'denRun command'e kadar yukarıdaki adımların aynısını takip edin.
Kubernetes Kümesini Kaydedin
Basic ConfigurationadımındaNamealanı zorunludur,Descriptionise isteğe bağlıdır.Save'a tıklayın.Select the GPU vendor. Test edilen sağlayıcılar arasındaNvidia,AMDveAscendbulunmaktadır. Deneysel satıcılar arasındaHygon,Moore Threads,Iluvatar,CambriconveMetaxbulunmaktadır.Kuberneteskümeler için birden fazla GPU satıcısı seçebilir veya yalnızca CPU kümeleri için hiçbirini seçebilirsiniz; seçilen satıcı başına bir çalışan DaemonSet oluşturulur ve her DaemonSet'innodeSelector'i, bildirim zamanında satıcının PCI varlığı etiketinden türetilir. Satıcıyı/satıcıları seçtikten sonraNext'e tıklayın.Check environment. Ortamınızın bir çalışan eklemeye hazır olduğunu doğrulamak için bir kabuk komutu sağlanır. Komut dosyasını kopyalayın ve ortamınızda çalıştırın. Komut dosyası Tamam'a döndükten sonraNext'e tıklayın.Run commandÇalışan manifestolarını uygulamak. Bash betiğini kopyalayın vekubectl'in kurulu olduğu vekubeconfig'in yapılandırıldığı bir ortamda çalıştırın.
Kubernet'ler, küme oluşturulduktan sonra kaydedilebilir.
Clusterssayfasına gidin.- Kubernetes kümesine kayıt etmek istediğiniz kümeyi bulun.
- İşlemler sütunundaki üç nokta düğmesine tıklayın, ardından
Register Cluster'ı seçin. - Kümeyi kaydetme seçeneklerini seçin.
Select the GPU vendor'denRun command'e kadar yukarıdaki adımların aynısını izleyin.
Kubernetes Küme Seçenekleri
Bir Kubernetes kümesi oluştururken veya düzenlerken, Basic Configuration adımında Name ve Description'e ek olarak aşağıdaki seçenekler mevcuttur:
Cluster Type(gerekli) — kümenin nasıl kullanılacağını seçin:Model Service— LLM çıkarımı ve API sunumu için, ör. Model API'lerini ve token tabanlı hizmetleri açığa çıkarıyor.GPU Service— isteğe bağlı GPU hesaplaması için, ör. etkileşimli geliştirme, eğitim işleri veya özel ortamlar.
Advanced ayarları aşağıdaki Kubernetes dağıtım seçeneklerini ortaya çıkarır:
Namespace— kümenin bildirimlerinin işlendiği Kubernetes ad alanı.gpustack-systemkullanmak için boş bırakın.Volume Mounts— her çalışan bölmesine ekstra hacimler monte edilir. Her binek için birVolume Name,Container PathveRead Onlybayrağı belirtin, ardından birSource Typeseçin:Host Path— düğümdePath Typeolan bir yol (örneğinDirectory,Directory (create if not exists),File,Socket,Character Device,Block Device).Persistent Volume Claim (PVC)— mevcut birPVC Name, isteğe bağlı olarak salt okunur.ConfigMap— aConfigMap Name, isteğe bağlı olarak isteğe bağlı olarak işaretlenir.
Image Credentials— GPUStack görüntülerini özel bir kayıt defterinden çekmek için kullanılan görüntü çekme sırları. Her giriş için birRegistry,UsernamevePasswordbelirtin.Node Selector— bu kümenin GPUStack iş yüklerini, etiketleri eşleşen düğümlerle sınırlar. Grafiğinglobal.nodeSelector'si olarak iletilir ve her bir bileşen buna geri döner, böylece çalışan DaemonSets'e ve operatöre ve onu onurlandıran operatör sürümünden operatörün dağıttığı bileşenlere (Kueue, Node Feature Discovery'nin kontrol düzlemi, CSI denetleyicileri) ulaşır. İki tür iş yükü bilerek dışarıda bırakıldı: Hizmet verdikleri düğümleri kapsaması gerekenler (Node Feature Discovery'nin etiketleyicisi, CSI düğüm eklentileri), çünkü bunları sınırlamak diğer tüm düğümleri etiketsiz bırakacaktır - çalışanların kendilerinin seçtiği etiketler dahil - ve sürüm ortaya çıkmadan önce çalışan ve bu nedenle sürümün kendisinin uygulayacağı bir etiketi bekleyemeyen grafiğin yükleme kancaları. Çalışan bir DaemonSet, bunların yanı sıra GPU satıcı etiketini de korur; bir düğümün her ikisiyle de eşleşmesi gerekir.Default Container Registry— bu küme için GPUStack görüntülerini çözümlemek için kullanılan varsayılan kayıt defteri. Ayarlanmadığında sunucu varsayılanına geri döner (yer tutucudocker.io).Operator Image— GPUStack Operatörü kapsayıcı görüntüsü için geçersiz kılma. Sunucu varsayılanını kullanmak için boş bırakın.GPU Service Static Access Address— yalnızcaCluster TypeGPU Serviceolduğunda gösterilir. Operatörün bu kümedeki GPU örneklerine erişmek için kullandığı statik adres (ör. LoadBalancer VIP). İsteğe bağlı.Worker Configuration YAML— aşağıdaki Çalışan Yapılandırması YAML'ye bakın.
Ad Alanları ve Pod Güvenlik Girişi
GPUStack, sahip olduğu ad alanlarını oluşturur - gpustack-system (veya Namespace ne şekilde ayarlanmışsa) ve kümeyi kullanan kuruluş başına bir gpustack-<org> - ve bunların her birini privileged düzeyinde Pod Güvenlik Girişi için etiketler:
Neden gereklidir. Pod Güvenlik Girişi Kubernetes'te yerleşiktir ve bir Pod oluşturulduğunda uygulanır*: seviyeye uymayan bir Pod, Beklemede bırakmak yerine doğrudan reddedilir. Model, önbellek hizmeti ve kıyaslama Pod'ları, baseline ve restricted seviyelerinin yasakladığı şeylere yasal olarak ihtiyaç duyar:
| Gereksinim | Neye ihtiyaç var |
|---|---|
| Ana bilgisayar ağı | RDMA, GID'sini bir NIC adresine bağlar |
| hostPort | yan kanal, ayrıştırılmış bir çift, eşini verir |
| Ana Bilgisayar IPC'si | KV önbellek arabelleklerinin CUDA-IPC paylaşımı |
| Cihaz montajları | hızlandırıcıların kendileri |
Bir ön doldurma/kod çözme dağıtımı aynı anda dördüne de ihtiyaç duyar, bu nedenle etiket olmadan ilk ve en zor şekilde başarısız olan durumdur.
Neden üç anahtar da. Küme varsayılanında warn ve audit bırakıldığında, her Pod oluşturma işlemi hala bir uyarı döndürür ve bir denetim ek açıklaması yazar. Bu, muafiyetin beklendiği bir ad alanındaki gürültüdür ve başka yerlerde önemli olan uyarıları gizler.
Patlama yarıçapı. privileged, bu ad alanlarındaki her Pod'un Pod Güvenlik Girişinden muaf olduğu anlamına gelir. Bu, bunların kendi iş yüklerinizle paylaşılanlar yerine GPUStack'in oluşturduğu ve sahip olduğu ad alanları olmasının bir nedenidir: bunlara başka hiçbir şey planlanmamalıdır. Etiketler aynı zamanda Kyverno, Gatekeeper veya OPA hakkında da hiçbir şey yapmaz; bunlar ayrı giriş web kancalarıdır ve ana bilgisayar ağını veya cihaz montajını yasaklayan politikaları bu Pod'ları yine de reddedecektir. Kümenizde bir tane çalıştırılıyorsa GPUStack ad alanlarına da orada izin verin.
Daha katı bir düzeyin neyi reddedeceğini kontrol etmek. Kendi çalışan iş yüklerinize karşı, hiçbir şeyi değiştirmeden:
API sunucusu, ad alanının mevcut Pod'larını seviyeye göre değerlendirir ve reddedilecek her biri hakkında, ihlal ettiği kontrolleri adlandırarak uyarır.
Grafik Değerleri
Bir Kubernetes kümesinin kaydedilmesi, buna GPUStack Helm grafiğini yükler ve yukarıdaki seçenekler o grafik için değerlere dönüştürülür. helmValues bu seçeneklerin kapsamadığı şeyler için aynı grafiğe doğrudan ulaşır: anahtarlar grafiğin kendisine aittir, kelimesi kelimesine alınır, dolayısıyla grafiğin veya alt grafiklerinin sunduğu her şey burada kendi seçeneğini beklemeden yapılandırılabilir.
Henüz kullanıcı arayüzünde bir alan yok, bu yüzden API aracılığıyla ayarlayın. PUT tüm kümenin yerini alır, bu nedenle önce kümeyi okuyun ve k8sOptions altına eklenen helmValues ile geri gönderin:
Değerler, kümeden türetilen değerlerin üzerine anahtar bazında ve derinlemesine birleştirilir. Helm'deki gibi listeler genişletilmek yerine tümüyle değiştirilir. Anahtarlar chart'larda belgelenmiştir: GPUStack chart'ının values.yaml dosyasında ve gpustack-operator altındakiler için GPUStack Operator chart'ında.
Bazı yollar birleştirilmek yerine reddedilir: sunucunun bu kümenin kaydından türettiği, sürümün verildiği kümeyle eşleştiğine karar veren yollar — çalışanlarının rapor ettiği yer, hangi görüntüyü çalıştırdıkları, bu görüntünün hangi kayıt defterinden geldiği, hangi Sır'ın belirteci taşıdığı. API reddettiği yolu adlandırır ve helmValues alan açıklaması geçerli listeyi taşır; bu sayfa bunu tekrarlamıyor, bu yüzden ikisi sürüklenemez.
Not
Kümenin kaydedilmesi Kubernetes'te tek başına hiçbir şeyi değiştirmez. Register Cluster'i yeniden çalıştırın ve size verdiği bildirimi uygulayın: küme içi Job, bildirimin istediklerini sürümün yüklendiği kaynakla karşılaştırır ve yalnızca bunlar farklı olduğunda yükseltilir.
Not
Sürümün dağıttığı şeyi değiştiren bir yükseltme — CPU çalışan DaemonSet'in kapatılması (helmValues'de worker.cpuEnabled=false, yalnızca CPU düğümleri kontrol düzlemini taşıyan bir küme için) veya kümenin artık seçmediği bir GPU sağlayıcısının bırakılması — kendi başına oluşturmayı durdurduğu çalışan DaemonSets'i kaldırır: kubectl apply olmaz (bildirimin atladığı bir nesneyi hiçbir zaman silmez), dolayısıyla yükseltme İşi her şeyi siler <release>-worker[-<vendor>] Helm revizyonuna sahip olsun ya da olmasın, sürümün artık oluşturmadığı DaemonSet.
Bu temizleme işleminin öncesinden kalanlar da aynı şekilde kaldırılır: geçerli bildirimi bir kez uyguladığınızda, yapılandırma o zamandan beri değişmemiş olsa bile İş onu tarar. Yalnızca İşi hiç çalıştıramayan bir kümenin manuel forma ihtiyacı vardır:
Yalnızca sürümü yükseltmek istediğinizde Register Cluster parametrelerini (GPU satıcıları, seçenekler) son uygulanan bildirimle aynı tutun; bunun dışındaki her şey yükseltme değil, yapılandırma değişikliğidir.
Uyarı
Kueue ve Node Feature Discovery zorunludur. Operatör planlama zincirini bunlara dayandırır ve başlangıçta CRD'lerini bekler. Kümenin kendisinin sağlamadığı birini kapatmak operatörün başlamasını engeller. Bu sürümün kurduğu bir bileşeni kapatmak onu kaldırır; Kueue CRD'leri kendi chart'ından gelir ve tüm Workload ile ClusterQueue nesneleri de onlarla birlikte silinir.
Kubernetes Kümesini Kaldırma
Kaldırma işlemi, kaydın yüklü olduğu sürüm(ler)in helm uninstall'i ve ayrıca Helm'in hiçbir zaman sahip olmadığı nesnelerdir. Bir hazırlık adımı, temiz bir şekilde tamamlanıp tamamlanmadığına karar verir: operatörün ağacı (Kueue, Node Feature Discovery, CSI sürücüleri, cihaz yöneticileri), özel kaynakları sonlandırıcıları taşıyan denetleyicileri dağıtır ve kaldırma işlemi bu denetleyicileri uzaklaştırır - bu nedenle önce kaynakların gitmesi gerekir, aksi takdirde içinde yaşadıkları ad alanları (gpustack-system, gpustack-default) asla Terminating'den ayrılmaz. Sırayla:
- Önce kümenin çalıştırdığı öğeleri sunucudan kaldırın; kendisine dağıtılan modelleri silin (veya taşıyın), ardından küme kaydını silin — böylece sunucu, kaybolmak üzere olan çalışanlara yönelik planlamayı durdurur.
-
Denetleyicileri hala çalışırkenözel kaynakları silin ve temizlenmelerini bekleyin. Tahmin etmek yerine bu kümenin sürümlerinin neler içerdiğini keşfedin:
Listelenen her CRD için tüm nesnelerini silin ve hiçbiri kalmayana kadar bekleyin:
-
Sürümleri kaldırın. Ana olan
gpustack; beşgpustack-*uygulama sürümü, grafik nesnelerini benimsemeden önce kayıtlı kümelerde mevcuttur ve mevcut olmayan bir sürümdekihelm uninstallbir hatadır, bu nedenle önce şunu kontrol edin:Buradan
--waitgeçmeyin.--waitile kaldırma, Node Feature Discovery silme sonrası prune hook'e ulaşır, kancanınnode-feature-discovery-pruneServiceAccount ve ClusterRole'unu oluşturur ve ardından silme beklemesinde bloke eder - bekleme--timeout'den daha uzun yaşar (helm --debugile doğrulanmıştır:waiting for resources to be deleted count=1'de oturur) zaman aşımını geçen dakikalar boyunca ve yeni oluşturulan ServiceAccount hala oradadır). Ondan kaçmak için Helm'i öldürmek, kuru erik RBAC'ı sahipsiz bırakır; bu nedenle, 4. adımın bu nesneleri elle kaldırmasının nedeni kancadır.--waitolmadan, kaldırma işlemi hemen geri döner, geri kalanlarla birlikte kanca kaynakları da temizlenir ve nesneler aynı şekilde gider — 4. adım, Helm'in asla sahip olmadığı başıboş olanları ortadan kaldırır. -
helm uninstall'in kaldırmadığını kaldırın. Helm, CRD'leri asla silmez ve operatör, hiçbir sürümün sahip olmadığı üç tür küme kapsamlı nesneyi daha kaydeder:- Operatörün kendi CRD'leri —
devices,instancesveinstancetypes,worker.gpustack.aialtında. Operatör bunları grafik yerine başlangıçta oluşturur, dolayısıylameta.helm.sh/release-nameek açıklaması taşımazlar ve 2. adımın keşif sorgusu bunları listelemez.instancetypenesnesigpustack.ai/controlledsonlandırıcıyla hayatta kalır; CRD'leri silmeden önce veya silerken onu çıkarın (aşağıya bakın), aksi halde CRD silinmiş halde kalır ve grubun API'si asla kaybolmaz. - Operatörün kabul web kancaları —
gpustack-worker-mutation(Değişme) vegpustack-worker-validation(Doğrulama). Operatörün Hizmetine iletirler ve kapatılamazlar, dolayısıyla silinene kadar birworker.gpustack.ainesnesine yapılan her yazma (aşağıdaki sonlandırıcı şeridi dahil)service "gpustack-operator-worker" not foundile reddedilir. - Operatörün APIServices —
v1.gpustack.aivev1.worker.gpustack.ai, aynı şekilde operatörün Hizmeti tarafından desteklenir. Bir ad alanı, bu gruplara ilişkin raporlarıstale GroupVersion discoverysilinene kadar, bu gruplar kaldırılıncaya kadar siliyor ve bu işlem hiçbir zaman bitmiyor.
Node Feature Discovery erik RBAC'ı da
helm uninstall'den daha uzun süre yaşayabilir —ClusterRole/node-feature-discovery-pruneve onun bağlayıcısı, silme sonrası erik kancasının kaynaklarıdır (yukarıdaki--waitnotuna bakın), Miğfer kancanın ortasında öldürüldüğünde sahipsiz kalır. Daha sonraki bir kayıt, bunları benimsemek yerine yüklemeyi reddeder, bu nedenle bunları geri kalanıyla birlikte kaldırın:Sonra küme kapsamlı önyükleme RBAC'si, ardından ad alanları.
gpustack-systemaynı zamanda ConfigMap, ServiceAccount ve kayıt belirteci Secret'ı da içerir; ad alanının silinmesi bunları da beraberinde getirir: - Operatörün kendi CRD'leri —
-
(İsteğe bağlı) Düğümlerde kalan verileri temizleyin. Çalışan Pod'ları ana bilgisayardaki
/var/lib/gpustackdizinini bağlar; yukarıdaki adımlar indirilen model ağırlıklarını ve önbellekleri tutan bu dizine dokunmaz. Veriler yeniden kuruluma engel değildir: aynı düğümlerde yeniden kaydedilen küme dizini tekrar kullanır ve mevcut dosyaları yeniden indirmez. Yalnızca alan başka amaçla gerekiyorsa kaldırın:
kubectl get all -n gpustack-system (NotFound olmalıdır), kubectl get clusterrolebinding | grep gpustack, kubectl get ds -A | grep -E 'gpustack|csi' ve — yalnızca 4. adımın kaldırdığı nesneler için — kubectl get apiservice,mutatingwebhookconfiguration,validatingwebhookconfiguration 2>/dev/null | grep gpustack ve kubectl get crd | grep -E 'gpustack|worker\.gpustack' (her ikisi de hiçbir şey yazdırmamalıdır) ile doğrulayın.
Bir ad alanı zaten Terminating'de takılı kalmışsa, nesneleri hâlâ denetleyicileri gitmiş olan sonlandırıcıları tutar. Bunları bulun ve sonlandırıcıları elle sıyırın; yalnızca çıkardığınız kümede güvenlidir. Önce kabul web kancalarını silin (adım 4) veya yamanın kendisi, Hizmeti artık mevcut olmayan bir web kancası tarafından ele geçirilir:
Aynı şerit, küme kapsamındaki artıklar için de geçerlidir — gpustack.ai/controlled sonlandırıcıyı tutan bir instancetype.worker.gpustack.ai nesnesi, CRD'sini (ve onunla birlikte tüm worker.gpustack.ai grubunu) silme işleminde tutar: kubectl patch instancetypes.worker.gpustack.ai <name> -p '{"metadata":{"finalizers":null}}' --type=merge.
DigitalOcean Kümesi Oluşturma
Basic ConfigurationadımındaNamealanı zorunlu,Descriptionise isteğe bağlıdır. DigitalOcean API ile iletişim kurmak için bir Bulut Kimlik Bilgisi oluşturun veya seçin. GPU Damlacıklarını destekleyen bir Bölge seçin. Ayrıca yeni oluşturulan DigitalOcean Damlacıklarından erişilebilecekGPUStack Server URL'i de yapılandırmanız gerekir.Next'a tıklayın.- Bir veya daha fazla ekleme
Worker Pools. Her havuz içinName,Instance Type,OS Image,Replicas,Batch Size,LabelsveVolumesbelirtilebilir. - Çalışan havuzları yapılandırıldıktan sonra
Saveseçeneğine tıklayın.
Küme oluşturulduktan sonra ilave çalışan havuzları eklenebilir.
Clusterssayfasına gidin.- Çalışan havuzuna eklemek istediğiniz
DigitalOceankümesini bulun. - İşlemler sütunundaki üç nokta düğmesini tıklayın, ardından
Add Worker Pool'ı seçin - Yukarıdaki 3. Adımdaki seçeneklerle yeni çalışan havuzu ekleniyor.
SHUIHUA GELECEK Kümesini Oluşturmak
Basic ConfigurationadımındaNamealanı zorunludur veDescriptionisteğe bağlıdır. Shuihua API ile iletişim kurmak için bir Bulut Kimlik Bilgisi oluşturun veya seçin. Shuihua'nın bölgesi yok, dolayısıyla seçilecek bölge yok. Ayrıca yeni oluşturulan bulut sunucularından erişilebilecekGPUStack Server URL'yi de yapılandırmanız gerekir.- Bu sağlayıcı için
Default Container Registryzorunludur. Shuihua örnekleri Docker Hub'a erişemediğinden Docker Hub'a çözümlenen kayıt adresleri reddedilir. Alanquay.ioveswr.cn-south-1.myhuaweicloud.comönerir; kendi Harbor'ınız veya aynanız gibi erişilebilir başka bir kayıt da kullanılabilir. Next'a tıklayın.- Bir veya daha fazla ekleme
Worker Pools. Her havuz içinName,Instance Type,OS Image,Replicas,Batch SizeveLabelsbelirtilebilir.Instance Type, GPU modeli, saatlik fiyatı ve kalan stokuyla birlikte listelenen bir Shuihua spesifikasyon şablonudur; tükenen bir şablon seçilemez. Birimler sunulmuyor — Shuihua'nın blok depolama API'si yok. - Çalışan havuzları yapılandırıldıktan sonra
Saveseçeneğine tıklayın.
Küme oluşturulduktan sonra DigitalOcean kümesinde olduğu gibi ek çalışan havuzları eklenebilir.
Shuihua örnekleri, yalnızca 22 ve 80 numaralı bağlantı noktalarının eşlendiği NAT'ın arkasında yer alır; bu nedenle küme, varsayılan olarak tunnel proxy modunu kullanır ve çalışanları, sunucunun WebSocket tüneli aracılığıyla çıkarım sunar. Listelenen IP'leri, örneğin özel adresidir; Gerçekten ulaşılabilir olan uç noktayı elde etmek için çalışan üzerinde View SSH Access kullanın. Tam açıklama için Shuihua Kullanarak GPU Kümesi Ekleme konusuna bakın.
Çalışan Havuzlarının İşletilmesi
Bulut sağlayıcı kümeleri için çalışan havuzlarını Clusters sayfasından yönetebilirsiniz:
Clusterssayfasına gidin.- Yönetmek istediğiniz bulut sağlayıcı kümesini bulun ve çalışan havuzlarını görüntüleyecek şekilde genişletin.
- Bir çalışanın kopya sayısını düzenlemek için bunu doğrudan çalışan sütununda değiştirin.
- Çalışan havuzunu düzenlemek için
Editdüğmesine tıklayın veName,Replica,Batch SizeveLabels'yi gerektiği gibi güncelleyin. - Bir çalışan havuzunu silmek için, çalışan havuzunun işlemler sütunundaki üç nokta düğmesini tıklayın ve ardından
Deleteseçeneğini seçin.
Kümeyi Güncelle
Clusterssayfasına gidin.- Düzenlemek istediğiniz kümeyi bulun.
Editdüğmesine tıklayın.Name,DescriptionveWorker Configuration YAML'yi gerektiği gibi güncelleyin.Savedüğmesine tıklayın.
Kümeyi Sil
Clusterssayfasına gidin.- Silmek istediğiniz kümeyi bulun.
- İşlemler sütunundaki üç nokta düğmesine tıklayın, ardından
Delete'ı seçin. - Silme işlemini onaylayın.
- Bir kümede halen mevcut model veya çalışanlar varsa onu silemezsiniz.
Çalışan Yapılandırması YAML
Bir küme oluştururken veya güncellerken, aşağıdaki örnek YAML'yi kullanarak çalışan yapılandırmasını önceden tanımlayabilirsiniz:
Yukarıdaki YAML, Worker Configuration YAML için şu anda desteklenen tüm seçenekleri listeler. Her seçeneğin anlamı için GPUStack config dosyası belgelerinin tamamına bakın. proxy_mode seçeneği, sunucunun çalışana nasıl ulaştığını kontrol eder - bkz. Çalışan Bağlantı Modları.
Varsayılan kapsayıcı kaydı artık burada Docker veya Kubernetes kümeler için ayarlanmamaktadır; bunun yerine Advanced ayarlarındaki küme düzeyi Default Container Registry seçeneğini kullanarak yapılandırın. Kubernetes kümeler için ad alanı da aynı şekilde Namespace seçeneği aracılığıyla yapılandırılır (bkz. Kubernetes Küme Seçenekleri).
Çalışan Bağlantı Modları
Çıkarım isteklerini bir çalışandaki model örneklerine iletmek için sunucu ve API ağ geçidinin o çalışana geri dönen bir ağ yoluna ihtiyacı vardır. Çalışan Yapılandırması YAML veya --proxy-mode bayrağı aracılığıyla ayarlanan proxy_mode çalışan seçeneği şu yolu seçer:
direct— Sunucu ve ağ geçidi doğrudan çalışanın tanıtılan adresine ve bağlantı noktasına bağlanır. En düşük ek yük, ancak çalışanın sunucudan doğrudan erişilebilir olması gerekir.worker— istekler çalışanın yerleşik HTTP ters vekilinden geçerek yerel çıkarım sürecine iletilir. Çalışana sunucudan yine erişilebilmelidir; ancak yalnızca çalışan portunun açılması yeterlidir.tunnel— çalışan sunucuya tek bir giden WebSocket bağlantısı tutar; sunucu çalışana yalnızca bu tünelden ulaşır. Çalışan sunucudan gelen bağlantıları kabul edemediğinde bu modu kullanın.
Varsayılan değer, sunucu içindeki yerleşik çalışan için direct ve bağımsız çalışanlar için worker'dir.
Tünel Modu (Güvenlik Duvarı veya NAT Arkasındaki Çalışan)
direct ve worker modlarında sunucu bağlantıyı başlatır, dolayısıyla çalışanın sunucudan erişilebilir olması gerekir. Bu her zaman mümkün değildir; örneğin çalışan bir güvenlik duvarı veya NAT arkasında, farklı bir ağda veya yalnızca giden trafiğe izin veren özel bir alt ağda oturduğunda.
tunnel modu yönü tersine çevirir: bağlantı, çalışandan sunucuya tek yönlü kurulur.
- Çalışan, sunucuya - kayıt için kullandığı aynı
--server-urluç noktaya - belirteci ile kimliği doğrulanan ve düşerse otomatik olarak yeniden bağlanan kalıcı bir giden WebSocket bağlantısı açar. - Sunucu, proxy bağlantı noktasında bir HTTP/HTTPS proxy çalıştırır (varsayılan
30079,--proxy-portaracılığıyla ayarlanır). - Ağ geçidinin tünel modu çalışanındaki bir model örneğine ulaşması gerektiğinde, isteği sunucunun proxy bağlantı noktasına yönlendirir ve bu da onu mevcut tünel üzerinden çalışana iletir.
Çalışan yalnızca arama yaptığından, çalışan tarafında herhangi bir gelen bağlantı noktasının açılmasına gerek yoktur. Yalnızca sunucunun API bağlantı noktasına ulaşması gerekir ve sunucunun proxy bağlantı noktasına ağ geçidi tarafından ulaşılabilir olması gerekir.
Etkinleştirmek için çalışanın proxy_mode'ını tunnel olarak ayarlayın: