OpenShift Data Foundation auf VPC-Clustern implementieren

OpenShift Data Foundation ist eine hoch verfügbare Speicherlösung, die Sie verwenden können, um den permanenten Speicher für Ihre containerisierten Workloads in Red Hat® OpenShift® on IBM Cloud®-Clustern zu verwalten.

Für Virtualisierungs-Workloads enthält OpenShift Virtualization Service ODF, das mit lokalem NVME-Speicher vorkonfiguriert ist, wodurch eine manuelle Einrichtung überflüssig wird. Siehe Erste Schritte mit dem Virtualisierungsdienst.

Die Installation von OpenShift Data Foundation über OperatorHub wird auf IBM Cloud-Clustern nicht unterstützt. Um ODF zu installieren, führen Sie die folgenden Schritte aus, um das Cluster-Add-on bereitzustellen.

Erforderliche Mindestberechtigungen
Administrator Plattformzugriffsrolle
Manager-Servicezugriffsrolle für den Cluster in IBM Cloud Kubernetes Service.

ODF wird auf Private-Only-VPC-Clustern ab der Clusterversion 4.16.23_1546_openshift für CoreOS Worker und 4.16.21_1544_openshift für RHEL Worker unterstützt.

Voraussetzungen

  • Installieren oder aktualisieren Sie die CLI.
  • Erstellen Sie einen VPC-Cluster mit mindestens drei Workerknoten.
    • Erstellen Sie für hohe Verfügbarkeit einen Cluster mit mindestens einem Workerknoten pro Zone über drei Zonen hinweg.
    • Jeder Workerknoten muss über mindestens 16 CPUs und 64 GB RAM verfügen. Bei Cluster-Versionen vor 4.16 stellen Sie sicher, dass jedes Ihrer Subnetze über ein öffentliches Gateway verfügt.
    • Hinweis: Sie können OpenShift Data Foundation auf 3 Arbeitsknoten mit 16 CPUs und 32 GB RAM bereitstellen, aber Sie müssen Ihre Arbeitsknoten so konfigurieren, dass nur ODF-Pods ausgeführt werden. Sie können keine zusätzlichen App-Workloads oder Systempods auf Ihren ODF-Knoten ausführen, wenn Sie diese Konfiguration verwenden.

Das Verhalten von flexibleScaling verstehen

Ab OpenShift Data Foundation 4.21 wird flexibleScaling automatisch für Einzelzonen-Cluster und Bereitstellungen mit weniger als drei Verfügbarkeitszonen aktiviert. Dank der flexiblen Skalierung lassen sich Speichercluster feiner skalieren, anstatt dass Skalierungsvorgänge nur in Vielfachen von drei durchgeführt werden müssen.

Granulare Expansion
Skalieren Sie den Speicher, indem Sie einen einzelnen Worker-Knoten oder einen oder mehrere OSDs hinzufügen, anstatt die Skalierung nur in Schritten von drei Einheiten vorzunehmen.
Verhalten bei der Bereitstellung
Die flexible Skalierung wird in der Regel für intern angeschlossene Speichersysteme mit weniger als drei Ausfalldomänen oder Verfügbarkeitszonen verwendet. In Ein-Zonen-Clustern wird die Ausfalldomäne auf „Host“ festgelegt, und der angegebene Wert für „ numOfOsd “ wird direkt bereitgestellt. Wenn man beispielsweise „ numOfOsd “ auf 1 setzt, wird 1 OSD erstellt.
Statische Konfiguration
Das flexible Skalierungsverhalten wird bei der Erstbereitstellung festgelegt und kann danach nicht mehr aktiviert oder deaktiviert werden.

Für die erstmalige Bereitstellung in Einzelzonen-Clustern wird die Angabe von mindestens 3 OSDs empfohlen, um eine angemessene Ausfallsicherheit und die Übereinstimmung mit den unterstützten Konfigurationsrichtlinien zu gewährleisten.

In Clustern mit mehreren Zonen wird die Fehlerdomäne auf Zone gesetzt, und die OSDs werden in Vielfachen von drei bereitgestellt, um die Datenreplikation und Hochverfügbarkeit über die Zonen hinweg zu gewährleisten. Wenn Sie zum Beispiel numOfOsd auf 1 setzen, werden 3 OSDs erstellt, die über die Zonen verteilt sind.

Optional: Deaktivieren Sie die Standardoperatoren

Nur private Cluster: In nur privaten Clustern müssen Sie die Standardoperatoren manuell deaktivieren in openshift-marketplace mit dem folgenden Befehl, damit ODF ordnungsgemäß funktioniert.

