Megosztás a következőn keresztül:


Infrastruktúra-csomópontok üzembe helyezése Egy Azure Red Hat OpenShift (ARO) fürtben

Az ARO lehetővé teszi, hogy infrastruktúra-gépkészletek használatával olyan gépeket hozzon létre, amelyek csak infrastruktúra-összetevőket üzemeltetnek, például az alapértelmezett útválasztót, az integrált tárolóregisztrációs adatbázist, valamint a fürtmetrikák és -monitorozás összetevőit. Ezek az infrastruktúra-gépek nem járnak OpenShift-költségekkel; csak Azure Compute-költségekkel járnak.

Éles környezetben ajánlott három gépcsoportot üzembe helyezni az infrastruktúra-összetevők tárolásához. Ezek a csomópontok különböző rendelkezésre állási zónákban helyezhetők üzembe a rendelkezésre állás növelése érdekében. Az ilyen típusú konfigurációhoz három különböző gépkészletre van szükség; az egyes rendelkezésre állási zónákhoz. Az infrastruktúracsomópontok méretezési útmutatóját az ajánlott infrastruktúra-eljárások című témakörben talál.

Minősített számítási feladatok

Az alábbi infrastruktúra-számítási feladatok nem járnak Azure Red Hat OpenShift-feldolgozó-előfizetésekkel:

  • A Kubernetes és az Azure Red Hat OpenShift vezérlősík-szolgáltatásai, amelyek főkiszolgálókon futnak

  • Az alapértelmezett útválasztó

  • Az integrált tárolórendszerkép-beállításjegyzék

  • A HAProxy-alapú bejövőforgalom-vezérlő

  • A fürtmetrikagyűjtemény vagy a monitorozási szolgáltatás, beleértve a felhasználó által definiált projektek monitorozására szolgáló összetevőket is

  • Fürt által összesített naplózás

Fontos

Az infrastruktúracsomópontokon a kijelölt típustól eltérő számítási feladatok futtatása hatással lehet a szolgáltatásiszint-szerződésre (SLA) és a fürt stabilitására.

Mielőtt elkezdené

Ahhoz, hogy az ARO-fürthöz hozzáadott Azure-beli virtuális gépeket infrastruktúracsomópontokként lehessen felismerni (a több feldolgozó csomópont helyett), és ne kelljen OpenShift-díjat fizetni, a következő feltételeknek kell teljesülniük:

  • A csomópontoknak csak az alábbi példánytípusok egyikének kell lenniük:

    • Standard_E4s_v5
    • Standard_E8s_v5
    • Standard_E16s_v5
    • Standard_E4as_v5
    • Standard_E8as_v5
    • Standard_E16as_v5
  • Legfeljebb három csomópont lehet. Minden további csomópontért OpenShift-díjat számítunk fel.

  • A csomópontoknak rendelkezniük kell node_role Azure-címkével : infra

  • Csak az infrastruktúra-csomópontokhoz kijelölt számítási feladatok engedélyezettek. Minden más számítási feladat ezeket a munkavégző csomópontokat tekintené, és így a díjköteles. Ez az SLA-t is érvénytelenítheti, és veszélyeztetheti a fürt stabilitását.

Infrastruktúra-gépkészletek létrehozása

  1. Az alábbi sablonnal létrehozhatja az infrastruktúra-gépcsoport jegyzékdefinícióját.

  2. Cserélje le a "<>" közötti összes mezőt a megadott értékekre.

    Például cserélje le a következőre location: <REGION> : location: westus2

  3. A szükséges értékek kitöltéséhez a Parancsok és értékek című témakörben talál segítséget.

  4. Hozza létre a gépkészletet a következő paranccsal: oc create -f <machine-set-filename.yaml>

  5. A gépkészlet létrehozásának ellenőrzéséhez futtassa a következő parancsot: oc get machineset -n openshift-machine-api

    Az ellenőrzési parancs kimenetének az alábbihoz hasonlóan kell kinéznie:

    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
    

Jegyzékdefiníció-sablon

A fenti eljárásban a következő sablonnal hozhatja létre az infrastruktúra-gépcsoport jegyzékdefinícióját:

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

Parancsok és értékek

Az alábbiakban néhány gyakori parancsot/értéket talál a sablon létrehozásakor és végrehajtásakor.

Az összes gépcsoport listázása:

oc get machineset -n openshift-machine-api

Egy adott gépcsoport részleteinek lekérése:

oc get machineset <machineset_name> -n openshift-machine-api -o yaml

Fürterőforrás-csoport:

oc get infrastructure cluster -o jsonpath='{.status.platformStatus.azure.resourceGroupName}'

Hálózati erőforráscsoport:

oc get infrastructure cluster -o jsonpath='{.status.platformStatus.azure.networkResourceGroupName}'

Infrastruktúra azonosítója:

oc get infrastructure cluster -o jsonpath='{.status.infrastructureName}'

Régió:

oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.location}'

Termékváltozat:

oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.image.sku}'

Alhálózat:

oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}'

Verzió:

oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.image.version}'

Virtuális hálózat:

oc get machineset <machineset_name> -n openshift-machine-api -o jsonpath='{.spec.template.spec.providerSpec.value.vnet}'

Számítási feladatok áthelyezése az új infrastruktúra-csomópontokra

Az alábbi utasításokat követve helyezze át az infrastruktúra számítási feladatait a korábban létrehozott infrastruktúra-csomópontokra.

Bejövő forgalom

Használja ezt az eljárást a fürtben található további bejövőforgalom-vezérlőkhöz.

Feljegyzés

Ha az alkalmazás nagyon magas bemeneti erőforrásigényekkel rendelkezik, akkor jobb lehet a munkavégző csomópontok vagy egy dedikált gépcsoport között elosztani őket.

  1. Állítsa be a nodePlacement ingresscontroller bekapcsolt node-role.kubernetes.io/infra értéket, és növelje az replicas infrastruktúra-csomópontok számának megfelelő értéket:

    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"}]}}}'
    
  2. Ellenőrizze, hogy a bejövőforgalom-vezérlő operátora podokat indít-e az új infrastruktúracsomópontokon:

    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>
    

Beállításjegyzék

  1. Állítsa a nodePlacement beállításjegyzékben a következőre node-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"}]}}'
    
  2. Ellenőrizze, hogy a beállításjegyzék-operátor podokat indít-e az új infrastruktúra-csomópontokon:

    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>
    

Fürtmonitorozás

  1. Konfigurálja a fürtfigyelési vermet az infrastruktúra-csomópontok használatára.

    Feljegyzés

    Ez felülírja a fürtmonitorozási verem egyéb testreszabásait, ezért érdemes lehet egyesíteni a meglévő testreszabásokat a parancs futtatása előtt.

    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
    
  2. Ellenőrizze, hogy az OpenShift Monitorozási operátor podokat indít-e az új infrastruktúra-csomópontokon. Vegye figyelembe, hogy egyes csomópontok (például prometheus-operator) a fő csomópontokon maradnak.

    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>
    

DNS

  1. Engedélyezze a DNS-podok futtatását az infrastruktúra-csomópontokon.

    oc edit dns.operator/default
    
    apiVersion: operator.openshift.io/v1
    kind: DNS
    metadata:
    name: default
    spec:
    nodePlacement:
      tolerations:
      - operator: Exists
    
  2. Ellenőrizze, hogy a DNS-podok az összes infracsomópontra vannak-e ütemezve.

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