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 “:
-
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.
- 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). -
Überprüfen Sie das Änderungsprotokoll und die Unterstützung für Ihre Clusterversion und Architektur.
-
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.
-
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 -
Aktualisieren Sie die Helm-Repositorys, um die neueste Version aller Helm-Diagramme in diesem Repository abzurufen.
helm repo update -
Wenn Sie das IBM Cloud Object Storage Helm-Plug-in zuvor installiert haben, entfernen Sie das
ibmc-Plug-in.helm plugin uninstall ibmc -
Laden Sie die Helm-Charts herunter und entpacken Sie die Charts im aktuellen Verzeichnis.
helm fetch --untar ibm-helm/ibm-object-storage-pluginWenn in der Ausgabe der Fehler
Error: failed to untar: a file or directory with the name ibm-object-storage-plugin already existsangezeigt wird, löschen Sie Ihr Verzeichnisibm-object-storage-pluginund wiederholen Sie die Ausführung des Befehlshelm fetch. -
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
ibmcPlug-in wird unter Windows nicht unterstützt.- 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 ``` -
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.
- Erstellen Sie Ihre IBM Cloud Object Storage-Serviceinstanz.
- Speichern Sie Ihre Berechtigungsnachweise für den IBM Cloud Object Storage-Service in einem geheimen Kubernetes-Schlüssel).
- 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. -
Installieren Sie
ibm-object-storage-pluginin 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 Verzeichnistemplatesals 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
truesetzen, entspricht das Kontingent für von diesen PVCs erstellte Buckets bei der Erstellung von PVCs der PVC-Größe. Der Standardwert isttrue. 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
falsesetzen, sucht das Plug-in nur im PVC-Namensbereich nach dem geheimen Kubernetes-Schlüssel. Der Standardwert isttrue. kubeDriver- Wird auf
/usr/libexec/kubernetesfestgelegt. 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 SieSET 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 Schrittssoftlayerenthält, setzen SieCLUSTER_PROVIDERauf den Wert"IBMC". Wenn die Ausgabegc,ngoderg2enthält, setzen SieCLUSTER_PROVIDERauf den Wert"IBMC-VPC". Speichern Sie den Infrastrukturprovider in einer Umgebungsvariablen. Beispiel:SET CLUSTER_PROVIDER="IBMC-VPC". WORKER_OSundPLATFORM- 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-ClusterSET WORKER_OS="debian"undSET 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 SieSET 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.
-
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 objectBeispielausgabe
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 -
Aktualisieren Sie das IBM Cloud Helm-Repository, um die neueste Version aller Helm-Diagramme in diesem Repository abzurufen.
helm repo update -
Aktualisieren Sie das IBM Cloud Object Storage
ibmcHelm-Plug-in auf die aktuellste Version.helm ibmc --update -
Installieren Sie die aktuellste Version von
ibm-object-storage-pluginfür Ihr Betriebssystem.Beispiel
helm ibmc upgradeBefehl 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 SieSET 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 Schrittssoftlayerenthält, setzen SieCLUSTER_PROVIDERauf den Wert"IBMC". Wenn die Ausgabegc,ngoderg2enthält, setzen SieCLUSTER_PROVIDERauf den Wert"IBMC-VPC". Speichern Sie den Infrastrukturprovider in einer Umgebungsvariablen. Beispiel:SET CLUSTER_PROVIDER="IBMC-VPC". WORKER_OSundPLATFORM- 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-ClusterSET WORKER_OS="debian"undSET 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 SieSET REGION="< region>"ausführen. |
-
Überprüfen Sie, ob das Upgrade für
ibmcloud-object-storage-pluginerfolgreich durchgeführt wurde. Das Upgrade des Plug-ins wurde erfolgreich ausgeführt, wenn die Nachrichtdeployment "ibmcloud-object-storage-plugin" successfully rolled outin der CLI-Ausgabe angezeigt wird.kubectl rollout status deployment/ibmcloud-object-storage-plugin -n ibm-object-s3fs -
Überprüfen Sie, ob das Upgrade für
ibmcloud-object-storage-drivererfolgreich durchgeführt wurde. Das Upgrade wurde erfolgreich ausgeführt, wenn die Nachrichtdaemon set "ibmcloud-object-storage-driver" successfully rolled outin der CLI-Ausgabe angezeigt wird.kubectl rollout status ds/ibmcloud-object-storage-driver -n ibm-object-s3fs -
Stellen Sie sicher, dass sich die IBM Cloud Object Storage-Pods im Status
Runningbefinden.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:
- Melden Sie sich an Ihrem Konto an. If applicable, target the appropriate resource group. Legen Sie den Kontext für den Cluster fest.
- Stellen Sie sicher, dass in Ihrem Cluster keine PVCs oder PVs vorhanden sind, die IBM Cloud Object Storage verwenden. Führen Sie
kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"aus, um alle Pods aufzulisten, die einen bestimmten PVC anhängen.
So entfernen Sie das das ibmc Helm-Plug-in und die ibm-object-storage-plugin:
-
Rufen Sie den Namen Ihrer Helm-Installation für
ibm-object-storage-pluginab.helm ls -A | grep ibm-object-storage-pluginBeispielausgabe
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 -
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 -
Überprüfen Sie, dass die
ibm-object-storage-plugin-Pods entfernt wurden.kubectl get pod -n <namespace> | grep object-storageDas 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.
-
Überprüfen Sie, ob die Speicherklassen entfernt wurden.
kubectl get sc | grep s3 -
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.- 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 ``` - Entfernen Sie das Helm-Plug-in
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.
-
Listen Sie die in IBM Cloud Kubernetes Service verfügbaren Speicherklassen auf.
kubectl get sc | grep s3Beispielausgabe
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 -
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.
-
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
ibmcfestgelegt, das Sie zuvor basierend auf dem Standort installiert haben, an dem sich Ihr Cluster befindet. Wenn sich Ihr Cluster beispielsweise in der RegionUS Southbefindet, werden Ihre Speicherklassen zur Verwendung des API-EndpunktUS GEOfü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
ibmfestgelegt, das Sie zuvor basierend auf dem Standort installiert haben, an dem sich Ihr Cluster befindet. Wenn sich Ihr Cluster beispielsweise in der RegionUS Southbefindet, wurden Ihre Speicherklassen zur Verwendung des API-EndpunktUS Southfür Ihre Buckets konfiguriert.
- 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
-
Ü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
perfim Namen werden mit 52 Megabyte eingerichtet. Speicherklassen ohneperfim Namen verwenden Blöcke von 16 Megabyte. Wenn Sie zum Beispiel eine Datei mit einer Größe von1GBlesen 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
sysloggesendet und Sie können die Protokolle an einen externen Protokollierungsserver weiterleiten. Standardmäßig sind alle Speicherklassen auffalseeingestellt, 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
WARNeingerichtet. 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
perfim Namen werden mit maximal 20 parallelen Anforderungen eingerichtet. Speicherklassen ohneperfim 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
AESGCMeingerichtet. Für Workerknoten, die unter einem Red Hat-Betriebssystem ausgeführt werden, wird standardmäßig die Cipher-Suiteecdhe_rsa_aes_128_gcm_sha_256verwendet.
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.
-
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.
-
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.
-
Bestätigen Sie die erfolgreiche Installation, indem Sie die Treiber-Pods auflisten.
kubectl get pod --all-namespaces -o wide | grep objectBeispielausgabe
ibmcloud-object-storage-driver-9n8g8 1/1 Running 0 2m ibmcloud-object-storage-plugin-7c774d484b-pcnnx 1/1 Running 0 2mDie Installation ist erfolgreich, wenn ein Pod des Typs
ibmcloud-object-storage-pluginund ein oder mehrere Pods des Typsibmcloud-object-storage-driverangezeigt werden. Die Anzahl der Pods des Typsibmcloud-object-storage-driverentspricht der Anzahl der Workerknoten in Ihrem Cluster. Alle Pods müssen den StatusRunningaufweisen, damit das Plug-in ordnungsgemäß ausgeführt werden kann. Wenn die Pods fehlschlagen, führen Siekubectl describe pod -n ibm-object-s3fs <pod_name>aus, um die eigentliche Ursache für den Fehler zu ermitteln. -
Stellen Sie sicher, dass die Speicherklassen erfolgreich erstellt werden.
kubectl get sc | grep s3Beispielausgabe
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 8mWenn 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. -
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.