oc patch OperatorHub cluster --type json -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'

Optional: IBM Cloud Object Storage-Serviceinstanz einrichten

Führen Sie die folgenden Schritte aus, um eine IBM Cloud Object Storage-Instanz zu erstellen, die Sie als Standardsicherungsspeicher in Ihrer ODF-Bereitstellung verwenden können. Wenn Sie IBM Cloud Object Storage nicht einrichten möchten, können Sie diesen Schritt überspringen und das Add-on installieren.

Wenn Sie IBM Cloud Object Storage als Standardsicherungsspeicher in Ihrem Speichercluster einrichten möchten, erstellen Sie eine Instanz von IBM Cloud Object Storage. Erstellen Sie anschließend eine Gruppe von HMAC-Berechtigungsnachweisen und einen geheimen Kubernetes-Schlüssel, der Ihre Object Storage-HMAC-Berechtigungsnachweise verwendet. Wenn Sie während der Installation keine IBM Cloud Object Storage-Berechtigungsnachweise angeben, wird der Standardsicherungsspeicher in Ihrem Speichercluster durch die Verwendung der PVs in Ihrem Cluster erstellt. Sie können nach der Implementierung von ODF zusätzliche Sicherungsspeicher einrichten, aber Sie können den Standardsicherungsspeicher nicht ändern.

Rufen Sie Ihren Red Hat OpenShift-Cluster auf.

  1. Erstellen Sie den Namensbereich openshift-storage in Ihrem Cluster. Die Treiberpods werden in diesem Namensbereich bereitgestellt. Kopieren Sie den folgenden YAML-Code und speichern Sie ihn unter os-namespace.yaml auf Ihrer lokalen Maschine.
    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        openshift.io/cluster-monitoring: "true"
      name: openshift-storage
    
  2. Erstellen Sie den Namensbereich openshift-storage anhand der YAML-Datei, die Sie soeben gespeichert haben.
    oc create -f os-namespace.yaml
    
  3. Überprüfen Sie, ob der Namensbereich erstellt wurde.
    oc get namespaces | grep storage
    
  4. Erstellen Sie eine IBM Cloud Object Storage-Serviceinstanz.
    ibmcloud resource service-instance-create noobaa-store cloud-object-storage standard global
    
  5. Erstellen Sie HMAC-Berechtigungsnachweise. Notieren Sie sich die Berechtigungsnachweise.
    ibmcloud resource service-key-create cos-cred-rw Writer --instance-name noobaa-store --parameters '{"HMAC": true}'
    
  6. Erstellen Sie den geheimen Kubernetes-Schlüssel mit dem Namen ibm-cloud-cos-creds im Namensbereich openshift-storage, der Ihre Object Storage-HMAC-Berechtigungsnachweise verwendet. Wenn Sie den Befehl ausführen, geben Sie die ID für Ihren Object Storage-HMAC-Zugriffsschlüssel und den geheimen Zugriffsschlüssel an. Beachten Sie hierbei, dass Ihr geheimer Schlüssel den Namen ibm-cloud-cos-creds erhalten muss.
    oc -n 'openshift-storage' create secret generic 'ibm-cloud-cos-creds' --type=Opaque --from-literal=IBM_COS_ACCESS_KEY_ID=<access_key_id> --from-literal=IBM_COS_SECRET_ACCESS_KEY=<secret_access_key>
    
  7. Überprüfen Sie, ob Ihr geheimer Schlüssel erstellt wurde.
    oc get secrets -A | grep cos
    

Optional: Einrichten der Verschlüsselung mithilfe von Hyper Protect Crypto Services oder Key Protect

Wenn Sie die Verschlüsselung einrichten wollen, erstellen Sie eine Instanz von Hyper Protect Crypto Services oder Key Protect. Erstellen Sie anschließend einen Root-Schlüssel und ein Kubernetes-Geheimnis, das Ihre Anmeldedaten für Hyper Protect Crypto Services oder Key Protect verwendet.

IBM Cloud ändert seine dedizierten Schlüsselverwaltungsservices von Hyper Protect Crypto Services zu Key Protect Dedicated.

