Installation des Plug-ins „ IBM Cloud Object Storage “

Virtuelle Private Cloud Klassische Infrastruktur

Installieren Sie das IBM Cloud Object Storage Plug-in, um vordefinierte Speicherklassen für IBM Cloud Object Storage einzurichten. Mit diesen Speicherklassen können Sie einen PVC zum Bereitstellen von IBM Cloud Object Storage für Ihre Apps erstellen.

Installation des Plug-Ins über Helm

Voraussetzungen
Das IBM Cloud Object Storage-Plug-in benötigt mindestens 0,2 vCPU und 128 MB Speicher.

Vorbereitende Schritte: Melden Sie sich bei Ihrem Konto an. If applicable, target the appropriate resource group. Legen Sie den Kontext für den Cluster fest.

Installieren Sie das Plug-in „ ibmc “ ( Helm ) und das Plug-in „ ibm-object-storage-plugin “:

  1. Stellen Sie sicher, dass bei Ihrem Workerknoten das neueste Patch für Ihre Nebenversion angewendet wird, damit Ihre Workerknoten mit den neuesten Sicherheitseinstellungen ausgeführt werden. Die Patchversion stellt außerdem sicher, dass das Rootkennwort auf dem Workerknoten erneuert wird.

    Wenn Sie Ihren Workerknoten in den letzten 90 Tagen nicht aktualisiert oder neu geladen haben, läuft Ihr Rootkennwort auf dem Workerknoten ab und die Installation des Speicher-Plug-ins schlägt möglicherweise fehl.

    1. Zeigen Sie eine Liste mit der aktuellen Patchversionen auf Ihren Workerknoten auf.
        ibmcloud ks worker ls --cluster CLUSTER_NAME_OR_ID
        ```
        Beispielausgabe
        ```sh {: screen}
        OK
        ID                                                  Public IP        Private IP     Machine Type           State    Status   Zone    Version
        kube-dal10-crb1a23b456789ac1b20b2nc1e12b345ab-w26   169.xx.xxx.xxx    10.xxx.xx.xxx   b3c.4x16.encrypted     normal   Ready    dal10   1.35_1523*
        ```
        Wenn bei Ihrem Workerknoten nicht die neueste Patchversion angewendet wird, erscheint ein Sternchen (`*`) in der Spalte **Version** der CLI-Ausgabe.
    
    2. Lesen Sie die [Kubernetes-Versionsinformationen](/docs/containers?topic=containers-cs_versions), um die neuesten Änderungen zu finden.
    
    3. Wenden Sie die neueste Patchversion an, indem Sie Ihren Workerknoten erneut laden. Befolgen Sie die Anweisungen im [Befehl „ibmcloud ks worker reload“](/docs/containers?topic=containers-kubernetes-service-cli#worker-reload-cli), um alle laufenden Pods auf Ihrem Worker-Knoten sicher neu zu planen, bevor Sie Ihren Worker-Knoten neu laden. Während des erneuten Ladens wird Ihre Workerknotenmaschine mit dem neuesten Image aktualisiert und die Daten werden gelöscht, wenn sie nicht [außerhalb des Workerknotens gespeichert sind](/docs/containers?topic=containers-storage-plan).
    
  2. Überprüfen Sie das Änderungsprotokoll und die Unterstützung für Ihre Clusterversion und Architektur.

  3. Befolgen Sie die Anweisungen zum Installieren von Version 3 des Helm-Clients auf Ihrer lokalen Maschine.

    Wenn VRF und Serviceendpunkte in Ihrem IBM Cloud-Konto aktiviert sind, können Sie das private IBM Cloud Helm-Repository verwenden, um Ihren Image-Pull-Datenverkehr im privaten Netz beizubehalten. Wenn Sie VRF oder Serviceendpunkte in Ihrem Konto nicht aktivieren können, verwenden Sie das öffentliche Helm-Repository.

  4. Fügen Sie das IBM Cloud-Helm-Repository zu Ihrem Cluster hinzu.

    helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
    
  5. Aktualisieren Sie die Helm-Repositorys, um die neueste Version aller Helm-Diagramme in diesem Repository abzurufen.

    helm repo update
    
  6. Wenn Sie das IBM Cloud Object Storage Helm-Plug-in zuvor installiert haben, entfernen Sie das ibmc-Plug-in.

    helm plugin uninstall ibmc
    
  7. Laden Sie die Helm-Charts herunter und entpacken Sie die Charts im aktuellen Verzeichnis.

    helm fetch --untar ibm-helm/ibm-object-storage-plugin
    

    Wenn in der Ausgabe der Fehler Error: failed to untar: a file or directory with the name ibm-object-storage-plugin already exists angezeigt wird, löschen Sie Ihr Verzeichnis ibm-object-storage-plugin und wiederholen Sie die Ausführung des Befehls helm fetch.

  8. Wenn Sie das Plug-in zum ersten Mal installieren, installieren Sie das Plug-in IBM Cloud Object Storage Helm ibmc. Das Plug-in ruft Ihren Clusterstandort automatisch ab und legt den API-Endpunkt für Ihre IBM Cloud Object Storage-Buckets in Ihren Speicherklassen fest. Wenn Sie Windows als Betriebssystem verwenden, überspringen Sie diesen Schritt.

    Das ibmc Plug-in wird unter Windows nicht unterstützt.

    1. Installieren Sie das Helm-Plug-in.
        helm plugin install ./ibm-object-storage-plugin/helm-ibmc
        ```
    2. Stellen Sie sicher, dass das Plug-in `ibmc` erfolgreich installiert wurde.
    ```sh {: pre}
        helm ibmc --help
        ```
        Beispielausgabe
        ```sh {: screen}
        Helm version: v3.13.1+g3547a4b
        Install or upgrade Helm charts in IBM K8S Service(IKS)
        Usage:
        helm ibmc [command]
        Available Commands:
        install           Install a Helm chart
        upgrade           Upgrade the release to a new version of the Helm chart
        Available Flags:
        -h, --help        (Optional) This text.
        -u, --update      (Optional) Update this plugin to the latest version
        Example Usage:
            Install: helm ibmc install ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin
            Upgrade: helm ibmc upgrade [RELEASE] ibm-helm/ibm-object-storage-plugin
        Note:
            1. It is always recommended to install latest version of ibm-object-storage-plugin chart.
            2. It is always recommended to have 'kubectl' client up-to-date.
        ```
    3. **Optional**: Falls in der Ausgabe der Fehler „ `Error: fork/exec /home/iksadmin/.helm/plugins/helm-ibmc/ibmc.sh: permission denied` “ angezeigt wird, führen Sie den folgenden Befehl aus.
    
    ```sh {: pre}
        chmod 755 /Users/<user_name>/Library/helm/plugins/helm-ibmc/ibmc.sh
        ```
        Wiederholen Sie anschließend den Befehl `ibmc --help`.
    
        ```sh {: pre}
        helm ibmc --help
        ```
    
    
    
    
  9. Optional: Beschränken Sie den Zugriff des Plug-ins „ IBM Cloud Object Storage “ ausschließlich auf die „ Kubernetes “-Geheimnisse, die Ihre Anmeldedaten für den „ IBM Cloud Object Storage “-Dienst enthalten. Das Plug-in kann standardmäßig auf alle geheimen Kubernetes-Schlüssel in Ihrem Cluster zugreifen.

    1. Erstellen Sie Ihre IBM Cloud Object Storage-Serviceinstanz.
    2. Speichern Sie Ihre Berechtigungsnachweise für den IBM Cloud Object Storage-Service in einem geheimen Kubernetes-Schlüssel).
    3. Wechseln Sie in das Verzeichnis ibm-object-storage-plugin.
        cd ibm-object-storage-plugin
        ```
    3. Navigieren von `ibm-object-storage-plugin` aus zum Verzeichnis `templates` und listen Sie die dort verfügbaren Dateien auf.
            OS X und Linux
    
    ```sh {: pre}
        cd templates && ls
        ```
        Windows
    
        ```sh {: pre}
        chdir templates && dir
        ```
    4. Öffnen Sie die Datei `provisioner-sa.yaml` und suchen Sie nach der Clusterrollendefinition (`ibmcloud-object-storage-secret-reader`) mit dem Namen `ClusterRole`.
    5. Fügen Sie den Namen des zuvor erstellten geheimen Schlüssels zur Liste der geheimen Schlüssel hinzu, auf die das Plug-in zugreifen kann (im Abschnitt `resourceNames`).
    ```yaml {: codeblock}
        kind: ClusterRole
        apiVersion: rbac.authorization.k8s.io/v1beta1
        metadata:
         name: ibmcloud-object-storage-secret-reader
        rules:
        - apiGroups: [""]
          resources: ["secrets"]
          resourceNames: ["<secret_name1>","<secret_name2>"]
          verbs: ["get"]
        ```
    6. Speichern Sie Ihre Änderungen und navigieren Sie zu Ihrem Arbeitsverzeichnis.
    
    
    
  10. Installieren Sie ibm-object-storage-plugin in Ihrem Cluster. Wenn Sie das Plug-in installieren, werden vordefinierte Speicherklassen zu Ihrem Cluster hinzugefügt. Wenn Sie den vorherigen Schritt abgeschlossen haben, in dem Sie den Zugriff des IBM Cloud Object Storage-Plug-ins auf die geheimen Kubernetes-Schlüssel begrenzt haben, die Ihre IBM Cloud Object Storage-Serviceberechtigungsnachweise enthalten, und wenn Sie weiterhin das Verzeichnis templates als Ziel verwenden wollen, dann müssen Sie in Ihr Arbeitsverzeichnis wechseln. Um eine Obergrenze für den verfügbaren Speicherplatz des Buckets festzulegen, aktivieren Sie die Option „ --set quotaLimit=true “ ( nur für VPC-Cluster ): Um autorisierte IP-Adressen in der VPC zu aktivieren, aktivieren Sie die Option „ --set bucketAccessPolicy=true “.

Wenn Sie die Option --set quotaLimit=true während der Installation nicht festlegen, können Sie keine Kontingente für Ihre PVCs festlegen.

Beispiel helm ibmc install Befehle für Nicht-Windows-Betriebssysteme.

helm ibmc install ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin --set license=true [--set quotaLimit=true/false] [--set bucketAccessPolicy=true/false] [--set allowCrossNsSecret=true/false]

helm install-Beispielbefehl für Windows.

helm install ibm-object-storage-plugin ./ibm-object-storage-plugin --set dcname="${DC_NAME}" --set provider="${CLUSTER_PROVIDER}" --set workerOS="${WORKER_OS}" --set region="${REGION} --set platform="${PLATFORM}" --set license=true [--set bucketAccessPolicy=false]
quotaLimit
Eine Kontingentbegrenzung legt die maximale Speichermenge (in Byte) fest, die für ein Bucket verfügbar ist. Wenn Sie diese Option auf true setzen, entspricht das Kontingent für von diesen PVCs erstellte Buckets bei der Erstellung von PVCs der PVC-Größe. Der Standardwert ist true.
allowCrossNsSecret
Standardmäßig sucht das Plug-in nach dem geheimen Schlüssel für Kubernetes in anderen Namensbereichen als dem PVC-Namensbereich. Wenn Sie diese Option auf false setzen, sucht das Plug-in nur im PVC-Namensbereich nach dem geheimen Kubernetes-Schlüssel. Der Standardwert ist true.
kubeDriver
Wird auf /usr/libexec/kubernetes festgelegt.
DC_NAME
Das Rechenzentrum des Clusters. Führen Sie kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}" aus, um das Rechenzentrum abzurufen. Speichern Sie den Wert des Rechenzentrums in einer Umgebungsvariable, indem Sie SET DC_NAME=<datacenter> ausführen. Optional: Legen Sie die Umgebungsvariable in Windows PowerShell fest, indem Sie $env:DC_NAME="<datacenter>" ausführen.
CLUSTER_PROVIDER
Der Infrastrukturprovider. Um diesen Wert abzurufen, führen Sie den folgenden Befehl aus: kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}". Wenn die Ausgabe des vorherigen Schritts softlayer enthält, setzen Sie CLUSTER_PROVIDER auf den Wert "IBMC". Wenn die Ausgabe gc, ng oder g2 enthält, setzen Sie CLUSTER_PROVIDER auf den Wert "IBMC-VPC". Speichern Sie den Infrastrukturprovider in einer Umgebungsvariablen. Beispiel: SET CLUSTER_PROVIDER="IBMC-VPC".
WORKER_OS und PLATFORM
Das Betriebssystem der Workerknoten. Um diese Werte abzurufen, führen Sie den folgenden Befehl aus: kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}". Speichern Sie das Betriebssystem der Workerknoten in einer Umgebungsvariablen. Führen Sie für IBM Cloud Kubernetes Service-Cluster SET WORKER_OS="debian" und SET PLATFORM="k8s" aus.
REGION
Die Region der Workerknoten. Um diesen Wert abzurufen, führen Sie den folgenden Befehl aus: kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region'. Speichern Sie die Region der Workerknoten in einer Umgebungsvariablen, indem Sie SET REGION="< region>" ausführen.

IBM Cloud Object Storage-Plug-in aktualisieren

Sie können ein Upgrade des vorhandenen IBM Cloud Object Storage-Plug-in auf die aktuellste Version durchführen.

  1. Rufen Sie den Namen Ihres IBM Cloud Object Storage-Plug-in Helm-Release und die Version des Plug-ins in Ihrem Cluster ab.

    helm ls -A | grep object
    

    Beispielausgabe

    NAME              NAMESPACE      REVISION    UPDATED                                   STATUS      CHART                                  APP VERSION               
    <release_name>  <namespace>     1           2020-02-13 16:05:58.599679 -0500 EST    deployed    ibm-object-storage-plugin-1.1.2        1.1.2
    
  2. Aktualisieren Sie das IBM Cloud Helm-Repository, um die neueste Version aller Helm-Diagramme in diesem Repository abzurufen.

    helm repo update
    
  3. Aktualisieren Sie das IBM Cloud Object Storage ibmc Helm-Plug-in auf die aktuellste Version.

    helm ibmc --update
    
  4. Installieren Sie die aktuellste Version von ibm-object-storage-plugin für Ihr Betriebssystem.

    Beispiel helm ibmc upgrade Befehl für Nicht-Windows-Betriebssysteme.

    helm ibmc upgrade ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin --set license=true [--set quotaLimit=true/false] [--set bucketAccessPolicy=true/false] [--set allowCrossNsSecret=true/false]
    

    helm upgrade-Beispielbefehl für Windows.

    helm upgrade ibm-object-storage-plugin ./ibm-object-storage-plugin --set dcname="${DC_NAME}" --set provider="${CLUSTER_PROVIDER}" --set workerOS="${WORKER_OS}" --set region="${REGION} --set platform="${PLATFORM}" --set license=true [--set bucketAccessPolicy=false]
    
    DC_NAME
    Das Rechenzentrum des Clusters. Führen Sie kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}" aus, um das Rechenzentrum abzurufen. Speichern Sie den Wert des Rechenzentrums in einer Umgebungsvariable, indem Sie SET DC_NAME=<datacenter> ausführen. Optional: Legen Sie die Umgebungsvariable in Windows PowerShell fest, indem Sie $env:DC_NAME="<datacenter>" ausführen.
    CLUSTER_PROVIDER
    Der Infrastrukturprovider. Um diesen Wert abzurufen, führen Sie den folgenden Befehl aus: kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}". Wenn die Ausgabe des vorherigen Schritts softlayer enthält, setzen Sie CLUSTER_PROVIDER auf den Wert "IBMC". Wenn die Ausgabe gc, ng oder g2 enthält, setzen Sie CLUSTER_PROVIDER auf den Wert "IBMC-VPC". Speichern Sie den Infrastrukturprovider in einer Umgebungsvariablen. Beispiel: SET CLUSTER_PROVIDER="IBMC-VPC".
    WORKER_OS und PLATFORM
    Das Betriebssystem der Workerknoten. Um diese Werte abzurufen, führen Sie den folgenden Befehl aus: kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}". Speichern Sie das Betriebssystem der Workerknoten in einer Umgebungsvariablen. Führen Sie für IBM Cloud Kubernetes Service-Cluster SET WORKER_OS="debian" und SET PLATFORM="k8s" aus.
    REGION
    Die Region der Workerknoten. Um diesen Wert abzurufen, führen Sie den folgenden Befehl aus: kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region'. Speichern Sie die Region der Workerknoten in einer Umgebungsvariablen, indem Sie SET REGION="< region>" ausführen. |
  5. Überprüfen Sie, ob das Upgrade für ibmcloud-object-storage-plugin erfolgreich durchgeführt wurde. Das Upgrade des Plug-ins wurde erfolgreich ausgeführt, wenn die Nachricht deployment "ibmcloud-object-storage-plugin" successfully rolled out in der CLI-Ausgabe angezeigt wird.

    kubectl rollout status deployment/ibmcloud-object-storage-plugin -n ibm-object-s3fs
    
  6. Überprüfen Sie, ob das Upgrade für ibmcloud-object-storage-driver erfolgreich durchgeführt wurde. Das Upgrade wurde erfolgreich ausgeführt, wenn die Nachricht daemon set "ibmcloud-object-storage-driver" successfully rolled out in der CLI-Ausgabe angezeigt wird.

    kubectl rollout status ds/ibmcloud-object-storage-driver -n ibm-object-s3fs
    
  7. Stellen Sie sicher, dass sich die IBM Cloud Object Storage-Pods im Status Running befinden.

    kubectl get pods -n <namespace> -o wide | grep object-storage
    

Wenn Sie Probleme bei der Aktualisierung des IBM Cloud Object Storage-Plug-ins haben, lesen Sie die Informationen unter Objektspeicher: Installation des ibmc Helm-Plug-ins für Objektspeicher schlägt fehl und Objektspeicher: Installation des IBM Cloud Object Storage-Plug-ins schlägt fehl.

IBM Cloud Object Storage-Plug-in entfernen

Wenn Sie IBM Cloud Object Storage in Ihrem Cluster nicht bereitstellen und verwenden wollen, können Sie ibm-object-storage-plugin und das ibmc Helm-Plug-in deinstallieren.

Wenn Sie das ibmc Helm-Plug-in oder ibm-object-storage-plugin entfernen, werden vorhandene PVCs, PVs oder Daten nicht entfernt. Wenn Sie ibm-object-storage-plugin entfernen, werden alle zugehörigen Treiber-Pods und Dämongruppen aus Ihrem Cluster entfernt. Das bedeutet, Sie können keine neue IBM Cloud Object Storage-Instanz für Ihren Cluster bereitstellen, es sei denn, Sie konfigurieren Ihre App für die direkte Verwendung der IBM Cloud Object Storage-API. Es gibt keine Auswirkungen auf vorhandene PVCs und PVs.

Vorbereitende Schritte:

So entfernen Sie das das ibmc Helm-Plug-in und die ibm-object-storage-plugin:

  1. Rufen Sie den Namen Ihrer Helm-Installation für ibm-object-storage-plugin ab.

    helm ls -A | grep ibm-object-storage-plugin
    

    Beispielausgabe

    NAME                         NAMESPACE    REVISION    UPDATED                                 STATUS      CHART                                  APP VERSION               
    ibm-object-storage-plugin    default      2           2020-04-01 08:46:01.403477 -0400 EDT    deployed    ibm-object-storage-plugin-1.1.4        1.1.4  
    
  2. Deinstallieren Sie ibm-object-storage-plugin.

    helm uninstall <release_name>
    

    Beispielbefehl für eine Version namens ibm-object-storage-plugin.

    helm uninstall ibm-object-storage-plugin
    
  3. Überprüfen Sie, dass die ibm-object-storage-plugin-Pods entfernt wurden.

    kubectl get pod -n <namespace> | grep object-storage
    

    Das Entfernen der Pods war erfolgreich, wenn in Ihrer CLI-Ausgabe keine Pods angezeigt werden. Das Entfernen der Speicherklassen war erfolgreich, wenn in Ihrer CLI-Ausgabe keine Speicherklassen angezeigt werden.

  4. Überprüfen Sie, ob die Speicherklassen entfernt wurden.

    kubectl get sc | grep s3
    
  5. Wenn Sie OS X oder eine Linux-Distribution verwenden, entfernen Sie das Helm-Plug-in ibmc. Wenn Sie Windows verwenden, ist dieser Schritt nicht erforderlich.

    1. Entfernen Sie das Helm-Plug-in ibmc.
        helm plugin uninstall ibmc
        ```
    2. Stellen Sie sicher, dass das Plug-in `ibmc` entfernt wurde. Das Entfernen des Plug-ins `ibmc` war erfolgreich, wenn das Plug-in `ibmc` nicht in der CLI-Ausgabe aufgeführt ist.
    
    ```sh {: pre}
        helm plugin list
        ```
        Beispielausgabe
    
        ```sh {: screen}
        NAME    VERSION    DESCRIPTION
        ```
    

