Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ARO, varsayılan yönlendirici, tümleşik kapsayıcı kayıt defteri ve küme ölçümleri ve izleme bileşenleri gibi yalnızca altyapı bileşenlerini barındıran makineler oluşturmak için altyapı makine kümelerini kullanmanıza olanak tanır. Bu altyapı makineleri OpenShift maliyetlerine tabi değildir; yalnızca Azure İşlem maliyetlerine tabidir.
Üretim dağıtımında, altyapı bileşenlerini barındırmak için üç makine kümesi dağıtmanız önerilir. Kullanılabilirliği artırmak için bu düğümlerin her biri farklı kullanılabilirlik alanlarına dağıtılabilir. Bu tür bir yapılandırma için üç farklı makine kümesi gerekir; her kullanılabilirlik alanı için bir tane. Altyapı düğümü boyutlandırma yönergeleri için bkz . Önerilen altyapı uygulamaları.
Nitelikli iş yükleri
Aşağıdaki altyapı iş yüklerine Azure Red Hat OpenShift çalışan abonelikleri uygulanmaz:
Ana bilgisayarlarda çalışan Kubernetes ve Azure Red Hat OpenShift denetim düzlemi hizmetleri
Varsayılan yönlendirici
Entegre container imaj kayıt
HAProxy tabanlı Giriş Denetleyicisi
Kullanıcı tanımlı projeleri izlemeye yönelik bileşenler de dahil olmak üzere küme ölçümleri koleksiyonu veya izleme hizmeti
Küme ile birleştirilmiş günlük kaydı
Önemli
Altyapı düğümlerinde belirlenen tür dışındaki iş yüklerinin çalıştırılması Hizmet Düzeyi Sözleşmesi'ni (SLA) ve kümenin kararlılığını etkileyebilir.
Başlamadan önce
ARO kümesine eklenen Azure VM'lerinin altyapı düğümü olarak tanınması (daha fazla çalışan düğümü yerine) ve OpenShift ücreti alınmaması için aşağıdaki ölçütlere uyulmalıdır:
Düğümler yalnızca aşağıdaki örnek türlerinden biri olmalıdır:
- Standard_E4s_v5
- Standard_E8s_v5
- Standard_E16s_v5
- Standard_E4as_v5
- Standard_E8as_v5
- Standard_E16as_v5
En fazla üç düğüm olabilir. Tüm ek düğümlerden OpenShift ücreti alınır.
Düğümler node_role: infra Azure etiketine sahip olmalıdır
Yalnızca altyapı düğümleri için belirlenen iş yüklerine izin verilir. Diğer tüm iş yükleri bu çalışan düğümlerini değerlendirir ve dolayısıyla ücrete tabi olurlar. Bu, SLA'yı geçersiz kılabilir ve kümenin kararlılığını tehlikeye atabilir.
Altyapı makine kümeleri oluşturma
Altyapı makine kümenizin bildirim tanımını oluşturmak için aşağıdaki şablonu kullanın.
"<>" arasındaki tüm alanları kendi değerlerinizle değiştirin.
Örneğin,
location: <REGION>
yerinelocation: westus2
yazınGerekli değerlerin doldurulmasıyla ilgili yardım için bkz. Komutlar ve değerler.
Aşağıdaki komutla makine kümesini oluşturun:
oc create -f <machine-set-filename.yaml>
Makine kümesinin oluşturulmasını doğrulamak için aşağıdaki komutu çalıştırın:
oc get machineset -n openshift-machine-api
Doğrulama komutunun çıkışı aşağıdakine benzer olmalıdır:
NAME DESIRED CURRENT READY AVAILABLE AGE ok0608-vkxvw-infra-westus21 1 1 1 1 165M ok0608-vkxvw-worker-westus21 1 1 1 1 4H24M ok0608-vkxvw-worker-westus22 1 1 1 1 4H24M ok0608-vkxvw-worker-westus23 1 1 1 1 4H24M
Bildirim tanımı şablonu
Altyapı makine kümenizin bildirim tanımını oluşturmak için yukarıdaki yordamda aşağıdaki şablonu kullanın:
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
labels:
machine.openshift.io/cluster-api-cluster: <INFRASTRUCTURE_ID>
machine.openshift.io/cluster-api-machine-role: infra
machine.openshift.io/cluster-api-machine-type: infra
name: <INFRASTRUCTURE_ID>-infra-<REGION><ZONE>
namespace: openshift-machine-api
spec:
replicas: 1
selector:
matchLabels:
machine.openshift.io/cluster-api-cluster: <INFRASTRUCTURE_ID>
machine.openshift.io/cluster-api-machineset: <INFRASTRUCTURE_ID>-infra-<REGION><ZONE>
template:
metadata:
creationTimestamp: null
labels:
machine.openshift.io/cluster-api-cluster: <INFRASTRUCTURE_ID>
machine.openshift.io/cluster-api-machine-role: infra
machine.openshift.io/cluster-api-machine-type: infra
machine.openshift.io/cluster-api-machineset: <INFRASTRUCTURE_ID>-infra-<REGION><ZONE>
spec:
metadata:
creationTimestamp: null
labels:
machine.openshift.io/cluster-api-machineset: <OPTIONAL: Specify the machine set name to enable the use of availability sets. This setting only applies to new compute machines.>
node-role.kubernetes.io/infra: ''
providerSpec:
value:
apiVersion: azureproviderconfig.openshift.io/v1beta1
credentialsSecret:
name: azure-cloud-credentials
namespace: openshift-machine-api
image:
offer: aro4
publisher: azureopenshift
sku: <SKU>
version: <VERSION>
kind: AzureMachineProviderSpec
location: <REGION>
metadata:
creationTimestamp: null
natRule: null
networkResourceGroup: <NETWORK_RESOURCE_GROUP>
osDisk:
diskSizeGB: 128
managedDisk:
storageAccountType: Premium_LRS
osType: Linux
publicIP: false
resourceGroup: <CLUSTER_RESOURCE_GROUP>
tags:
node_role: infra
subnet: <SUBNET_NAME>
userDataSecret:
name: worker-user-data
vmSize: <Standard_E4s_v5, Standard_E8s_v5, Standard_E16s_v5>
vnet: <VNET_NAME>
zone: <ZONE>
taints:
- key: node-role.kubernetes.io/infra
effect: NoSchedule
Komutlar ve değerler
Aşağıda, şablon oluşturulurken ve yürütülürken kullanılan bazı yaygın komutlar/değerler yer almaktadır.
Tüm makine kümelerini listeleyin:
oc get machineset -n openshift-machine-api
Belirli bir makine kümesinin ayrıntılarını alın:
oc get machineset <machineset_name> -n openshift-machine-api -o yaml
Küme kaynak grubu:
oc get infrastructure cluster -o jsonpath='{.status.platformStatus.azure.resourceGroupName}'
Ağ kaynak grubu:
oc get infrastructure cluster -o jsonpath='{.status.platformStatus.azure.networkResourceGroupName}'
Altyapı Kimliği:
oc get infrastructure cluster -o jsonpath='{.status.infrastructureName}'
Bölge:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.location}'
SKU:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.image.sku}'
Alt ağ:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}'
Sürüm:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.image.version}'
Vnet
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.vnet}'
İş yüklerini yeni altyapı düğümlerine taşıma
Altyapı iş yüklerinizi daha önce oluşturulan altyapı düğümlerine taşımak için aşağıdaki yönergeleri kullanın.
Giriş
Kümede sahip olabileceğiniz ek giriş denetleyicileri için bu yordamı kullanın.
Uyarı
Uygulamanızın çok yüksek giriş kaynağı gereksinimleri varsa, bunları çalışan düğümlerine veya ayrılmış bir makine kümesine yaymak daha iyi olabilir.
nodePlacement
ayarınıingresscontroller
üzerindenode-role.kubernetes.io/infra
olarak ayarlayın vereplicas
değerini, altyapı düğümlerinin sayısıyla eşleşecek şekilde artırın.oc patch -n openshift-ingress-operator ingresscontroller default --type=merge \ -p='{"spec":{"replicas":3,"nodePlacement":{"nodeSelector":{"matchLabels":{"node-role.kubernetes.io/infra":""}},"tolerations":[{"effect":"NoSchedule","key":"node-role.kubernetes.io/infra","operator":"Exists"}]}}}'
Giriş Denetleyicisi İşleci'nin yeni altyapı düğümlerinde podları başlatdığını doğrulayın:
oc -n openshift-ingress get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES router-default-69f58645b7-6xkvh 1/1 Running 0 66s 10.129.6.6 cz-cluster-hsmtw-infra-aro-machinesets-eastus-3-l6dqw <none> <none> router-default-69f58645b7-vttqz 1/1 Running 0 66s 10.131.4.6 cz-cluster-hsmtw-infra-aro-machinesets-eastus-1-vr56r <none> <none> router-default-6cb5ccf9f5-xjgcp 1/1 Terminating 0 23h 10.131.0.11 cz-cluster-hsmtw-worker-eastus2-xj9qx <none> <none>
Kayıt sistemi
nodePlacement
kaydını kayıt defterindenode-role.kubernetes.io/infra
olarak ayarlayın:oc patch configs.imageregistry.operator.openshift.io/cluster --type=merge \ -p='{"spec":{"affinity":{"podAntiAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"podAffinityTerm":{"namespaces":["openshift-image-registry"],"topologyKey":"kubernetes.io/hostname"},"weight":100}]}},"logLevel":"Normal","managementState":"Managed","nodeSelector":{"node-role.kubernetes.io/infra":""},"tolerations":[{"effect":"NoSchedule","key":"node-role.kubernetes.io/infra","operator":"Exists"}]}}'
Kayıt Defteri İşleci'nin yeni altyapı düğümlerinde podları başlattığını doğrulayın.
oc -n openshift-image-registry get pods -l "docker-registry" -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES image-registry-84cbd76d5d-cfsw7 1/1 Running 0 3h46m 10.128.6.7 cz-cluster-hsmtw-infra-aro-machinesets-eastus-2-kljml <none> <none> image-registry-84cbd76d5d-p2jf9 1/1 Running 0 3h46m 10.129.6.7 cz-cluster-hsmtw-infra-aro-machinesets-eastus-3-l6dqw <none> <none>
Küme izleme
Altyapı düğümlerini kullanmak için küme izleme yığınını yapılandırın.
Uyarı
Bu, küme izleme yığınındaki diğer özelleştirmeleri geçersiz kılar, bu nedenle komutu çalıştırmadan önce mevcut özelleştirmelerinizi birleştirmek isteyebilirsiniz.
cat << EOF | oc apply -f - apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: |+ alertmanagerMain: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - effect: "NoSchedule" key: "node-role.kubernetes.io/infra" operator: "Exists" prometheusK8s: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - effect: "NoSchedule" key: "node-role.kubernetes.io/infra" operator: "Exists" prometheusOperator: {} grafana: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - effect: "NoSchedule" key: "node-role.kubernetes.io/infra" operator: "Exists" k8sPrometheusAdapter: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - effect: "NoSchedule" key: "node-role.kubernetes.io/infra" operator: "Exists" kubeStateMetrics: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - effect: "NoSchedule" key: "node-role.kubernetes.io/infra" operator: "Exists" telemeterClient: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - effect: "NoSchedule" key: "node-role.kubernetes.io/infra" operator: "Exists" openshiftStateMetrics: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - effect: "NoSchedule" key: "node-role.kubernetes.io/infra" operator: "Exists" thanosQuerier: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - effect: "NoSchedule" key: "node-role.kubernetes.io/infra" operator: "Exists" EOF
OpenShift İzleme İşleci'nin yeni altyapı düğümlerinde podları başlatdığını doğrulayın. Bazı düğümlerin (örneğin
prometheus-operator
) ana düğümlerde kalacağını unutmayın.oc -n openshift-monitoring get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES alertmanager-main-0 6/6 Running 0 2m14s 10.128.6.11 cz-cluster-hsmtw-infra-aro-machinesets-eastus-2-kljml <none> <none> alertmanager-main-1 6/6 Running 0 2m46s 10.131.4.11 cz-cluster-hsmtw-infra-aro-machinesets-eastus-1-vr56r <none> <none> cluster-monitoring-operator-5bbfd998c6-m9w62 2/2 Running 0 28h 10.128.0.23 cz-cluster-hsmtw-master-1 <none> <none> grafana-599d4b948c-btlp2 3/3 Running 0 2m48s 10.131.4.10 cz-cluster-hsmtw-infra-aro-machinesets-eastus-1-vr56r <none> <none> kube-state-metrics-574c5bfdd7-f7fjk 3/3 Running 0 2m49s 10.131.4.8 cz-cluster-hsmtw-infra-aro-machinesets-eastus-1-vr56r <none> <none>
Alan Adı Sistemi (DNS)
DNS podlarının altyapı düğümlerinde çalışmasına izin verin.
oc edit dns.operator/default
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: nodePlacement: tolerations: - operator: Exists
DNS podlarının tüm altyapı düğümlerinde zamanlandığını doğrulayın.
oc get ds/dns-default -n openshift-dns
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
dns-default 7 7 7 7 7 kubernetes.io/os=linux 35d