Ihr API-Schlüssel für Hyper Protect Crypto Services oder Key Protect muss mindestens die folgenden erforderlichen Berechtigungen haben:
Reader
Reader Plus
Wenn Sie clusterweite Verschlüsselung und Speicherklassenverschlüsselung verwenden, muss Ihr API-Schlüssel über die folgenden erforderlichen Berechtigungen verfügen:
Reader
Reader Plus
Writer
  1. Erstellen Sie eine Hyper Protect Crypto Services-oder Key Protect-Serviceinstanz.

  2. Rootschlüssel erstellen.

  3. Nachdem Sie Ihre Instanz und Ihren Root-Schlüssel erstellt haben, notieren Sie sich den Instanznamen, die Instanz-ID, die Root-Schlüssel-ID und den öffentlichen Endpunkt Ihrer Hyper Protect Crypto Services- oder Key Protect-Instanz.

  4. Erstellen Sie eine Service-ID, API-Schlüssel und Zugriffsrichtlinie, die den Zugriff auf Hyper Protect Crypto Services und Red Hat OpenShift on IBM Cloud oder auf Key Protect und Red Hat OpenShift on IBM Cloudermöglicht. Notieren Sie sich die API, die Sie erstellen.

  5. Private Cluster: Erstellen Sie ein virtuelles privates Endpunktgateway, das Zugriff auf Ihre KMS-Instanz ermöglicht. Stellen Sie sicher, dass Sie mindestens 1 IP-Adresse aus jedem Teilnetz in Ihrer VPC an das VPE binden.

Rufen Sie Ihren Red Hat OpenShift-Cluster auf.

  1. Führen Sie Ihre Namensbereiche auf, um festzustellen, ob Sie über einen openshift-storage-Namensbereich verfügen. Wenn Sie keinen openshift-storage-Namensbereich haben, erstellen Sie ihn.
    oc get namespaces | grep openshift-storage
    
    1. Erstellen Sie den Namensbereich openshift-storage in Ihrem Cluster. Die Treiberpods werden in diesem Namensbereich bereitgestellt. Kopieren Sie den folgenden YAML-Code und speichern Sie ihn unter os-namespace.yaml auf Ihrer lokalen Maschine.
        apiVersion: v1
        kind: Namespace
        metadata:
          labels:
            openshift.io/cluster-monitoring: "true"
          name: openshift-storage
        ```
    1. Erstellen Sie den Namensbereich `openshift-storage` anhand der YAML-Datei, die Sie soeben gespeichert haben.
    ```sh {: pre}
        oc create -f os-namespace.yaml
        ```
    1. Überprüfen Sie, ob der Namensbereich erstellt wurde.
    ```sh {: pre}
        oc get namespaces | grep storage
        ```
    
  2. Codieren Sie sowohl die ID Ihres Rootschlüssels als auch den API-Schlüssel der Service-ID, die Sie für Base64 erstellt haben.
    printf "ROOT-KEY-ID" | base64
    
    printf "SERVICE-ID-API-KEY" | base64
    
  3. Erstellen Sie den geheimen Kubernetes-Schlüssel, der Ihre Hyper Protect Crypto Services-Berechtigungsnachweise verwendet, im Namensbereich openshift-storage.
    1. Speichern Sie den folgenden geheimen Schlüssel als YAML-Datei namens ibm-hpcs-secret.yaml.
        apiVersion: v1
        data:
          IBM_KP_CUSTOMER_ROOT_KEY: AaAAAaZAAAAy11AAAyAAkaAaQtAAk0AAA2AzY5AjYaaa67aa # your base64 encoded root key ID
          IBM_KP_SERVICE_API_KEY: AAAaaajAAAAAncmAAaaaaAAAAdAAId1AtVjBJRU1aAAaAeTh1aEw=AaaaA # your base64 encoded API
        kind: Secret
        metadata:
          name: ibm-hpcs-secret
          namespace: openshift-storage
        type: Opaque
        ```
    1. Erstellen Sie den geheimen Schlüssel in Ihrem Cluster.
    ```sh {: pre}
        oc apply -f ibm-hpcs-secret.yaml
        ```
    
  4. Überprüfen Sie, ob Ihr geheimer Schlüssel erstellt wurde.
    oc get secrets -A | grep ibm-hpcs-secret
    

Das Add-on für die OpenShift Data Foundation von der Konsole aus installieren

Führen Sie die folgenden Schritte aus, um die ODF in Ihrem Cluster zu installieren.

