Azure Red Hat OpenShift (ARO) kümesinde Azure Spot Sanal Makineler kullanma
Bu makalede, Azure Red Hat OpenShift kümenizi (ARO) Azure Spot Sanal Makineler kullanacak şekilde yapılandırmanıza olanak sağlayan gerekli ayrıntılar sağlanır.
Azure Spot Sanal Makineler kullanmak, kullanılmayan kapasitemizden önemli bir maliyet tasarrufuyla yararlanmanızı sağlar. Azure'ın kapasiteye geri ihtiyacı olduğunda, Azure altyapısı Azure Spot Sanal Makineler çıkaracaktır. Spot Örnekleri hakkında daha fazla bilgi için bkz. Spot Sanal Makineler.
Başlamadan önce
Başlamadan önce bir Azure Red Hat Openshift kümesinin dağıtıldığından emin olun. ARO kümesine ihtiyacınız varsa genel küme için ARO hızlı başlangıcına veya özel küme için özel küme öğreticisine bakın. Kümenizi Spot VM'leri kullanacak şekilde yapılandırma adımları hem özel hem de genel kümeler için aynıdır.
Bir ARO kümesinde her zaman Spot olmayan vm'ler olan en az üç çalışan düğümü ve üç denetim düğümü olmalıdır. ARO kümesinde spot VM tabanlı denetim düğümü olamaz.
Spot VM'ler ekleme
Azure Red Hat Openshift'te makine yönetimi MachineSet kullanılarak gerçekleştirilir. MachineSet kaynakları makine gruplarıdır. MachineSet'ler, ReplicaSet'ler podlara olduğu gibi makinelere yöneliktir. Daha fazla makineye ihtiyacınız varsa veya bunların ölçeğini azaltmanız gerekiyorsa, işlem gereksinimlerinizi karşılamak için makine kümesindeki Çoğaltmalar alanını değiştirirsiniz. Daha fazla bilgi edinmek için OpenShift MachineSet belgelerimize göz atın
Spot VM'lerin kullanımı, alanı bir MachineSet'in şablon belirtiminin içine eklenerek spotVMOptions
belirtilir.
Bu MachineSet'i oluşturmak için şunları yapacağız:
- Kümenizde çalışan bir MachineSet'in kopyasını alın.
- Değiştirilmiş bir MachineSet yapılandırması oluşturun.
- Bu MachineSet'i kümenize dağıtın
İlk olarak, CLI kullanarak OpenShift kümenize bağlanın.
oc login $apiServer -u kubeadmin -p <kubeadmin password>
Ardından kümenizdeki MachineSet'leri listeleyeceksiniz. Varsayılan kümede 3 MachineSet dağıtılır:
oc get machinesets -n openshift-machine-api
Aşağıda bu komuttan örnek bir çıkış gösterilmektedir:
NAME DESIRED CURRENT READY AVAILABLE AGE
aro-cluster-5t2dj-worker-eastus1 1 1 1 1 2d22h
aro-cluster-5t2dj-worker-eastus2 1 1 1 1 2d22h
aro-cluster-5t2dj-worker-eastus3 1 1 1 1 2d22h
Ardından, dağıtılan MachineSet'i açıklayacaksınız. Machineset'i> yukarıda listelenen MachineSet'lerden biriyle değiştirin <ve bir dosyaya çıkışını sağlayın.
oc get machineset <machineset> -n openshift-machine-api -o yaml > spotmachineset.yaml
MachineSet'te aşağıdaki parametreleri değiştirmeniz gerekir:
metadata.name
spec.selector.matchLabels.machine.openshift.io/cluster-api-machineset
spec.template.metadata.labels.machine.openshift.io/cluster-api-machineset
spec.template.spec.providerSpec.value.spotVMOptions
(Bu alanı ekleyin ve olarak ayarlayın{}
.)
Aşağıda, bağlamla ilgili bazı ek bilgiler de dahil olmak üzere mevcut bir çalışan MachineSet üzerinde yeni bir Spot MachineSet temel alırken yapmanız gereken önemli değişiklikleri vurgulayan kısaltılmış bir Spot MachineSet YAML örneği verilmiştir. (Örnek, işlevsel bir MachineSet'in tamamını temsil etmez; aşağıda birçok alan atlanmıştır.)
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
name: aro-cluster-abcd1-spot-eastus
spec:
replicas: 2
selector:
matchLabels:
machine.openshift.io/cluster-api-cluster: aro-cluster-abcd1
machine.openshift.io/cluster-api-machineset: aro-cluster-abcd1-spot-eastus
template:
metadata:
machine.openshift.io/cluster-api-machineset: aro-cluster-abcd1-spot-eastus
spec:
providerSpec:
value:
spotVMOptions: {}
taints:
- effect: NoExecute
key: spot
value: 'true'
Dosya güncelleştirildikten sonra uygulayın.
oc create -f spotmachineset.yaml
MachineSet'inizin başarıyla oluşturulduğunu doğrulamak için aşağıdaki komutu çalıştırın:
oc get machinesets -n openshift-machine-api
Aşağıda örnek bir çıkış verilmişti. Makineleriniz "Hazır" durumunda olduğunda Machineset'iniz hazır olur.
NAME DESIRED CURRENT READY AVAILABLE AGE
aro-cluster-5t2dj-worker-eastus1 1 1 1 1 3d1h
aro-cluster-5t2dj-worker-eastus2 1 1 1 1 3d1h
aro-cluster-5t2dj-worker-eastus3 1 1 1 1 3d1h
spot 1 1 1 1 2m47s
Kesilebilir iş yüklerini zamanlama
Kesintiye uğramayan düğümlerin bu düğümlerde zamanlanmasını önlemek ve üzerinde zamanlanmasını istediğiniz podlara bu taint toleranslarını eklemek için Spot düğümlerine bir renk tonu eklemeniz önerilir. MachineSet belirtimi aracılığıyla düğümleri taint yapabilirsiniz.
Örneğin, aşağıdaki YAML'yi öğesine spec.template.spec
ekleyebilirsiniz:
taints:
- effect: NoExecute
key: spot
value: 'true'
Bu, taint için spot='true'
toleransları olmadığı sürece podların sonuç düğümünde zamanlanmasını önler ve bu toleransı olmayan tüm podları çıkarır.
Renk tonlarını ve toleransları uygulama hakkında daha fazla bilgi edinmek için bkz . Düğüm renk tonlarını kullanarak pod yerleşimini denetleme.
Kota
Kullanmakta olduğunuz makine türünün kotası kısa bir süre için çok düşükse ve sonunda yeterli olması gerekse bile (örneğin, başka bir düğüm oluşturulduğunda bir düğüm silinmeye devam ediyorsa) kota sorunları nedeniyle makineler başarısız duruma geçebilir. Bu nedenle, Spot örneklerinin gerekenden biraz daha yüksek olması için kullanacağınız makine türü için kota ayarlamanız önerilir (belki 2*n olabilir; burada n, bir makine tarafından kullanılan çekirdek sayısıdır). Bu ek yük, nispeten basit olsa da el ile müdahale edilen başarısız makineleri düzeltmek zorunda kalmamaktır.
Düğüm hazırlığı
Yukarıda bağlantılı Spot VM belgelerinde açıklandığı gibi, VM'ler artık kullanılabilir olmadığında veya belirtilen maksimum fiyatla artık kullanılabilir olmadığında Serbest bırakılmış sağlama durumuna geçer.
Bu, OpenShift'te Kendisini Hazır Değil düğümleri olarak gösterir. Makineler, düğüm olarak sağlanan aşamada iyi durumda kalır.
VM'ler yeniden kullanılabilir olduğunda Hazır duruma dönerler
Sorun giderme
Düğüm Hazır Değil durumunda takıldı, temel alınan VM serbest bırakıldı
Vm serbest bırakıldıktan sonra düğüm Hazır Değil durumunda uzun süre takılı kalırsa, düğümü silmeyi veya ilgili OpenShift makine nesnesini silmeyi deneyebilirsiniz.
Spot Makine Başarısız durumda takıldı
Spot VM kullanan bir makine (OpenShift nesnesi) Başarısız durumda takılı kalırsa, el ile silmeyi deneyin. VM artık mevcut olmadığından 403 nedeniyle silinemiyorsa makineyi düzenleyin ve sonlandırıcıları kaldırın.