Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Platforma Microsoft Azure Red Hat OpenShift umożliwia używanie zestawów maszyn infrastruktury do tworzenia maszyn, które hostują tylko składniki infrastruktury, takie jak router domyślny, zintegrowany rejestr kontenerów oraz komponenty metryki i monitorowania klastra. Te maszyny infrastruktury nie generują kosztów platformy OpenShift; generują tylko koszty obliczeń platformy Azure.
W ramach wdrożenia produkcyjnego zaleca się wdrożenie trzech zestawów maszyn w celu przechowywania składników infrastruktury. Każdy z tych węzłów można wdrożyć w różnych strefach dostępności w celu zwiększenia dostępności. Ten typ konfiguracji wymaga trzech różnych zestawów maszyn; jeden dla każdej strefy dostępności. Aby uzyskać wskazówki dotyczące określania rozmiaru węzła infrastruktury, zobacz Zalecane rozwiązania dotyczące infrastruktury.
Kwalifikowane obciążenia
Następujące obciążenia infrastruktury nie powodują naliczania subskrypcji pracowników usługi Azure Red Hat OpenShift:
Usługi płaszczyzny sterowania Kubernetes i Azure Red Hat OpenShift działające na masterach
Router domyślny
Zintegrowany rejestr obrazów kontenera
Kontroler ruchu przychodzącego opartego na haproxy
Kolekcja metryk klastra lub usługa monitorowania, w tym składniki do monitorowania projektów zdefiniowanych przez użytkownika
Rejestrowanie zagregowane w klastrze
Ważne
Uruchamianie obciążeń innych niż wyznaczone rodzaje na węzłach infrastruktury może mieć wpływ na Umowę o poziomie świadczenia usług (SLA) i stabilność klastra.
Wymagania wstępne
Aby maszyny wirtualne platformy Azure dodane do klastra zostały rozpoznane jako węzły infrastruktury, a nie węzły robocze, a nie są naliczane opłaty za usługę OpenShift, należy spełnić następujące kryteria:
Węzły muszą być jednym z tylko następujących typów instancji:
- Standard_E4s_v5
- Standard_E8s_v5
- Standard_E16s_v5
- Standard_E4as_v5
- Standard_E8as_v5
- Standard_E16as_v5
Nie może istnieć więcej niż trzy węzły. Za dodatkowe węzły naliczana jest opłata OpenShift.
Węzły muszą mieć tag platformy Azure
node_role: infraDozwolone są tylko obciążenia przeznaczone dla węzłów infrastruktury. Wszystkie inne obciążenia uwzględniają te węzły robocze i podlegają opłatie. To oznaczenie może również unieważnić umowę SLA i naruszyć stabilność klastra.
Tworzenie zestawów maszyn infrastrukturalnych
Użyj szablonu definicji manifestu , aby utworzyć definicję manifestu dla zestawu maszyn infrastruktury.
Zastąp wszystkie pola między nawiasami kątowymi (
<>) określonymi wartościami.Na przykład zastąp
location: <REGION>location: westus2Aby uzyskać wymagane wartości szablonu definicji manifestu, zobacz Polecenia i wartości.
Utwórz zestaw maszyn za pomocą następującego polecenia:
oc create -f <machine-set-filename.yaml>Aby sprawdzić tworzenie zestawu maszyn, uruchom następujące polecenie:
oc get machineset -n openshift-machine-apiDane wyjściowe polecenia weryfikacji powinny wyglądać podobnie do następujących wartości:
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
Szablon definicji manifestu
Poniższy szablon został użyty w poprzedniej procedurze do utworzenia definicji manifestu dla zestawu maszyn infrastruktury.
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
Polecenia i wartości
Poniżej przedstawiono niektóre typowe polecenia i wartości używane do tworzenia i uruchamiania szablonu.
Wyświetl listę wszystkich zestawów maszyn:
oc get machineset -n openshift-machine-api
Uzyskaj szczegółowe informacje dotyczące określonego zestawu maszyn:
oc get machineset <machineset_name> -n openshift-machine-api -o yaml
Grupa zasobów klastra:
oc get infrastructure cluster -o jsonpath='{.status.platformStatus.azure.resourceGroupName}'
Sieciowa grupa zasobów:
oc get infrastructure cluster -o jsonpath='{.status.platformStatus.azure.networkResourceGroupName}'
Identyfikator infrastruktury:
oc get infrastructure cluster -o jsonpath='{.status.infrastructureName}'
Region:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.location}'
Numer jednostki magazynowej:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.image.sku}'
Podsieć:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}'
Wersja:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.image.version}'
Sieć wirtualna:
oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.vnet}'
Przenoszenie obciążeń do nowych węzłów infrastruktury
Skorzystaj z poniższych instrukcji, aby przenieść obciążenia infrastruktury do utworzonych wcześniej węzłów infrastruktury.
Wejście
Użyj tej procedury dla innych kontrolerów ruchu przychodzącego, które mogą istnieć w klastrze. Jeśli aplikacja ma wysokie wymagania dotyczące zasobów ruchu przychodzącego, lepszym rozwiązaniem może być rozłożenie ich między węzły robocze lub dedykowany zestaw maszyn.
Ustaw
nodePlacementnaingresscontrollernode-role.kubernetes.io/infrai zwiększreplicastak, aby dopasować liczbę węzłów infrastruktury.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"}]}}}'Sprawdź, czy Operator kontrolera Ingress uruchamia pody na nowych węzłach infrastruktury.
oc -n openshift-ingress get pods -o wideNAME 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>
Rejestr
Ustaw
nodePlacementw rejestrze nanode-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"}]}}'Sprawdź, czy operator rejestru uruchamia pody na nowych węzłach infrastruktury.
oc -n openshift-image-registry get pods -l "docker-registry" -o wideNAME 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>
Monitorowanie klastrów
Skonfiguruj stos monitorowania klastra do korzystania z węzłów infrastruktury.
Spowoduje to zastąpienie wszelkich innych dostosowań stosu monitorowania klastra, dzięki czemu można scalić istniejące dostosowania przed uruchomieniem polecenia .
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" EOFSprawdź, czy Operator Monitorowania OpenShift uruchamia pody na węzłach nowej infrastruktury. Należy pamiętać, że niektóre węzły, takie jak
prometheus-operator, pozostają w węzłach głównych.oc -n openshift-monitoring get pods -o wideNAME 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>
DNS
Zezwolić na uruchamianie zasobników DNS w węzłach infrastruktury.
oc edit dns.operator/defaultapiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: nodePlacement: tolerations: - operator: ExistsSprawdź, czy zasobniki DNS są rozmieszczone na wszystkich węzłach
infra.oc get ds/dns-default -n openshift-dnsNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE dns-default 7 7 7 7 7 kubernetes.io/os=linux 35d
Treści powiązane
Aby uaktualnić klaster, zobacz Uaktualnianie klastra usługi Azure Red Hat OpenShift.