Bevor Sie das Add-on aktivieren, überprüfen Sie das Änderungsprotokoll auf die neuesten Versionsinformationen. Lesen Sie auch die Parameterreferenz, um die Installationsoptionen zu verstehen.

  1. Wählen Sie in der Konsole den Cluster aus, in dem Sie das Add-on installieren möchten.
  2. Klicken Sie auf der OpenShift Data Foundation-Karte auf Installieren. Das Fenster ODF installieren wird geöffnet.
  3. Geben Sie im Fenster ODF installieren die Konfigurationsparameter ein, die Sie für Ihre ODF-Bereitstellung verwenden möchten.
Abrechnungstyp
Essentials oder Advanced als Abrechnungsplan. Weitere Informationen zum Abrechnungstyp finden Sie unter Feature support by billing type.
Speicherklasse
Geben Sie die gewünschte Speicherklasse ein.
  • Wählen Sie bei VPC-Clustern, die virtuelle Maschinen verwenden, die Option Remote-Provisioning aus, um Volumes für ODF mithilfe des Block Storage for VPC dynamisch bereitzustellen.
  • Für VPC-Cluster, die Bare Metal Servers for VPC Worker Nodes verwenden, wählen Sie Lokaler Speicher. Wenn Sie die auf Ihren Worker-Knoten verfügbaren Speichergeräte automatisch erkennen und in ODF verwenden möchten, wählen Sie Erkennung lokaler Festplatten aus.
OSD-Speicherklassenname
Geben Sie den Namen der Speicherklasse ein, die Sie zum Bereitstellen von Speichervolumes verwenden möchten.
  • Für VPC-Cluster mit Bare Metal Servers for VPC Worker Nodes wählen Sie localblock.
  • Für Multizone-Cluster verwenden Sie eine Speicherklasse mit der VolumeBindingMode von WaitForFirstConsumer.
  • Eine Liste der Speicherklassen finden Sie in der Speicherklassen-Referenz.
Größe des OSD-Pods
Geben Sie die Größe des Volumes ein, das Sie bereitstellen möchten. Geben Sie mindestens 512Gi ein.
Workerknoten
Geben Sie die Namen der Worker-Knoten ein, auf denen Sie ODF bereitstellen möchten. Sie müssen mindestens 3 Workerknotennamen eingeben. Um Ihre Knotennamen zu finden, führen Sie den Befehl oc get nodes befehl in Ihrem Cluster aus. Node die Namen müssen durch Kommata getrennt sein, ohne Leerzeichen zwischen den Namen. Beispiel: 10.240.0.24,10.240.0.26,10.240.0.25. Lassen Sie dieses Feld leer, um ODF auf allen Workerknoten bereitzustellen.
Anzahl erforderlicher OSD-Platten
Geben Sie die Anzahl der OSD-Platten (Anwendungsspeicher) ein, die auf jedem Arbeitsknoten bereitgestellt werden sollen.
Clusterverschlüsselung aktivieren
Wählen Sie diese Option, wenn Sie die von den ODF-Systempods verwendeten OSD-Volumes verschlüsseln möchten (clusterweite Verschlüsselung).
Datenträgerverschlüsselung aktivieren
Wählen Sie diese Option, wenn Sie die Verschlüsselung für die Anwendungsvolumes (App-Storage) aktivieren möchten.
  • Geben Sie im Feld Instanzname einen eindeutigen Namen für Ihre Hyper Protect Crypto Services-oder Key Protect-Instanz ein.
  • Geben Sie im Feld Instanztyp den Typ der Verschlüsselungsinstanz ein.
  • Geben Sie im Feld Instanz-ID Ihre Instanz-ID für Hyper Protect Crypto Services oder Key Protect ein. Beispiel: d11a1a43-aa0a-40a3-aaa9-5aaa63147aaa.
  • Geben Sie im Feld Secret name den Namen des Secrets ein, das Sie mit Ihren Anmeldedaten für Hyper Protect Crypto Services oder Key Protect erstellt haben. Beispiel: ibm-hpcs-secret.
  • Geben Sie im Feld Base- URL den öffentlichen Endpunkt Ihrer Hyper Protect Crypto Services- oder Key Protect-Instanz ein. Beispiel: https://api.eu-gb.hs-crypto.cloud.ibm.com:8389.
  • Geben Sie im Feld Token-URL den Wert https://iam.cloud.ibm.com/identity/token ein.
  1. Nachdem Sie die zu verwendenden Parameter eingegeben haben, klicken Sie auf Installieren.

  2. Warten Sie einige Minuten, bis die Add-on-Bereitstellung abgeschlossen ist. Wenn die Bereitstellung abgeschlossen ist, lautet der Add-on-Status Normal - Addon Ready.

  3. Überprüfen Sie Ihre Installation. Rufen Sie Ihren Red Hat OpenShift-Cluster auf.

  4. Führen Sie den folgenden Befehl aus, um zu prüfen, ob die ODF-Pods ausgeführt werden.

    oc get pods -n openshift-storage
    
