Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
ARO memungkinkan Anda menggunakan set komputer infrastruktur untuk membuat komputer yang hanya menghosting komponen infrastruktur, seperti router default, registri kontainer terintegrasi, dan komponen untuk metrik dan pemantauan kluster. Komputer infrastruktur ini tidak dikenakan biaya OpenShift; mereka hanya dikenakan biaya Azure Compute.
Dalam penyebaran produksi, disarankan agar Anda menyebarkan tiga set mesin untuk menampung komponen infrastruktur. Masing-masing simpul ini dapat disebarkan ke zona ketersediaan yang berbeda untuk meningkatkan ketersediaan. Jenis konfigurasi ini memerlukan tiga set komputer yang berbeda; satu untuk setiap zona ketersediaan. Untuk panduan ukuran simpul infrastruktur, lihat Praktik infrastruktur yang direkomendasikan.
Beban kerja yang memenuhi syarat
Beban kerja infrastruktur berikut tidak dikenakan langganan pekerja Azure Red Hat OpenShift:
Layanan sarana kontrol Kubernetes dan Azure Red Hat OpenShift yang berjalan pada master
Router bawaan
Registri gambar kontainer terintegrasi
Pengontrol Ingress berbasis HAProxy
Kumpulan metrik kluster, atau layanan pemantauan, termasuk komponen untuk memantau proyek yang ditentukan pengguna
Pencatatan teragregasi kluster
Penting
Menjalankan beban kerja selain jenis yang ditunjuk pada simpul infrastruktur dapat memengaruhi Perjanjian Tingkat Layanan (SLA) dan stabilitas kluster.
Sebelum Anda mulai
Agar Azure VM ditambahkan ke kluster ARO untuk dikenali sebagai simpul infrastruktur (dibandingkan dengan lebih banyak simpul pekerja) dan tidak dikenakan biaya OpenShift, kriteria berikut harus dipenuhi:
Simpul harus menjadi salah satu jenis instans berikut saja:
- Standard_E4s_v5
- Standard_E8s_v5
- Standard_E16s_v5
- Standard_E4as_v5
- Standard_E8as_v5
- Standard_E16as_v5
Tidak boleh ada lebih dari tiga simpul. Setiap simpul tambahan dikenakan biaya OpenShift.
Simpul-simpul harus memiliki tag Azure node_role: infra
Hanya beban kerja yang ditunjuk untuk simpul infrastruktur yang diizinkan. Semua beban kerja lainnya akan menganggap simpul-simpul pekerja ini dan dengan demikian akan dikenakan biaya. Ini juga dapat membatalkan SLA dan membahayakan stabilitas kluster.
Membuat set mesin infrastruktur
Gunakan templat di bawah ini untuk membuat definisi manifes untuk set komputer infrastruktur Anda.
Ganti semua bidang di antara "<>" dengan nilai spesifik Anda.
Misalnya, ganti
location: <REGION>
denganlocation: westus2
Untuk bantuan mengisi nilai yang diperlukan, lihat Perintah dan nilai.
Buat set mesin dengan perintah berikut:
oc create -f <machine-set-filename.yaml>
Untuk memverifikasi pembuatan set komputer, jalankan perintah berikut:
oc get machineset -n openshift-machine-api
Output perintah verifikasi akan terlihat mirip dengan di bawah ini:
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
Templat definisi manifes
Gunakan templat berikut dalam prosedur di atas untuk membuat definisi manifes untuk set komputer infrastruktur Anda:
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
Perintah dan nilai
Di bawah ini adalah beberapa perintah/nilai umum yang digunakan saat membuat dan menjalankan templat.
Mencantumkan semua set mesin:
oc get machineset -n openshift-machine-api
Dapatkan detail untuk set komputer tertentu:
oc get machineset <machineset_name> -n openshift-machine-api -o yaml
Grup sumber daya kluster:
oc get infrastructure cluster -o jsonpath='{.status.platformStatus.azure.resourceGroupName}'
Grup sumber daya jaringan:
oc get infrastructure cluster -o jsonpath='{.status.platformStatus.azure.networkResourceGroupName}'
ID Infrastruktur:
oc get infrastructure cluster -o jsonpath='{.status.infrastructureName}'
Wilayah:
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}'
Subnet:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}'
Versi:
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}'
Memindahkan beban kerja ke simpul infrastruktur baru
Gunakan instruksi di bawah ini untuk memindahkan beban kerja infrastruktur Anda ke simpul infrastruktur yang dibuat sebelumnya.
Akses Masuk
Gunakan prosedur ini untuk pengontrol ingress tambahan yang mungkin Anda miliki di kluster.
Nota
Jika aplikasi Anda memiliki persyaratan sumber daya ingress yang sangat tinggi, lebih baik menyebarkannya ke seluruh node pekerja atau satu set mesin khusus.
Atur
nodePlacement
menjadiingresscontroller
node-role.kubernetes.io/infra
dan naikkanreplicas
agar sesuai dengan jumlah simpul infrastruktur.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"}]}}}'
Verifikasi bahwa Operator Pengendali Ingress memulai pod pada node infrastruktur yang baru.
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>
Direktori
Atur
nodePlacement
pada registri kenode-role.kubernetes.io/infra
: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"}]}}'
Verifikasi bahwa Operator Registri memulai pod pada simpul infrastruktur baru:
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>
Pemantauan klaster
Konfigurasikan tumpukan pemantauan kluster untuk menggunakan simpul infrastruktur.
Nota
Ini akan menimpa kustomisasi lain pada stack pemantauan kluster, jadi Anda mungkin ingin menggabungkan kustomisasi yang ada sebelum menjalankan perintah.
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
Verifikasi bahwa OpenShift Monitoring Operator memulai pod pada node infrastruktur baru. Perhatikan bahwa beberapa simpul (seperti
prometheus-operator
) akan tetap berada di simpul master.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>
Sistem Nama Domain (DNS)
Izinkan pod DNS berjalan pada simpul infrastruktur.
oc edit dns.operator/default
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: nodePlacement: tolerations: - operator: Exists
Pastikan bahwa pod DNS dijadwalkan ke semua simpul infra.
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