Entscheidung über Objektspeicherkonfiguration treffen

IBM Cloud Kubernetes Service stellt vordefinierte Speicherklassen zur Verfügung, die Sie verwenden können, um Buckets mit einer bestimmten Konfiguration zu erstellen.

  1. Listen Sie die in IBM Cloud Kubernetes Service verfügbaren Speicherklassen auf.

    kubectl get sc | grep s3
    

    Beispielausgabe

    ibmc-s3fs-cold-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-cold-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-cross-region       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-regional           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-cross-region        ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-cross-region   ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-regional       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-regional            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-cross-region           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-regional               ibm.io/ibmc-s3fs   8m
    
  2. Wählen Sie eine Speicherklasse aus, die Ihren Datenzugriffsanforderungen entspricht. Die Speicherklasse bestimmt die Speicherkapazität, die Lese- und Schreibvorgänge sowie die ausgehende Bandbreite eines Buckets. Welche Option für Sie die richtige ist, hängt davon ab, wie häufig Daten aus Ihrer Service-Instanz gelesen und in diese geschrieben werden.

    • Standard: Diese Option wird für Daten verwendet, auf die häufig zugegriffen wird ('Hot Data'). Gängige Anwendungsfälle sind Web-Apps oder Mobile Apps.
    • Vault: Diese Option wird für Workloads oder Daten verwendet, auf die selten zugegriffen wird - z. B. einmal im Monat oder weniger ('Cool Data'). Gängige Anwendungsfälle sind Archive, kurzfristige Datenaufbewahrung, Aufbewahrung digitaler Assets, Bandwechsel oder Disaster-Recovery.
    • Cold: Diese Option wird für Daten verwendet, auf die selten (alle 90 Tage oder weniger) zugegriffen wird, oder auf inaktive Daten ('Cold Data'). Gängige Anwendungsfälle sind Archive, langfristige Sicherung, Langzeitdaten, die Sie für Compliance-Zwecke aufbewahren, oder Workloads und Apps, auf die selten zugegriffen wird.
    • Smart “: Diese Option wird für Workloads und Daten verwendet, die keinem bestimmten Nutzungsmuster folgen oder die zu umfangreich sind, um ein Nutzungsmuster zu ermitteln oder vorherzusagen.
  3. Entscheiden Sie über die Ausfallsicherheit für die Daten, die in Ihrem Bucket gespeichert sind. Weitere Informationen finden Sie im Abschnitt zu Regionen und Endpunkten.

    • Cross-region: Bei dieser Option werden Ihre Daten für höchste Verfügbarkeit über drei Regionen in einem geografischen Gebiet gespeichert. Wenn Sie über Workloads verfügen, die über Regionen verteilt sind, werden Anforderungen an den nächsten regionalen Endpunkt weitergeleitet. Der API-Endpunkt für das geografische Gebiet wird automatisch durch das Helm-Plug-in ibmc festgelegt, das Sie zuvor basierend auf dem Standort installiert haben, an dem sich Ihr Cluster befindet. Wenn sich Ihr Cluster beispielsweise in der Region US South befindet, werden Ihre Speicherklassen zur Verwendung des API-Endpunkt US GEO für Ihre Buckets konfiguriert.
    • Regional: Mit dieser Option werden Ihre Daten über mehrere Zonen innerhalb einer Region repliziert. Wenn Sie Workloads haben, die sich in derselben Region befinden, stellen Sie eine geringere Latenz und eine bessere Leistung als bei einer regionsübergreifenden Konfiguration fest. Der regionale Endpunkt wird automatisch durch das Helm-Plug-in ibm festgelegt, das Sie zuvor basierend auf dem Standort installiert haben, an dem sich Ihr Cluster befindet. Wenn sich Ihr Cluster beispielsweise in der Region US South befindet, wurden Ihre Speicherklassen zur Verwendung des API-Endpunkt US South für Ihre Buckets konfiguriert.
  4. Überprüfen Sie für die Speicherklasse die detaillierte IBM Cloud Object Storage-Bucketkonfiguration.

    kubectl describe storageclass <storageclass_name>
    

    Beispielausgabe

    Name:                  ibmc-s3fs-standard-cross-region
    IsDefaultClass:        No
    Annotations:           <none>
    Provisioner:           ibm.io/ibmc-s3fs
    Parameters:            ibm.io/chunk-size-mb=16,ibm.io/curl-debug=false,ibm.io/debug-level=warn,ibm.io/iam-endpoint=https://iam.bluemix.net,ibm.io/kernel-cache=true,ibm.io/multireq-max=20,ibm.io/object-store-endpoint=https://s3-api.dal-us-geo.objectstorage.service.networklayer.com,ibm.io/object-store-storage-class=us-standard,ibm.io/parallel-count=2,ibm.io/s3fs-fuse-retry-count=5,ibm.io/stat-cache-size=100000,ibm.io/tls-cipher-suite=AESGCM
    AllowVolumeExpansion:  <unset>
    MountOptions:          <none>
    ReclaimPolicy:         Delete
    VolumeBindingMode:     Immediate
    Events:                <none>
    
    ibm.io/chunk-size-mb
    Die Größe eines Datenblocks (in Megabyte), der in IBM Cloud Object Storage gelesen oder geschrieben wird. Speicherklassen mit perf im Namen werden mit 52 Megabyte eingerichtet. Speicherklassen ohne perf im Namen verwenden Blöcke von 16 Megabyte. Wenn Sie zum Beispiel eine Datei mit einer Größe von 1GB lesen möchten, liest das Plug-in diese Datei in mehreren Blöcken von 16 oder 52 Megabyte.
    ibm.io/curl-debug
    Aktivierung der Protokollierung von Anforderungen, die an die IBM Cloud Object Storage-Serviceinstanz gesendet werden. Bei Aktivierung werden Protokolle an syslog gesendet und Sie können die Protokolle an einen externen Protokollierungsserver weiterleiten. Standardmäßig sind alle Speicherklassen auf false eingestellt, um diese Protokollierungsfunktion zu inaktivieren.
    ibm.io/debug-level
    Die Protokollierungsstufe, die vom IBM Cloud Object Storage-Plug-in festgelegt wird. Alle Speicherklassen werden mit der Protokollierungsstufe WARN eingerichtet.
    ibm.io/iam-endpoint
    Der API-Endpunkt für IBM Cloud Identity and Access Management (IAM).
    ibm.io/kernel-cache
    Aktivierung oder Inaktivierung des Kernelpuffercache für den Datenträgermountpunkt. Wenn diese Funktion aktiviert ist, werden Daten, die aus IBM Cloud Object Storage gelesen werden, im Kernel-Cache gespeichert, um einen schnellen Lesezugriff auf Ihre Daten zu ermöglichen. Wenn diese Funktion inaktiviert ist, werden Daten nicht in den Cache gestellt und immer aus IBM Cloud Object Storage gelesen. Der Kernel-Cache ist für die Speicherklassen „ standard “ und „ smart “ aktiviert und für die Speicherklassen „ cold “ und „ vault “ deaktiviert.
    ibm.io/multireq-max
    Die maximale Anzahl paralleler Anforderungen, die an die IBM Cloud Object Storage-Serviceinstanz gesendet werden können, um Dateien in einem einzelnen Verzeichnis aufzulisten. Alle Speicherklassen werden mit maximal 20 parallelen Anforderungen konfiguriert.
    ibm.io/object-store-endpoint
    Der API-Endpunkt, der für den Zugriff auf das Bucket in Ihrer IBM Cloud Object Storage-Serviceinstanz verwendet werden soll. Der Endpunkt wird automatisch auf der Basis der Region des Clusters festgelegt. Wenn Sie auf einen bestehenden Bucket zugreifen möchten, der sich in einer anderen Region befindet als die, in der sich Ihr Cluster befindet, müssen Sie eine eigene Speicherklasse erstellen und den API-Endpunkt für Ihren Bucket verwenden.
    ibm.io/object-store-storage-class
    Der Name der Speicherklasse.
    ibm.io/parallel-count
    Die maximale Anzahl paralleler Anforderungen, die an die IBM Cloud Object Storage-Serviceinstanz für eine einzelne Lese- oder Schreiboperation gesendet werden können. Speicherklassen mit perf im Namen werden mit maximal 20 parallelen Anforderungen eingerichtet. Speicherklassen ohne perf im Namen werden standardmäßig mit zwei parallelen Anforderungen eingerichtet.
    ibm.io/s3fs-fuse-retry-count
    Die maximale Anzahl der Versuche für eine Lese- oder Schreiboperation, bevor die Operation als nicht erfolgreich angesehen wird. Alle Speicherklassen werden mit maximal fünf Versuchen eingerichtet.
    ibm.io/stat-cache-size
    Die maximale Anzahl der Datensätze, die im IBM Cloud Object Storage-Metadatencache gespeichert werden. Jeder Datensatz kann bis zu 0,5 Kilobyte belegen. Alle Speicherklassen legen die maximale Anzahl an Datensätzen standardmäßig auf 100000 fest.
    ibm.io/tls-cipher-suite
    Die TLS-Cipher-Suite, die verwendet werden muss, wenn über den HTTPS-Endpunkt eine Verbindung zu IBM Cloud Object Storage hergestellt wird. Der Wert für die Verschlüsselungssuite muss dem Format „ OpenSSL “ entsprechen. Wenn Ihre Workerknoten unter einem Ubuntu-Betriebssystem ausgeführt werden, dann werden Ihre Speicherklassen standardmäßig zur Nutzung der Cipher-Suite AESGCM eingerichtet. Für Workerknoten, die unter einem Red Hat-Betriebssystem ausgeführt werden, wird standardmäßig die Cipher-Suite ecdhe_rsa_aes_128_gcm_sha_256 verwendet.

    Weitere Informationen zu den einzelnen Speicherklassen finden Sie in der Speicherklassenreferenz. Wenn Sie einen der voreingestellten Werte ändern möchten, erstellen Sie eine eigene, individuell angepasste Speicherklasse.

  5. Entscheiden Sie sich für einen Namen für Ihr Bucket. Der Name eines Buckets muss in IBM Cloud Object Storage eindeutig sein. Sie können auch angeben, dass ein Name für Ihr Bucket automatisch mithilfe des IBM Cloud Object Storage-Plug-ins erstellt werden soll. Um Daten in einem Bucket zu organisieren, können Sie Unterverzeichnisse erstellen.

    Die Speicherklasse, die Sie zuvor ausgewählt haben, bestimmt die Preisgestaltung für das gesamte Bucket. Sie können keine unterschiedlichen Speicherklassen für Unterverzeichnisse definieren. Wenn Sie Daten mit unterschiedlichen Zugriffsanforderungen speichern möchten, sollten Sie das Erstellen mehrerer Buckets mithilfe mehrerer PVCs in Betracht ziehen.

  6. Wählen Sie diese Option aus, wenn die Daten und das Bucket nach dem Löschen des Clusters oder des Persistent Volume Claim (PVC) beibehalten werden sollen. Wenn Sie den PVC löschen, wird der PV immer gelöscht. Sie können angeben, ob die Daten und das Bucket automatisch gelöscht werden sollen, wenn Sie den PVC löschen. Ihre IBM Cloud Object Storage-Serviceinstanz ist unabhängig von der Aufbewahrungsrichtlinie, die Sie für Ihre Daten ausgewählt haben, und wird nie entfernt, wenn Sie einen PVC löschen.