Nächste Schritte
Bereitstellung einer App, die ODF verwendet.

Das Add-on über die Befehlszeilenschnittstelle installieren

Sie können das Add-on mithilfe des Befehls ibmcloud oc cluster addon enable installieren.

  1. Überprüfen Sie die VPC-Parameterreferenz. Wenn Sie das Add-on aktivieren, können Sie die Standardwerte überschreiben, indem Sie für jeden Parameter, den Sie überschreiben möchten, die entsprechende Option --param "key=value" angeben.

  2. Rufen Sie Ihren Red Hat OpenShift-Cluster auf.

  3. Listen Sie die openshift-data-foundation-Add-on-Versionen auf. Notieren Sie sich die Standardversion und bestimmen Sie die Version, die Sie installieren möchten.

    ibmcloud ks cluster addon versions
    
  4. Bevor Sie das Add-on aktivieren, überprüfen Sie das Änderungsprotokoll auf die neuesten Versionsinformationen. Beachten Sie, dass das Add-on n+1-Clusterversionen unterstützt. Beispielsweise können Sie die Version 4.10.0 des Add-ons in einem OCP- oder 4.9-Cluster 4.11 bereitstellen. Wenn Sie eine andere Cluster-Version als die Standardversion verwenden, müssen Sie die Option --version angeben, wenn Sie das Add-on aktivieren.

  5. Überprüfen Sie die Add-on-Optionen.

    ibmcloud oc cluster addon options --addon openshift-data-foundation --version 4.15.0
    

    Für die beste Leistung wird empfohlen, die Option resourceProfile anzugeben, die als performance angegeben ist. Diese Option trägt dazu bei, die Leistung auf der Grundlage der Verfügbarkeit von Ressourcen während der Bereitstellung zu verbessern. Weitere Informationen zur Option „ resourceProfile “ finden Sie unter „Leistungsprofile“ in der ODF-Dokumentation zu „ Red Hat OpenShift “.

    Beispiel für Zusatzoptionen für 4.15.0

    Add-on Options
    Option                            Default Value
    osdStorageClassName               ibmc-vpc-block-metro-10iops-tier
    ocsUpgrade                        false
    billingType                       advanced
    autoDiscoverDevices               false
    hpcsBaseUrl                       <Please provide the KMS Base (public) URL>
    taintNodes                        false
    enableNFS                         false
    resourceProfile                   performance
    useCephRBDAsDefaultStorageClass   false
    clusterEncryption                 false
    hpcsEncryption                    false
    hpcsSecretName                    <Please provide the KMS secret name>
    encryptionInTransit               false
    disableNoobaaLB                   false
    osdSize                           512Gi
    numOfOsd                          1
    ignoreNoobaa                      true
    addSingleReplicaPool              false
    prepareForDisasterRecovery        false
    workerPool                        -
    odfDeploy                         true
    osdDevicePaths                    <Please provide IDs of the disks to be used for OSD pods if using local disks or standard classic cluster>
    workerNodes                       all
    hpcsServiceName                   <Please provide the KMS Service instance name>
    hpcsInstanceId                    <Please provide the KMS Service instance ID>
    hpcsTokenUrl                      <Please provide the KMS token URL>
    
  6. Aktivieren Sie das openshift-data-foundation-Add-on. Wenn Sie einen der Standardparameter überschreiben möchten, geben Sie die Option --param "key=value" für jeden Parameter an, den Sie überschreiben möchten. Wenn Sie Ihren Speichercluster nicht erstellen möchten, wenn Sie das Add-on aktivieren, können Sie das Add-on zuerst aktivieren und dann später den Speicher-Cluster erstellen, indem Sie eine CRD erstellen.

    Beispielbefehl zum Bereitstellen der Add-on-Version 4.10 mit den Standard-Einstellungen für den Speichercluster, dem performance Ressourcenprofil und aktivierter Verschlüsselung mit Hyper Protect Crypto Services.

    ibmcloud oc cluster addon enable openshift-data-foundation -c CLUSTER_NAME --version 4.15.0 --param "odfDeploy=true" --param "resourceProfile=performance" --param "hpcsTokenUrl=https://iam.cloud.ibm.com/identity/token" --param "hpcsEncryption=true" --param "hpcsBaseUrl=HPCS_INSTANCE_PUBLIC_ENDPOINT" --param "hpcsInstanceId=HPCS_INSTANCE_ID" --param "hpcsServiceName=HPCS_INSTANCE_NAME" --param "hpcsSecretName=HPCS_SECRET_NAME"
    

    Beispielbefehl nur für die Bereitstellung des ODF-Add-ons.

    ibmcloud oc cluster addon enable openshift-data-foundation -c CLUSTER_NAME --version VERSION --param "odfDeploy=false"
    

    Beispielbefehl für die Bereitstellung von ODF und die Erstellung eines Speicher-Clusters mit den Standardkonfigurationsparametern.

    ibmcloud oc cluster addon enable openshift-data-foundation -c CLUSTER_NAME --version VERSION
    

    Beispielbefehl für die Bereitstellung von ODF und die Erstellung eines Speicher-Clusters mit Überschreiben der osdSize-Parameter.

    ibmcloud oc cluster addon enable openshift-data-foundation -c CLUSTER_NAME --version VERSION --param "osdSize=500Gi"
    
  7. Vergewissern Sie sich, dass sich das Add-on im Status Ready befindet.

    oc get storagecluster -n openshift-storage
    

    Beispielausgabe:

    NAME                 AGE   PHASE   EXTERNAL   CREATED AT             VERSION
    ocs-storagecluster   53m   Ready              2023-03-10T12:20:52Z   4.11.0
    
  8. Überprüfen Sie, ob der Pod ibm-ocs-operator-controller-manager-***** im Namensbereich kube-system ausgeführt wird.

    oc get pods -A | grep ibm-ocs-operator-controller-manager
    
  9. Wenn Sie das Add-on mit der Einstellung false für odfDeploy aktiviert haben, führen Sie die Schritte zum Erstellen einer angepassten ODF-Ressource aus.