Nachdem Sie sich nun für die gewünschte Konfiguration entschieden haben, können Sie einen PVC erstellen, um IBM Cloud Object Storage einzurichten.

Ihre Installation überprüfen

Überprüfen Sie die Pod-Details, um sicherzustellen, dass die Installation des Plug-ins erfolgreich war.

  1. Bestätigen Sie die erfolgreiche Installation, indem Sie die Treiber-Pods auflisten.

    kubectl get pod --all-namespaces -o wide | grep object
    

    Beispielausgabe

    ibmcloud-object-storage-driver-9n8g8                              1/1       Running   0          2m
    ibmcloud-object-storage-plugin-7c774d484b-pcnnx                   1/1       Running   0          2m
    

    Die Installation ist erfolgreich, wenn ein Pod des Typs ibmcloud-object-storage-plugin und ein oder mehrere Pods des Typs ibmcloud-object-storage-driver angezeigt werden. Die Anzahl der Pods des Typs ibmcloud-object-storage-driver entspricht der Anzahl der Workerknoten in Ihrem Cluster. Alle Pods müssen den Status Running aufweisen, damit das Plug-in ordnungsgemäß ausgeführt werden kann. Wenn die Pods fehlschlagen, führen Sie kubectl describe pod -n ibm-object-s3fs <pod_name> aus, um die eigentliche Ursache für den Fehler zu ermitteln.

  2. Stellen Sie sicher, dass die Speicherklassen erfolgreich erstellt werden.

    kubectl get sc | grep s3
    

    Beispielausgabe

    ibmc-s3fs-cold-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-cold-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-cross-region       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-regional           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-cross-region        ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-cross-region   ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-regional       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-regional            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-cross-region           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-regional               ibm.io/ibmc-s3fs   8m
    

    Wenn Sie eine der IBM Cloud Object Storage-Speicherklassen als Standardspeicherklasse festlegen möchten, führen Sie kubectl patch storageclass <storageclass> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' aus. Ersetzen Sie <storageclass> durch den Namen der IBM Cloud Object Storage-Speicherklasse.

  3. Folgen Sie den Anweisungen zum Hinzufügen des Objektspeichers zu Ihren Apps.

Wenn Sie Probleme bei der Installation des IBM Cloud Object Storage-Plug-ins haben, lesen Sie die Informationen unter Objektspeicher: Installation des ibmc Helm-Plug-ins für Objektspeicher schlägt fehl und Objektspeicher: Installation des IBM Cloud Object Storage-Plug-ins schlägt fehl.