Add-on von Terraform installieren

  1. Erstellen Sie eine Terraform-Provider-Datei. Speichern Sie die Datei im Terraform-Verzeichnis. Weitere Informationen finden Sie in der Dokumentation zu Terraform IBM Cloud Provider.

    Beispiel für eine Terraform-Providerdatei

    terraform {
    required_providers {
        ibm = {
        source = "IBM-Cloud/ibm"
        version = "1.53.0"
        }
    }
    }
    provider "ibm" {
    region = "us-south"
    ibmcloud_api_key = "<api-key>"
    }
    
  2. Erstellen Sie eine Terraform-Konfigurationsdatei für das ODF-Add-on. Speichern Sie die Datei im Terraform-Verzeichnis.

    Beispielkonfigurationsdatei.

    ibmcloud_api_key = "" # Enter your API Key
    cluster = "" # Enter the Cluster ID
    region = "us-south" # Enter the region
    # For add-on deployment
    odfVersion = "4.12.0"
    # For CRD Creation and Management
    autoDiscoverDevices = "false"
    billingType = "advanced"
    clusterEncryption = "false"
    hpcsBaseUrl = null
    hpcsEncryption = "false"
    hpcsInstanceId = null
    hpcsSecretName = null
    hpcsServiceName = null
    hpcsTokenUrl = null
    ignoreNoobaa = "false"
    numOfOsd = "1"
    ocsUpgrade = "false"
    osdDevicePaths = null
    osdSize = "250Gi"
    osdStorageClassName = "ibmc-vpc-block-metro-10iops-tier"
    workerNodes = null
    
  3. Navigieren Sie in der Befehlszeilenschnittstelle zum Terraform-Verzeichnis.

    cd <terraform_directory>
    
  4. Führen Sie die Befehle zum Initialisieren und Planen Ihrer Terraform-Aktionen aus. Überprüfen Sie die Planausgabe, um sicherzustellen, dass die richtigen Aktionen ausgeführt werden.

    terraform init
    
    terraform plan
    
  5. Wenden Sie die Terraform-Dateien an, um den Cluster zu erstellen. Navigieren Sie anschließend zur IBM Cloud-Konsole, um zu überprüfen, ob der Cluster bereitgestellt wird.

    terraform apply
    

Angepasste ODF-Ressource erstellen

Wenn Sie einen ODF-Speichercluster in Ihrem VPC-Cluster mithilfe der dynamischen Bereitstellung für Ihre Speicherdatenträger erstellen möchten, können Sie eine angepasste Ressource erstellen, um Details zu Speichergeräten anzugeben.

Wenn Sie eine IBM Cloud Object Storage-Serviceinstanz als Standardsicherungsspeicher verwenden möchten, stellen Sie sicher, dass Sie die Serviceinstanz erstellt haben und dass Sie den geheimen Kubernetes-Schlüssel in Ihrem Cluster erstellt haben. Wenn Sie die ODF CRD in Ihrem Cluster erstellen, sucht die ODF nach einem Geheimnis mit der Bezeichnung ibm-cloud-cos-creds, um den Standardsicherungsspeicher einzurichten, der Ihre Object Storage-HMAC-Anmeldedaten verwendet.

  1. Erstellen Sie eine angepasste Ressourcendefinition namens OcsCluster. Speichern Sie eine der folgenden benutzerdefinierten Ressourcendefinitionsdateien auf Ihrem lokalen Rechner und bearbeiten Sie sie so, dass der Name Ihrer zuvor erstellten Speicherklasse als und monStorageClassName Parameter osdStorageClassName enthalten ist. Weitere Informationen zu den OcsCluster-Parametern finden Sie in der Parameterreferenz.

    Beispiel einer angepassten Ressourcendefinition für die Installation von ODF auf allen Workerknoten in einem 4.8-Cluster.

    apiVersion: ocs.ibm.io/v1
    kind: OcsCluster
    metadata:
      name: ocscluster-vpc # Kubernetes resource names can't contain capital letters or special characters. Enter a name for your resource that uses only lowercase letters, numbers, `-` or `.`
    spec:
      osdStorageClassName: <osdStorageClassName> # Specify an ODF storage class with a waitForFirstConsumer volume binding mode
      osdSize: <osdSize> # The OSD size is the total storage capacity of your OCS storage cluster. Use at least 250Gi OSDs for production workloads.
      numOfOsd: 1
      billingType: advanced
      ocsUpgrade: false
    

    Beispiel einer angepassten Ressourcendefinition für die Installation von ODF nur auf angegebenen Workerknoten in einem 4.8-Cluster.

    apiVersion: ocs.ibm.io/v1
    kind: OcsCluster
    metadata:
      name: ocscluster-vpc # Kubernetes resource names can't contain capital letters or special characters. Enter a name for your resource that uses only lowercase letters, numbers, `-` or `.`
    spec:
      osdStorageClassName: <osdStorageClassName> # Specify an ODF storage class with a waitForFirstConsumer volume binding mode
      osdSize: <osdSize> # The OSD size is the total storage capacity of your OCS storage cluster. Use at least 250Gi OSDs for production workloads.
      numOfOsd: 1
      billingType: advanced
      ocsUpgrade: false
      workerNodes: # Specify the private IP addresses of the worker nodes where you want to install OCS.
        - <workerNodes> # To get a list worker nodes, run `oc get nodes`.
        - <workerNodes>
        - <workerNodes>
    
  2. Speichern Sie die Datei und erstellen Sie die angepasste Ressource OcsCluster für Ihren Cluster.

    oc create -f <ocs-cluster-filename>.yaml
    
  3. Überprüfen Sie, ob Ihr OcsCluster aktiv ist.

    oc describe ocscluster ocscluster-vpc
    

    Beispielausgabe

    Name:         ocscluster-vpc
    Namespace:    
    Labels:       <none>
    Annotations:  <none>
    API Version:  ocs.ibm.io/v1
    Kind:         OcsCluster
    Metadata:
        Creation Timestamp:  2021-03-23T20:56:51Z
    Finalizers:
      finalizer.ocs.ibm.io
    Generation:  1
    Managed Fields:
      API Version:  ocs.ibm.io/v1
      Fields Type:  FieldsV1
      fieldsV1:
        f:spec:
          .:
          f:billingType:
          f:monSize:
          f:monStorageClassName:
          f:numOfOsd:
          f:ocsUpgrade:
          f:osdSize:
          f:osdStorageClassName:
      Manager:      oc
      Operation:    Update
      Time:         2021-03-23T20:56:51Z
      API Version:  ocs.ibm.io/v1
      Fields Type:  FieldsV1
      fieldsV1:
        f:metadata:
          f:finalizers:
            .:
            v:"finalizer.ocs.ibm.io":
        f:status:
          .:
          f:storageClusterStatus:
      Manager:         manager
      Operation:       Update
      Time:            2021-04-09T23:12:02Z
    Resource Version:  11372332
    Self Link:         /apis/ocs.ibm.io/v1/ocsclusters/ocscluster-vpc
    UID:               aa11a1a1-111f-aace-afac-1fa1afe1111a
    Spec:
      Billing Type:            hourly
      Mon Size:                20Gi
      Mon Storage Class Name:  ibmc-vpc-block-10iops-tier
      Num Of Osd:              1
      Ocs Upgrade:             false
      Osd Size:                250Gi
      Osd Storage Class Name:  ibmc-vpc-block-10iops-tier
    Status:
      Storage Cluster Status:  
    Events:                    <none>
    
  4. Bereitstellung einer App, die ODF verwendet.

ODF skalieren

Sie können Ihre ODF-Konfiguration skalieren, indem Sie die Einstellung numOfOsd erhöhen. Wenn Sie die Anzahl der OSDs erhöhen, enthält die ODF die Anzahl der Platten mit der gleichen osdSize-Kapazität in GB in jedem Workerknoten in Ihrem ODF-Cluster. Der gesamte Speicherplatz, der Ihren Apps zur Verfügung steht, ist jedoch gleich der osdSize multipliziert mit der numOfOsd.

OpenShift Data Foundation-Skalierung.
Anzahl der Workerknoten UrsprünglichosdSize numOfOsd Für Anwendungen verfügbare Speicherkapazität Gesamtspeicher der bereitgestellten Platten
3 250Gi 1 250Gi 750Gi
3 250Gi 2 500Gi 1500Gi
3 250Gi 3 750Gi 2250Gi
3 250Gi 4 1000Gi 3000Gi

Skalierung durch Erhöhung der numOfOsd

Rufen Sie Ihren Red Hat OpenShift-Cluster auf.

  1. Rufen Sie den Namen der angepassten OcsCluster-Ressource ab.

    oc get ocscluster
    
  2. Speichern Sie die YAML-Datei der angepassten OcsCluster-Ressource auf der lokalen Maschine unter dem Namen ocscluster.yaml.

    oc get ocscluster ocscluster-vpc -o yaml
    
  3. Erhöhen Sie den Wert des Parameters numOfOsd und wenden Sie die CRD für ocscluster erneut auf Ihren Cluster an.

    oc apply -f ocscluster.yaml
    
  4. Stellen Sie sicher, dass die zusätzlichen OSDs erstellt werden.

    oc get pv
    

Sie können die ODF erweitern, indem Sie Workerknoten zu Ihrem VPC-Cluster hinzufügen

Um die Speicherkapazität in Ihrem Speichercluster zu erhöhen, fügen Sie kompatible Workerknoten zu Ihrem Cluster hinzu.

  1. Erweitern Sie den Worker-Pool des Clusters, der für OCS verwendet wird, indem Sie Workerknoten hinzufügen. Stellen Sie sicher, dass Ihre Workerknoten die Anforderungen für die ODF erfüllen. Wenn Sie ODF auf allen Workerknoten in Ihrem Cluster implementiert haben, werden die ODF-Treiber auf den neuen Workerknoten installiert, wenn sie zu Ihrem Cluster hinzugefügt werden.

  2. Wenn Sie ODF auf einer Teilmenge der Worker-Knoten in Ihrem Cluster bereitgestellt haben, indem Sie die privaten <workerNodes> Parameter in Ihrer OcsCluster benutzerdefinierten Ressource angegeben haben, können Sie den Knotennamen der neuen Worker-Knoten zu Ihrer ODF-Bereitstellung hinzufügen, indem Sie die Definition der benutzerdefinierten Ressource bearbeiten.

    oc edit ocscluster ocscluster-vpc
    
  3. Speichern Sie die Datei der angepassten OcsCluster-Ressource, um sie erneut auf Ihren Cluster anzuwenden.

Einschränkungen

Beachten Sie die folgenden Einschränkungen für die Bereitstellung der ODF.

Kubernetes-Zeichenbegrenzung für Ressourcen-IDs: Kubernetes-PVC-Namen müssen kürzer als 63 Zeichen sein. Wenn Sie die ODF in einem VPC-Cluster mit mehreren Zonen bereitstellen und Ihren ODF-Speichercluster unter Verwendung einer Metro-retain-Speicherklasse wie ibmc-vpc-block-metro-retain-10iops-tier erstellen, schlägt die entsprechende ODF-Gerätegruppe, die unter Verwendung dieser Speicherklasse erstellt wird, fehl. Weitere Informationen finden Sie unter Erstellung der ODF-Gerätegruppe schlägt aufgrund der Kubernetes-Zeichenbegrenzung fehl.

Speicherklassenreferenz

Referenz der ODF-Speicherklasse