Block Storage for VPC einrichten
Block Storage for VPC stellt an Hypervisor angehängte, hochleistungsfähige Datenspeicherung für Ihre virtuellen Serverinstanzen bereit, die Sie innerhalb einer VPC bereitstellen können.
Sie können unter vordefinierten Speichertiers mit GB-Größen und E/A-Operationen pro Sekunde (IOPS) wählen, die die Anforderungen Ihrer Workloads erfüllen. Informationen dazu, ob Block Storage for VPC die richtige Speicheroption für Sie ist, finden Sie unter Speicherlösung wählen. Preisinformationen finden Sie unter Preisstruktur für Block Storage for VPC.
Das Cluster-Add-on Block Storage for VPC ist auf VPC-Clustern standardmäßig aktiviert.
Schnelleinstieg für IBM Cloud Block Storage for VPC
In dieser Schnellstartanleitung erstellen Sie ein 10Gi 5IOPS tier Block Storage for VPC Volume in Ihrem Cluster, indem Sie eine PVC zur dynamischen Bereitstellung des Volumes erstellen. Anschließend erstellen Sie eine App-Bereitstellung, bei der der PVC anhängt wird.
Ihre Block Storage for VPC Volumes können von mehreren Pods gemountet werden, solange diese Pods auf demselben Knoten geplant sind.
-
Erstellen Sie eine Datei namens
pvc.yaml
für Ihren PVC.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: ibmc-vpc-block-5iops-tier accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
-
Erstellen Sie die PVC in Ihrem Cluster.
oc apply -f pvc.yaml
-
Nachdem Ihr PVC gebunden ist, erstellen Sie eine App-Bereitstellung, die Ihren PVC verwendet. Erstellen Sie eine Datei namens
deployment.yaml
für Ihren PVC.apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: app: my-app spec: replicas: 1 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - image: ngnix # Your containerized app image. name: my-container volumeMounts: - name: my-volume mountPath: /mount-path volumes: - name: my-volume persistentVolumeClaim: claimName: my-pvc
-
Erstellen Sie die Bereitstellung in Ihrem Cluster.
oc apply -f deployment.yaml
Weitere Informationen enthalten die folgenden Abschnitte.
Block Storage for VPC zu Ihren Apps hinzufügen
Wählen Sie Ihr Block Storage for VPC-Profil aus und erstellen Sie einen PersistentVolumeClaim (PVC), um Block Storage for VPC dynamisch für Ihren Cluster bereitzustellen. Die dynamische Bereitstellung erstellt automatisch den entsprechenden persistenten Datenträger und bestellt die physische Speichereinheit in Ihrem IBM Cloud-Konto.
-
Legen Sie das Block Storage for VPC-Profil fest, das Ihren Kapazitäts- und Leistungsanforderungen am besten entspricht.
-
Wählen Sie die entsprechende Speicherklasse für Ihr Block Storage for VPC-Profil aus.
Alle vordefinierten IBM Speicherklassen richten Block Storage for VPC standardmäßig mit einem Dateisystem
ext4
ein. Wenn Sie ein anderes Dateisystem (z. B.xfs
oderext3
) verwenden wollen, erstellen Sie eine angepasste Speicherklasse.- 10 IOPS/GB:
ibmc-vpc-block-10iops-tier
oderibmc-vpc-block-retain-10iops-tier
- 5 IOPS/GB:
ibmc-vpc-block-5iops-tier
oribmc-vpc-block-retain-5iops-tier
- 3 IOPS/GB:
ibmc-vpc-block-general-purpose
oribmc-vpc-block-retain-general-purpose
- Custom:
ibmc-vpc-block-custom
oribmc-vpc-block-retain-custom
- 10 IOPS/GB:
-
Legen Sie Ihre Block Storage for VPC-Konfiguration fest.
- Wählen Sie eine Größe für Ihren Speicher aus. Stellen Sie sicher, dass die Größe von dem ausgewählten Block Storage for VPC-Profil unterstützt wird.
- Wählen Sie aus, ob Ihre Daten nach dem Löschen des Clusters oder des Persistent Volume Claim (PVC) beibehalten werden sollen.
- Wenn Sie die Daten beibehalten möchten, wählen Sie eine Speicherklasse vom Typ
retain
aus. Beim Löschen des PVC wird nur der PVC gelöscht. Der persistente Datenträger (PV), die physische Speichereinheit in Ihrem IBM Cloud-Konto und Ihre Daten bleiben weiterhin vorhanden. Um den Speicher zurückzufordern und in Ihrem Cluster erneut zu verwenden, müssen Sie den persistenten Datenträger entfernen und die Schritte zum Verwenden von vorhandenem Block Storage for VPC ausführen. - Wenn Sie möchten, dass der persistente Datenträger, die Daten und Ihre physische Block Storage for VPC-Einheit beim Löschen des Persistent Volume Claim (PVC) gelöscht werden, müssen Sie eine Speicherklasse ohne
retain
auswählen.
- Wenn Sie die Daten beibehalten möchten, wählen Sie eine Speicherklasse vom Typ
-
Erstellen Sie eine Konfigurationsdatei, um Ihren Persistent Volume Claim zu definieren, und speichern Sie die Konfiguration als YAML-Datei.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc_name> # Enter a name for your PVC. spec: accessModes: - <access-mode> # ReadWriteOnce or ReadWriteOncePod resources: requests: storage: 10Gi # Enter the size. Make sure that the size is supported in the profile that you chose. storageClassName: <storage_class> # Enter the storage class name that you selected earlier.
-
Erstellen Sie die PVC in Ihrem Cluster.
oc apply -f pvc.yaml
-
Überprüfen Sie, ob Ihr PVC erstellt und an den persistenten Datenträger (PV) gebunden wurde. Dieser Prozess kann einige Minuten dauern.
oc describe pvc <pvc_name>
Beispielausgabe
Name: mypvv Namespace: default StorageClass: ibmc-vpc-block-5iops-tier Status: Bound Volume: Labels: <none> Annotations: oc.kubernetes.io/last-applied-configuration: {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"csi-block-pvc-good","namespace":"default"},"spec":{... volume.beta.kubernetes.io/storage-provisioner: vpc.block.csi.ibm.io Finalizers: [kubernetes.io/pvc-protection] Capacity: 10Gi Access Modes: VolumeMode: Filesystem Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ExternalProvisioning 9s (x3 over 18s) persistentvolume-controller waiting for a volume to be created, either by external provisioner "vpc.block.csi.ibm.io" or manually created by system administrator Mounted By: <none>
-
Erstellen Sie eine Bereitstellungskonfigurationsdatei für Ihre App und hängen Sie den PVC an Ihre App an.
apiVersion: apps/v1 kind: Deployment metadata: name: <deployment_name> labels: app: <deployment_label> spec: selector: matchLabels: app: <app_name> template: metadata: labels: app: <app_name> spec: containers: - image: <image_name> name: <container_name> volumeMounts: - name: <volume_name> mountPath: /<file_path> volumes: - name: <volume_name> persistentVolumeClaim: claimName: <pvc_name>
labels.app
- Geben Sie im Abschnitt "metadata" eine Bezeichnung für die Bereitstellung ein.
matchLabels.app
undlabels.app
- Geben Sie im Abschnitt "spec" unter "selector" und im Abschnitt "template" unter "metadata" eine Bezeichnung für Ihre App ein.
image
- Geben Sie den Namen des Container-Image an, das Sie verwenden wollen. Führen Sie
ibmcloud cr image-list
aus, um die verfügbaren Images in Ihrem IBM Cloud Container Registry-Konto aufzulisten. name
- Geben Sie den Namen des Containers an, den Sie in Ihrem Pod bereitstellen wollen.
mountPath
- Geben Sie im Abschnitt "containers" unter "volumeMounts" den absoluten Pfad des Verzeichnisses an, in dem der PVC innerhalb des Containers per Mount angehängt wird.
name
- Geben Sie im Abschnitt 'containers: volumeMounts' den Namen des Datenträgers an, der an Ihren Pod angehängt werden soll. Sie können einen beliebigen Namen Ihrer Wahl eingeben.
name
- Geben Sie im Abschnitt 'volumes' den Namen des Datenträgers ein, der an Ihren Pod angehängt werden soll. Dieser Name ist in der Regel mit
volumeMounts.name
identisch. claimName
- Geben Sie im Abschnitt "volumes" unter "persistentVolumeClaim" den Namen des zuvor erstellten PVC ein.
-
Erstellen Sie die Bereitstellung in Ihrem Cluster.
oc apply -f deployment.yaml
-
Überprüfen Sie, ob der PVC erfolgreich an Ihre App angehängt wurde. Es kann einige Minuten dauern, bis Ihre Pods in den aktiven Status (Running) wechseln.
Während der Bereitstellung Ihrer App werden möglicherweise sporadisch Fehler, dass Datenträger nicht angehängt werden können (
Unable to mount volumes
), im Abschnitt für Ereignisse (Events) der CLI-Ausgabe angezeigt. Das Block Storage for VPC cluster add-on versucht automatisch, den Speicher für Ihre Anwendungen zu mounten. Warten Sie noch einige Minuten ab, damit der Speicher an Ihre App angehängt werden kann.oc describe deployment <deployment_name>
Beispielausgabe
... Volumes: myvol: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: mypvc ReadOnly: false
Vorhandene Block Storage for VPC-Instanz verwenden
Wenn Sie bereits über eine physische Block Storage for VPC-Einheit verfügen, die Sie in Ihrem Cluster verwenden möchten, können Sie den persistenten Speicher (Persistent Volume, PV) und die Anforderung für persistenten Speicher (Persistent Volume Claim, PVC) manuell erstellen, um den Speicher statisch bereitzustellen.
Sie können einen Datenträger nur einem einzigen Arbeitsknoten zuordnen. Stellen Sie sicher, dass sich der Datenträger in derselben Zone befindet wie der Workerknoten, damit die Zuordnung erfolgreich hergestellt werden kann.
-
Ermitteln Sie den Datenträger, den Sie einem Workerknoten in Ihrem VPC-Cluster zuordnen möchten. Notieren Sie die Datenträger-ID (volume ID).
ibmcloud is volumes
-
Listen Sie die Details zu Ihrem Datenträger auf. Notieren Sie die Werte für Größe, Zone und IOPS. Diese Werte werden zum Erstellen Ihres persistenten Datenträgers (PV) verwendet.
ibmcloud is volume <volume_id>
-
Rufen Sie eine Liste der Workerknoten in Ihrem VPC-Cluster ab. Notieren Sie die Zone des Workerknotens, der sich in derselben Zone wie Ihr Speicherdatenträger befindet.
ibmcloud oc worker ls -c <cluster_name>
-
Optional: Wenn Sie Ihre physische Block Storage for VPC-Instanz mit einer Speicherklasse
retain
bereitgestellt haben, werden der persistente Datenträger (PV) und der physische Speicher nicht entfernt, wenn Sie den Persistent Volume Claim (PVC) entfernen. Wenn Sie Ihre physische Block Storage for VPC-Einheit in Ihrem Cluster verwenden wollen, müssen Sie zuerst den vorhandenen persistenten Datenträger entfernen.-
Listen Sie die persistenten Datenträger (PVs) in Ihrem Cluster auf und suchen Sie den PV, der zu Ihrer Block Storage for VPC-Einheit gehört. Der persistente Datenträger hat den Status "freigegeben" (
released
).oc get pv
-
Entfernen Sie den persistenten Datenträger (Persistent Volume, PV)
oc delete pv <pv_name>
-
-
Erstellen Sie eine Konfigurationsdatei für Ihren persistenten Datenträger (PV). Schließen Sie die Werte für ID, Größe, Zone und IOPS (E/A-Operationen pro Sekunde) ein, die Sie zuvor ermittelt haben.
apiVersion: v1 kind: PersistentVolume metadata: name: <pv_name> # Example: my-persistent-volume spec: accessModes: - ReadWriteOnce capacity: storage: <vpc_block_storage_size> # Example: 20Gi csi: driver: vpc.block.csi.ibm.io fsType: ext4 volumeAttributes: iops: "<vpc_block_storage_iops>" # Example: "3000" volumeId: <vpc_block_storage_ID> # Example: a1a11a1a-a111-1111-1a11-1111a11a1a11 zone: "<vpc_block_zone>" # Example: "eu-de-3" region: "<vpc_block_region>" volumeHandle: <vpc_block_storage_ID> nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: failure-domain.beta.kubernetes.io/zone operator: In values: - <worker_node_zone> # Example: eu-de-3 - key: failure-domain.beta.kubernetes.io/region operator: In values: - <worker_node_region> # Example: eu-de - key: kubernetes.io/hostname operator: In values: - <worker_node_primary_IP> persistentVolumeReclaimPolicy: Retain storageClassName: "" volumeMode: Filesystem
name
- Geben Sie im Abschnitt "metadata" einen Namen für Ihren PVC ein.
storage
- Geben Sie unter "spec" im Abschnitt "capacity" die Größe des Block Storage for VPC-Datenträgers in Gigabytes (Gi) an, die Sie zuvor abgerufen haben. Beispiel: Wenn die Größe Ihrer Einheit 100 GB beträgt, geben Sie den
Wert
100Gi
ein. iops
- Geben Sie unter "spec" im Abschnitt "csi" -> "volumeAttributes" die maximale Anzahl E/A-Operationen pro Sekunde des Block Storage for VPC-Datenträgers ein, die Sie zuvor abgerufen haben.
zone
- Geben Sie unter "spec" im Abschnitt "csi" -> "volumeAttributes" die VPC-Blockzone an, die der zuvor abgerufenen Position entspricht. Beispiel: Wenn Ihre Position
Washington DC-1
ist, verwenden Sie für Ihre Zone den Wertus-east-1
. Zum Auflisten der verfügbaren Zonen führen Sie den Befehlibmcloud is zones
aus. Eine Übersicht über die verfügbaren VPC-Zonen und -Positionen finden Sie unter VPC in einer anderen Region erstellen. Geben Sie den Parameter 'region' an, wenn 'zone' angegeben ist. region
- Die Region des Workerknotens, für den Speicher zugeordnet werden soll.
worker_node_primary_IP
- Die primäre IP-Adresse des Workerknotens, für den Speicher zugeordnet werden soll Führen Sie
ibmcloud oc worker ls
aus, um die primäre IP-Adresse des Workerknotens zu finden. volumeId
undspec.csi.volumeHandle
- Geben Sie unter "spec" im Abschnitt "csi" -> "volumeAttributes" die ID des Block Storage for VPC-Datenträgers ein, die Sie zuvor abgerufen haben.
storageClassName
- Geben Sie unter "spec" für "storageClassName" eine leere Zeichenfolge an.
matchExpressions
- Geben Sie unter "spec" im Abschnitt "nodeAffinity" die Knotenselektorbedingungen für den Zonenabgleich ein. Geben Sie für den Schlüssel
failure-domain.beta.kubernetes.io/zone
ein. Geben Sie als Wert die Zone des Workerknotens ein, an den Speicher angehängt werden soll. matchExpressions
- Geben Sie unter "spec" im Abschnitt "nodeAffinity" die Knotenselektorbedingungen für den Regionsabgleich ein. Geben Sie für den Schlüssel
failure-domain.beta.kubernetes.io/region
ein. Geben Sie als Wert die Region des Workerknotens ein, an den Speicher angehängt werden soll.
-
Erstellen Sie den persistenten Datenträger (PV) in Ihrem Cluster.
oc apply -f pv.yaml
-
Überprüfen Sie, ob der PV in Ihrem Cluster erstellt wurde.
oc get pv
-
Erstellen Sie eine weitere Konfigurationsdatei für Ihren PVC. Damit der Persistent Volume Claim (PVC) mit dem zuvor erstellten persistenten Datenträger übereinstimmt, müssen Sie denselben Wert für Speichergröße und Zugriffsmodus auswählen. Geben Sie in Ihrem Speicherklassenfeld einen leeren Zeichenfolgewert ein, der Ihrem persistenten Datenträger entspricht. Wenn eines dieser Felder nicht mit dem PV übereinstimmt, werden automatisch ein neues PV und eine Block Storage for VPC Instanz durch dynamische Bereitstellung erstellt.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc_name> spec: accessModes: - ReadWriteOnce resources: requests: storage: <vpc_block_storage_size> storageClassName: ""
-
Erstellen Sie Ihre PVC.
oc apply -f pvc.yaml
-
Überprüfen Sie, ob Ihr PVC erstellt und an das zuvor erstellte PV gebunden wurde. Dieser Prozess kann einige Minuten dauern.
oc describe pvc <pvc_name>
- Erstellen Sie eine Bereitstellung oder einen Pod, die bzw. der Ihre PVC verwendet.
apiVersion: apps/v1
kind: Deployment
metadata:
name: <deployment_name>
labels:
app: <deployment_label>
spec:
selector:
matchLabels:
app: <app_name>
template:
metadata:
labels:
app: <app_name>
spec:
containers:
- image: <image_name>
name: <container_name>
volumeMounts:
- name: <volume_name>
mountPath: /<file_path>
volumes:
- name: <volume_name>
persistentVolumeClaim:
claimName: <pvc_name>
nodeSelector:
kubernetes.io/hostname: "<worker_node_primary_IP>"
Block Storage for VPC-Cluster-Add-on aktualisieren
Sie können das Block Storage for VPC-Cluster-Add-on mit dem Befehl addon update
aktualisieren.
Überprüfen das Änderungsprotokoll, bevor Sie das Add-on aktualisieren.
Bevor Sie von einem früheren Release auf ein ' 5.x
aktualisieren, dürfen Sie keine Volume-Snapshots im ' failure
Status haben. Weitere Informationen finden Sie unter Warum kann ich meine Block Storage for VPC nicht löschen?
-
Überprüfen Sie, ob eine Aktualisierung verfügbar ist. Wenn eine Aktualisierung verfügbar ist, dann ist die Plug-in-Version mit einem Stern markiert und die aktuelle Version wird angezeigt. Notieren Sie sich die aktuelle Version, da dieser Wert später verwendet wird.
ibmcloud oc cluster addons --cluster <cluster_name_or_ID>
Beispielausgabe
Name Version Health State Health Status vpc-block-csi-driver 1.0.0* (2.0.0 latest) normal Addon Ready
-
Aktualisieren Sie das Add-on. Beachten Sie, dass die Aktualisierungsbefehle je nach installierter Version unterschiedlich sind.
5.0 und höher Führen Sie den Befehl
addon update
aus.ibmcloud oc cluster addon update vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y]
Alle Versionen vor Version 5.0 Inaktivieren und aktivieren Sie das Add-on.
ibmcloud oc cluster addon disable vpc-block-csi-driver --cluster CLUSTER [-f] [-q]
ibmcloud oc cluster addon enable vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y]
-
Vergewissern Sie sich, dass sich das Add-on im Zustand
Addon Ready
(Add-on bereit) befindet. Es kann einige Minuten dauern, bis dass Add-on bereit ist.ibmcloud oc cluster addon ls --cluster <cluster_name_or_ID>
Beispielausgabe
Name Version Health State Health Status vpc-block-csi-driver 2.0.0 normal Addon Ready
Wenn Sie nicht die Speicherklasse
ibmc-vpc-block-10iops-tier
als Standardspeicherklasse verwenden, müssen Sie die Einstellungen für die Standardspeicherklasse in deraddon-vpc-block-csi-driver-configmap
-Konfigurationszuordnung ändern. Weitere Informationen finden Sie in Standardspeicherklasse ändern. -
Wenn Sie Ihre eigenen Speicherklassen auf der Grundlage der Standard-Speicherklassen Block Storage for VPC erstellt haben, müssen Sie diese Speicherklassen neu erstellen, um die Parameter zu aktualisieren. Weitere Informationen finden Sie unter Neuanlegen eigener Speicherklassen nach einem Update auf die Version 4.2.
Eigene Speicherklassen nach Aktualisierung auf Version 4.2 neu erstellen
In Version 4.2 wurden die Standardparameter für Speicherklassen geändert. Die Parameter sizeRange
und iopsRange
werden nicht mehr verwendet. Wenn Sie eigene Speicherklassen erstellt haben, die diese Parameter verwenden,
müssen Sie Ihre eigenen Speicherklassen bearbeiten, um diese Parameter zu entfernen. Um die Parameter in Ihren eigenen Speicherklassen zu ändern, müssen Sie diese löschen und neu anlegen. Zuvor wurden sizeRange
und iopsRange
als Referenzinformationen für jede Speicherklasse bereitgestellt. In Version 4.2 wurden diese Referenzinformationen entfernt. Informationen zu Blockspeicherprofilen, Größen und IOPs finden Sie jetzt in den Referenzinformationen für Blockspeicherprofile.
-
Um die Details Ihrer eigenen Speicherklassen zu finden, führen Sie den folgenden Befehl aus.
oc describe sc STORAGECLASS
-
Wenn die Speicherklasse
sizeRange
oderiopsRange
verwendet, rufen Sie den YAML-Code der Speicherklasse ab und speichern Sie ihn in einer Datei.oc get sc STORAGECLASS -o yaml
-
Entfernen Sie in der Datei, die Sie aus der Ausgabe des vorherigen Befehls gespeichert haben, die Parameter
sizeRange
oderiopsRange
. -
Löschen Sie die Speicherklasse aus Ihrem Cluster.
oc delete sc STORAGECLASS
-
Erstellen Sie die Speicherklasse in Ihrem Cluster unter Verwendung der zuvor erstellten Datei erneut.
oc apply -f custom-storage-class.yaml
Verschlüsselung für Block Storage for VPC einrichten
Erstellen Sie unter Verwendung eines KMS-Providers (Key Management Service) wie IBM® Key Protect einen privaten Rootschlüssel, der in Ihrer Block Storage for VPC-Instanz verwendet wird, um Daten zu verschlüsseln, die in den Speicher geschrieben werden. Nachdem Sie den privaten Root-Schlüssel erstellt haben, erstellen Sie Ihre eigene Speicherklasse oder ein Kubernetes Geheimnis mit Ihrem Root-Schlüssel und verwenden dann diese Speicherklasse oder dieses Geheimnis zur Bereitstellung Ihrer Block Storage for VPC Instanz.
Die Aktivierung der Verschlüsselung für Block Storage for VPC wirkt sich auf die Leistung um ca. 20% aus. Die genaue Auswirkung hängt jedoch von Ihrer Workerknoten-und Speicherdatenträgerkonfiguration ab. Berücksichtigen Sie bei der Aktivierung der Verschlüsselung die Auswirkungen auf die Leistung.
-
Erstellen Sie eine Instanz des KMS-Anbieters, den Sie verwenden möchten.
-
Erstellen Sie einen Stammschlüssel in Ihrer KMS-Instanz.
- Key Protect-Rootschlüssel.
- Hyper Protect Crypto Services-Rootschlüssel. Der Rootschlüssel wird standardmäßig ohne Ablaufdatum erstellt.
-
Autorisierung von Dienst zu Dienst einrichten. Berechtigen Sie Block Storage for VPC für den Zugriff auf IBM® Key Protect. Stellen Sie sicher, dass Block Storage for VPC mindestens
Reader
Zugriff auf Ihre KMS-Instanz hat. -
Entscheiden Sie, ob Sie den CRN des Key Protect-Rootschlüssels in einer angepassten Speicherklasse oder in einem geheimen Kubernetes-Schlüssel speichern wollen. Führen Sie anschließend die Schritte aus, um eine angepasste Speicherklasse oder einen geheimen Kubernetes-Schlüssel zu erstellen.
Beispiel für eine benutzerdefinierte Speicherklasse.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: <storage_class_name> # Enter a name for your storage class. provisioner: vpc.block.csi.ibm.io parameters: profile: "5iops-tier" csi.storage.k8s.io/fstype: "ext4" billingType: "hourly" encrypted: "true" encryptionKey: "<encryption_key>" resourceGroup: "" zone: "" tags: "" generation: "gc" classVersion: "1" reclaimPolicy: "Delete"
encrypted
- Geben Sie in die Parameter
true
ein, um eine Speicherklasse zu erstellen, die die Verschlüsselung für Ihre Block Storage for VPC Volumes einrichtet. Wenn Sie diese Option auftrue
setzen, müssen Sie die CRN des Stammschlüssels Ihrer Key Protect Service-Instanz angeben, die Sie inparameters.encryptionKey
verwenden möchten. encryptionKey
- Geben Sie unter "parameters" den CRN des Rootschlüssels ein, den Sie zuvor abgerufen haben.
Beispiel für geheimen Schlüssel für Kubernetes:
apiVersion: v1 kind: Secret type: vpc.block.csi.ibm.io metadata: name: <secret_name> namespace: <namespace_name> stringData: encrypted: <true_or_false> data encryptionKey: <encryption_key>
name
- Geben Sie einen Namen für Ihren geheimen Schlüssel ein.
namespace
- Geben Sie den Namensbereich ein, in dem Ihr geheimer Schlüssel erstellt werden soll.
encrypted
- Geben Sie in die Parameter
true
ein, um die Verschlüsselung für Ihre Block Storage for VPC Volumes einzurichten. encryptionKey
- Geben Sie unter "parameters" den CRN des Rootschlüssels Ihrer Key Protect-Serviceinstanz ein, den Sie zur Verschlüsselung Ihres Block Storage for VPC-Datenträgers verwenden möchten. Wenn Sie den CRN Ihres Rootschlüssels in einem
geheimen Schlüssel verwenden möchten, wandeln Sie ihn zuerst in base64 um, indem Sie
echo -n "<root_key_CRN>" | base64
ausführen.
-
Führen Sie die Schritte 4-9 unter Block Storage for VPC zu Ihren Apps hinzufügen aus, um einen PVC mit Ihrer angepassten Speicherklasse für die Bereitstellung von Block Storage for VPC mit Konfiguration für die Verschlüsselung mit Ihrem Key Protect-Rootschlüssel zu erstellen. Hängen Sie diesen Speicher anschließend an einen App-Pod an.
Das Anhängen des Speichers an die App und der Wechsel der App in den aktiven Status (Running) kann einige Minuten dauern.
-
Überprüfen Sie, ob Ihre Daten verschlüsselt werden. Listen Sie Ihre Block Storage for VPC-Datenträger auf und notieren Sie die ID der Instanz, die Sie erstellt haben. Der Name der Speicherinstanz stimmt mit dem Namen des persistenten Datenträgers (PV) überein, der automatisch erstellt wurde, als Sie den PVC erstellt haben.
ibmcloud is vols
Beispielausgabe
ID Name Status Capacity IOPS Profile Attachment type Created Zone Resource group a395b603-74bf-4703-8fcb-b68e0b4d6960 pvc-479d590f-ca72-4df2-a30a-0941fceeca42 available 10 3000 5iops-tier data 2019-08-17T12:29:18-05:00 us-south-1 a8a12accd63b437bbd6d58fb6a462ca7
-
Listen Sie mithilfe der ID des Datenträgers die Details für Ihre Block Storage for VPC-Instanz auf, um sich zu vergewissern, dass Ihr Key Protect-Rootschlüssel in der Speicherinstanz gespeichert wurde. Sie finden den Rootschlüssel im Feld Encryption key (Verschlüsselungsschlüssel) in der CLI-Ausgabe.
ibmcloud is vol <volume_ID>
Beispielausgabe
ID a395b603-74bf-4703-8fcb-b68e0b4d6960 Name pvc-479d590f-ca72-4df2-a30a-0941fceeca42 Status available Capacity 10 IOPS 3000 Profile 5iops-tier Encryption key crn:v1:bluemix:public:kms:us-south:a/6ef045fd2b43266cfe8e6388dd2ec098:53369322-958b-421c-911a-c9ae8d5156d1:key:47a985d1-5f5e-4477-93fc-12ce9bae343f Encryption user_managed Resource group a8a12accd63b437bbd6d58fb6a462ca7 Created 2019-08-17T12:29:18-05:00 Zone us-south-1 Volume Attachment Instance Reference
Standardspeichereinstellungen anpassen
Sie können einige Standardeinstellungen für die PVC ändern, indem Sie eine angepasste Speicherklasse oder einen geheimen Kubernetes-Schlüssel verwenden, um Block Storage for VPC mit Ihren angepassten Einstellungen zu erstellen.
- Welchen Vorteil hat die Verwendung eines Geheimnisses und die Angabe meiner Parameter in einer benutzerdefinierten Speicherklasse?
- Erstellen Sie als Clusteradministrator eine angepasste Speicherklasse, wenn alle von Ihren Clusterbenutzern erstellten PVCs mit einer bestimmten Konfiguration bereitgestellt werden sollen und verhindert werden soll, dass Ihre Clusterbenutzer die Standardkonfiguration überschreiben.
- Wenn jedoch mehrere Konfigurationen erforderlich sind und Sie keine angepasste Speicherklasse für jede mögliche PVC-Konfiguration erstellen möchten, können Sie eine angepasste Speicherklasse mit den PVC-Standardeinstellungen und einem Verweis auf einen generischen geheimen Kubernetes-Schlüssel erstellen. Wenn Ihre Clusterbenutzer die Standardeinstellungen Ihrer angepassten Speicherklasse überschreiben müssen, können sie dies tun, indem Sie einen geheimen Kubernetes-Schlüssel erstellen, der ihre angepassten Einstellungen enthält.
Wenn Sie die Verschlüsselung für Ihre Block Storage for VPC-Instanz einrichten möchten, können Sie auch einen geheimen Kubernetes-Schlüssel verwenden, wenn Sie den CRN des Key Protect-Rootschlüssels in Base64 codieren möchten, anstatt den Schlüssel direkt in der angepassten Speicherklasse anzugeben.
Standardspeicherklasse ändern
Mit Version 4.2 setzt das Cluster-Add-on Block Storage for VPC die Standardspeicherklasse auf die Klasse ibmc-vpc-block-10iops-tier
. Wenn Sie eine andere Standardspeicherklasse als ibmc-vpc-block-10iops-tier
festgelegt
haben und Ihre PVCs die Standardspeicherklasse verwenden, sind möglicherweise mehrere Standardspeicherklassen vorhanden. Dies kann zu Fehlern bei der PVC-Erstellung führen. Wenn Sie eine andere Standardspeicherklasse als ibmc-vpc-block-10iops-tier
verwenden möchten, können Sie addon-vpc-block-csi-driver-configmap
aktualisieren, um IsStorageClassDefault
auf 'false' zu setzen.
Die Standardspeicherklasse für das Cluster-Add-on Block Storage for VPC ist die Speicherklasse ibmc-vpc-block-10iops-tier
.
-
Bearbeiten Sie die Datei
addon-vpc-block-csi-driver-configmap
.oc edit cm addon-vpc-block-csi-driver-configmap -n kube-system
-
Ändern Sie die Einstellung
IsStorageClassDefault
infalse
. -
Speichern Sie die Änderung und beenden Sie den Vorgang.
-
Warten Sie 15 Minuten und überprüfen Sie die Änderung, indem Sie die Details der Speicherklasse
ibmc-vpc-block-10iops-tier
abrufen.oc get sc ibmc-vpc-block-10iops-tier -o yaml
Eigene Speicherklasse erstellen
Erstellen Sie Ihre eigene angepasste Speicherklasse, die die für Ihre Block Storage for VPC-Instanz bevorzugten Einstellungen aufweist.
SSD definierte Leistungsprofile (SDP) sind in Dallas, Frankfurt, London, Madrid, Osaka, Sao Paulo, Sydney, Tokio, Toronto und Washington verfügbar, D.C. Die Erstellung von Snapshots für SSD definierte Leistungsprofile ist in Dallas, Frankfurt, Tokio und Washington verfügbar, D.C.
Wenn Sie möchten, können Sie Ihre eigene Speicherklasse erstellen:
- Angepassten Wert für E/A-Operationen pro Sekunde festlegen.
- Block Storage for VPC mit einem anderen Dateisystemtyp als
ext4
einrichten. - Verschlüsselung einrichten.
- SSD definierte Leistung einrichten.
- Vorbereitende Schritte
- Prüfen Sie die Speicherklassenreferenz, um das Profil (
profile
) zu ermitteln, das Sie für Ihre Speicherklasse verwenden möchten. - Sie können auch die angepassten Profile prüfen, wenn Sie für Ihre Block Storage for VPC-Instanz angepasste E/A-Operationen pro Sekunde angeben möchten.
- Wenn Sie ein SSD-definiertes Leistungsprofil (SDP) verwenden möchten, prüfen Sie den Kapazitätsbereich und die IOPs-Details. Beachten Sie, dass bei der Verwendung einer SSD definierten Leistung, die Kapazität des Volumes durch die IOPs und den Durchsatz, die Sie angeben, bestimmt wird.
- Sie können eine vorhandene Speicherklasse als Ausgangspunkt für die Erstellung Ihrer eigenen Klasse verwenden. Speichern Sie die Details einer bestehenden Speicherklasse mit dem Befehl
oc get sc <storageclass> -o yaml
.
-
Erstellen Sie die Konfigurationsdatei einer angepassten Speicherklasse.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: <storage_class_name> provisioner: vpc.block.csi.ibm.io parameters: profile: "<profile>" # general-purpose, sdp, 5iops-tier, 10iops-tier, or custom csi.storage.k8s.io/fstype: "<file_system_type>" # xfs, ext3, or ext4 billingType: "hourly" encrypted: "<encrypted_true_false>" encryptionKey: "<encryption_key>" resourceGroup: "" zone: "<zone>" region: "<region>" tags: "<tags>" generation: "gc" throughput: "<throughput>" # Example: 2000 classVersion: "1" iops: "<iops>" # Only specify this parameter if you are using a "custom" profile. allowVolumeExpansion: (true|false) # Select true or false. Only supported on version 3.0.1 and later volumeBindingMode: <volume_binding_mode> # csi.storage.k8s.io/provisioner-secret-name: # Uncomment and add secret parameters to enforce encryption. # csi.storage.k8s.io/provisioner-secret-namespace: reclaimPolicy: "<reclaim_policy>"
name
- Geben Sie einen Namen für Ihre Speicherklasse ein.
profile
- Geben Sie das Profil ein, das Sie im vorherigen Schritt ausgewählt haben. Wählen Sie
general-purpose
,sdp
,5iops-tier
,10iops-tier
oder verwenden Sie einen benutzerdefinierten IOPs-Wert. Um die unterstützten Speichergrößen für ein bestimmtes Profil zu finden, siehe Profil "Tiered IOPS". Alle PVCs, die diese Speicherklasse verwenden, müssen einen Größenwert angeben, der in diesem Bereich liegt. csi.storage.k8s.io/fstype
- Geben Sie im Abschnitt 'parameters' das Dateisystem für Ihre Block Storage for VPC-Instanz ein. Wählen Sie
xfs
,ext3
oderext4
aus. Wenn Sie die Eigentümerschaft oder die Berechtigungen Ihres Datenträgers ändern möchten, müssen Sie diecsi.storage.k8s.io/fstype
in Ihrer eigenen Speicherklasse angeben und Ihre PVC mussReadWriteOnce
alsaccessMode
haben. Der Treiber Block Storage for VPC verwendet denReadWriteOnceWithFSType
fsGroupPolicy
. Weitere Informationen finden Sie in der CSI-Treiberdokumentation. encrypted
- Geben Sie in den Parametern
true
ein, um eine Speicherklasse zu erstellen, die die Verschlüsselung für Ihr Block Storage for VPC Volume einrichtet. Wenn Sie diese Option auftrue
setzen, müssen Sie die CRN des Stammschlüssels Ihrer Key Protect Service-Instanz angeben, die Sie inparameterencryptionKey
verwenden möchten. Weitere Informationen zum Verschlüsseln Ihrer Daten finden Sie unter Verschlüsselung für Block Storage for VPC einrichten. encryptionKey
- Wenn Sie
true
fürparameters.encrypted
eingegeben haben, geben Sie die CRN des Root-Schlüssels Ihrer Dienstinstanz Key Protect ein, die Sie für die Verschlüsselung des Volumes Block Storage for VPC verwenden möchten. Weitere Informationen zum Verschlüsseln Ihrer Daten finden Sie unter Verschlüsselung für Block Storage for VPC einrichten. zone
- Geben Sie unter "parameters" die VPC-Zone ein, in der Sie die Block Storage for VPC-Instanz erstellen möchten. Stellen Sie sicher, dass Sie eine Zone verwenden, mit der Ihre Workerknoten verbunden sind. Um die VPC-Zonen aufzulisten,
die Ihre Worker Nodes verwenden, führen Sie
ibmcloud oc cluster get --cluster <cluster_name_or_ID>
aus und sehen Sie sich das Feld Worker Zones in Ihrer CLI-Ausgabe an. Wenn Sie keine Zone angeben, wird automatisch eine der Workerknotenzonen für Ihre Block Storage for VPC-Instanz ausgewählt. region
- Die Region des Workerknotens, für den Speicher zugeordnet werden soll.
tags
- Geben Sie in die Parameter eine durch Leerzeichen getrennte Liste von Tags ein, die auf Ihre Block Storage for VPC-Instanz angewendet werden sollen. Tags können Ihnen helfen, Instanzen leichter zu finden oder Ihre Instanzen auf Basis allgemeiner Merkmale zu gruppieren, z. B. nach der App oder der Umgebung, für die sie verwendet wird.
iops
- Wenn Sie
custom
odersdp
fürprofile
eingegeben haben, geben Sie einen Wert für die IOPs ein, die Sie für Block Storage for VPC verwenden möchten. In der Tabelle Angepasstes Block Storage for VPC-Profil für E/A-Operationen pro Sekunde finden Sie eine nach Datenträgergröße geordnete Liste der unterstützten Bereiche für E/A-Operationen pro Sekunde. throughput
- Geben Sie diesen Wert ein, wenn Sie ein
sdp
Profil verwenden. Weitere Informationen finden Sie in den IOPs und Durchsatzdetails für das SDP-Profil reclaimPolicy
- Geben Sie Rückforderungsrichtlinie für Ihre Speicherklasse ein. Wenn Sie den PV, die physische Speichereinheit und Ihre Daten beim Entfernen des PVC beibehalten möchten, geben Sie
Retain
ein. Wenn Sie den PV, die physische Speichereinheit und Ihre Daten beim Entfernen des PVC löschen möchten, geben SieDelete
ein. allowVolumeExpansion
- Geben Sie die Datenträgererweiterungsrichtlinie für Ihre Speicherklasse ein. Wenn Sie die Datenträgererweiterung zulassen möchten, geben Sie
true
ein. Wenn Sie die Datenträgererweiterung nicht zulassen möchten, geben Siefalse
ein. volumeBindingMode
- Legen Sie fest, ob die Erstellung der Block Storage for VPC-Instanz verzögert werden soll, bis der erste Pod, der diesen Speicher verwendet, zur Terminierung bereit ist. Zum Verzögern der Erstellung geben Sie
WaitForFirstConsumer
ein. Geben Sie beim Erstellen der PVCImmediate
ein, um die Instanz zu erstellen.
-
Erstellen Sie die angepasste Speicherklasse in Ihrem Cluster.
oc apply -f custom-storageclass.yaml
-
Überprüfen Sie, ob Ihre Speicherklasse im Cluster verfügbar ist.
oc get sc
Beispielausgabe
NAME PROVISIONER AGE <custom-storageclass> vpc.block.csi.ibm.io 4m26s
-
Führen Sie die Schritte unter Block Storage for VPC zu Apps hinzufügen aus, um einen Persistent Volume Claim (PVC) mit Ihrer angepassten Speicherklasse zu erstellen und Block Storage for VPC bereitzustellen. Hängen Sie diesen Speicher anschließend an eine Beispielapp an.
-
Optional: Überprüfen Sie den Dateisystemtyp Ihrer Block Storage for VPC-Instanz.
Block Storage for VPC-Dateisystem überprüfen
Sie können eine angepasste Speicherklasse erstellen, um Block Storage for VPC mit einem anderen Dateisystem wie zum Beispiel xfs
oder ext3
bereitzustellen. Standardmäßig werden alle Block Storage for VPC-Instanzen
mit einem Dateisystem ext4
bereitgestellt.
-
Führen Sie die Schritte zum Erstellen einer angepassten Speicherklasse bei dem Dateisystem aus, das Sie verwenden möchten.
-
Führen Sie die unter Block Storage for VPC zu Apps hinzufügen beschriebenen Schritte 4 bis 9 aus, um einen Persistent Volume Claim (PVC) mit Ihrer angepassten Speicherklasse für die Bereitstellung von Block Storage for VPC mit einem anderen Dateisystem zu erstellen. Hängen Sie diesen Speicher anschließend an einen App-Pod an.
Das Anhängen des Speichers an die App und der Wechsel der App in den aktiven Status (Running) kann einige Minuten dauern.
-
Überprüfen Sie, ob Ihr Speicher mit dem richtigen Dateisystem angehängt wurde. Listen Sie die Pods in Ihrem Cluster auf und notieren Sie sich den Namen des Pods, den Sie zum Anhängen Ihres Speichers verwendet haben.
oc get pods
-
Melden Sie sich bei Ihrem Pod an.
oc exec <pod_name> -it bash
-
Listen Sie die Mountpfade in Ihrem Pod auf.
mount | grep /dev/xvdg
Beispielausgabe für
xfs
./dev/xvdg on /test type xfs (rw,relatime,attr2,inode64,noquota)
-
Verlassen Sie den Pod.
exit
aktualisieren VolumeAttachLimit
In den Versionen 5.2
und höher des Block Storage for VPC-Cluster-Add-ons können Sie die maximale Anzahl von Datenträgern, die jedem Knoten zugeordnet werden können, durch Bearbeiten der Konfigurationszuordnung bearbeiten. Der
Standardwert ist 12
.
Zur Verwendung dieser Funktion muss Ihr Konto genehmigt sein.
-
Bearbeiten Sie die Konfigurationszuordnung. Ersetzen Sie
VALUE
durch den Grenzwert für Datenträgerzuordnung, den Sie festlegen möchten.kubectl patch configmap/addon-vpc-block-csi-driver-configmap \ -n kube-system \ --type merge \ -p '{"data":{"VolumeAttachmentLimit":"VALUE"}}'
-
Warten Sie, bis die
ibm-vpc-block-csi-node
-Pods im Namensbereichkube-system
erneut gestartet wurden. Überprüfen Sie, ob die Pods erneut gestartet wurden.kubectl get pods -n kube-system -w| grep block-csi
-
Sie können Ihren Workerknoten jetzt mithilfe der dynamischen Bereitstellung oder durch manuelles Erstellen der Anhänge Datenträger zuordnen. Weitere Informationen finden Sie unter Block Storage for VPC zu Ihren Apps hinzufügen oder unter Vorhandene Block Storage for VPC-Instanz verwenden.
Angepasste PVC-Einstellungen in einem geheimen Kubernetes-Schlüssel speichern
Geben Sie Ihre PVC-Einstellungen in einem geheimen Kubernetes-Schlüssel an und verweisen Sie in einer angepassten Speicherklasse auf diesen geheimen Schlüssel. Verwenden Sie anschließend die angepasste Speicherklasse, um einen PVC mit den angepassten Parametern zu erstellen, die Sie in Ihrem geheimen Schlüssel festgelegt haben.
- Welche Möglichkeiten habe ich, das Geheimnis von Kubernetes zu nutzen?
- Als Clusteradministrator können Sie wählen, ob Sie jedem Clusterbenutzer die Möglichkeit geben möchten, die Standardeinstellungen einer Speicherklasse zu überschreiben, oder ob Sie einen geheimen Schlüssel erstellen möchten, den alle in Ihrem Cluster verwenden müssen und der die Base64-Codierung für den CRN Ihres Key Protect-Rootschlüssels erzwingt.
- Jeder Benutzer kann die Standardeinstellungen anpassen
- In diesem Szenario erstellt der Cluster-Administrator eine benutzerdefinierte Speicherklasse mit den Standard-PVC-Einstellungen und einem Verweis auf einen geheimen generischen Kubernetes-Schlüssel. Clusterbenutzer können die Standardeinstellungen der Speicherklasse überschreiben, indem sie einen geheimen Kubernetes-Schlüssel mit den gewünschten PVC-Einstellungen erstellen. Damit die angepassten Einstellungen in dem geheimen Schlüssel auf Ihre Block Storage for VPC-Instanz angewendet werden können, müssen Sie einen PVC mit demselben Namen wie Ihr geheimer Kubernetes-Schlüssel erstellen.
- Erzwingen der base64-Codierung für den Key Protect-Stammschlüssel
- In diesem Szenario erstellen Sie eine benutzerdefinierte Speicherklasse mit den Standard-PVC-Einstellungen und einem Verweis auf einen geheimen statischen Kubernetes-Schlüssel, der die Standardeinstellungen der benutzerdefinierten Speicherklasse überschreibt oder erweitert. Ihre Clusterbenutzer können die Standardeinstellungen nicht überschreiben, indem sie eigene geheime Kubernetes-Schlüssel erstellen. Stattdessen müssen die Clusterbenutzer Block Storage for VPC mit der Konfiguration bereitstellen, die Sie in Ihrer angepassten Speicherklasse und dem geheimen Schlüssel gewählt haben. Der Vorteil dieser Methode im Vergleich zum Erstellen nur einer angepassten Speicherklasse ist, dass Sie die Base64-Codierung für den CRN des Rootschlüssels Ihrer Key Protect-Serviceinstanz erzwingen können, wenn Sie die Daten in Ihrer Block Storage for VPC-Instanz verschlüsseln möchten.
- Was muss ich beachten, bevor ich das Geheimnis Kubernetes für meine PVC-Einstellungen verwende?
- Einige PVC-Einstellungen, wie z. B.
reclaimPolicy
,fstype
, odervolumeBindingMode
, können nicht im Geheimnis Kubernetes eingestellt werden und müssen in der Speicherklasse eingestellt werden. Wenn Sie als Clusteradministrator Ihren Clusterbenutzern die Möglichkeit geben möchten, Ihre Standardeinstellungen zu überschreiben, müssen Sie darauf achten, genügend angepasste Speicherklassen einzurichten, die auf einen generischen geheimen Kubernetes-Schlüssel verweisen, damit Ihre Benutzer Block Storage for VPC mit unterschiedlichen Einstellungen fürreclaimPolicy
,fstype
undvolumeBindingMode
bereitstellen können.
Allen Benutzern das Anpassen der PVC-Standardeinstellungen ermöglichen
-
Führen Sie als Clusteradministrator die Schritte zum Erstellen einer angepassten Speicherklasse aus. In der YAML-Datei der benutzerdefinierten Speicherklasse referenzieren Sie den geheimen Kubernetes-Schlüssel im Abschnitt
metadata.parameters
wie folgt. Stellen Sie sicher, dass der Code unverändert hinzugefügt wird und dass auch die Namen der Variablen nicht geändert werden.csi.storage.k8s.io/provisioner-secret-name: ${pvc.name} csi.storage.k8s.io/provisioner-secret-namespace: ${pvc.namespace}
-
Erstellen Sie als Clusterbenutzer einen geheimen Kubernetes-Schlüssel, der die Standardeinstellungen der Speicherklasse anpasst.
apiVersion: v1 kind: Secret type: vpc.block.csi.ibm.io metadata: name: <secret_name> namespace: <namespace_name> stringData: iops: "<IOPS_value>" zone: "<zone>" tags: "<tags>" encrypted: <true_or_false> resourceGroup: "<resource_group>" data encryptionKey: <encryption_key>
name
- Geben Sie einen Namen für Ihren geheimen Kubernetes-Schlüssel ein.
namespace
- Geben Sie den Namensbereich ein, in dem Ihr geheimer Schlüssel erstellt werden soll. Um auf den geheimen Schlüssel in Ihrem PVC zu verweisen, muss das PVC in demselben Namensbereich erstellt werden.
iops
- Geben Sie im Abschnitt "stringData" den IOPS-Bereich für Ihre Block Storage for VPC-Instanz ein. Der Bereich, den Sie eingeben, muss mit dem Block Storage for VPC-Tier übereinstimmen, den Sie verwenden wollen.
zone
- Geben Sie im Abschnitt "stringData" die VPC-Zone ein, in der Sie die Block Storage for VPC-Instanz erstellen möchten. Stellen Sie sicher, dass Sie eine Zone verwenden, mit der Ihre Workerknoten verbunden sind. Um die VPC-Zonen
aufzulisten, die Ihre Worker Nodes verwenden, führen Sie
ibmcloud oc cluster get --cluster <cluster_name_or_ID>
aus und sehen Sie sich das Feld Worker Zones in Ihrer CLI-Ausgabe an. Wenn Sie keine Zone angeben, wird automatisch eine der Workerknotenzonen für Ihre Block Storage for VPC-Instanz ausgewählt. tags
- Geben Sie im Abschnitt "stringData" eine Liste mit durch Kommas getrennten Tags ein, die beim Erstellen des PVC verwendet werden sollen. Tags können Ihnen helfen, Ihre Speicherinstanz zu finden, nachdem sie erstellt wurde.
resourceGroup
- Geben Sie im Abschnitt Stringdaten die ID der Ressourcengruppe ein, auf die Ihre Block Storage for VPC-Instanz Zugriff erhalten soll. Wenn Sie keine Ressourcengruppe eingeben, wird die Instanz automatisch für den Zugriff auf Ressourcen der Ressourcengruppe berechtigt, zu der Ihr Cluster gehört.
encrypted
- Geben Sie im Abschnitt für die Zeichenkette
true
ein, um ein Geheimnis zu erstellen, das die Verschlüsselung für Block Storage for VPC Volumes einrichtet. Wenn Sie diese Option auftrue
setzen, müssen Sie die CRN des Stammschlüssels Ihrer Key Protect Service-Instanz angeben, die Sie inparameters.encryptionKey
verwenden möchten. Weitere Informationen zum Verschlüsseln Ihrer Daten finden Sie unter Einrichten der Verschlüsselung für Ihr Block Storage for VPC. encryptionKey
- Wenn Sie
true
fürparameters.encrypted
eingegeben haben, geben Sie im Datenbereich die Stammschlüssel-CRN Ihrer Key Protect Service-Instanz ein, die Sie zur Verschlüsselung Ihrer Block Storage for VPC Volumes verwenden möchten. Wenn Sie den CRN Ihres Rootschlüssels in einem geheimen Schlüssel verwenden möchten, wandeln Sie ihn zuerst in base64 um, indem Sieecho -n "<root_key_CRN>" | base64
ausführen. Weitere Informationen zum Verschlüsseln Ihrer Daten finden Sie unter Verschlüsselung für Block Storage for VPC einrichten.
-
Erstellen Sie Ihren geheimen Kubernetes-Schlüssel.
oc apply -f secret.yaml
-
Führen Sie die Schritte unter Block Storage for VPC zu Apps hinzufügen aus, um einen Persistent Volume Claim (PVC) mit Ihren angepassten Einstellungen zu erstellen. Stellen Sie sicher, dass Sie den PVC mit der angepassten Speicherklasse erstellen, die der Clusteradministrator erstellt hat, und verwenden Sie denselben Namen für Ihren PVC, den Sie auch für Ihren geheimen Schlüssel verwendet haben. Wenn derselbe Name für den geheimen Schlüssel und den PVC verwendet wird, bewirkt dies, dass der Speicherprovider die Einstellungen des geheimen Schlüssels in Ihrem PVC anwendet.
Base64-Codierung für den CRN des Key Protect-Rootschlüssels erzwingen
-
Erstellen Sie als Clusteradministrator einen geheimen Kubernetes-Schlüssel, der den Base64-codierten Wert für Ihren CRN des Key Protect-Rootschlüssels enthält. Informationen zum Abrufen des CRN des Rootschlüssels finden Sie unter Verschlüsselung für Block Storage for VPC einrichten.
apiVersion: v1 kind: Secret type: vpc.block.csi.ibm.io metadata: name: <secret_name> namespace: <namespace_name> stringData: encrypted: <true_or_false> resourceGroup: "<resource_group>" data: encryptionKey: <encryption_key>
name
- Geben Sie einen Namen für Ihren geheimen Kubernetes-Schlüssel ein.
namespace
- Geben Sie den Namensbereich ein, in dem Ihr geheimer Schlüssel erstellt werden soll. Um auf den geheimen Schlüssel in Ihrem PVC zu verweisen, muss das PVC in demselben Namensbereich erstellt werden.
encrypted
- Geben Sie im Abschnitt für die Zeichenkette
true
ein, um ein Geheimnis zu erstellen, das die Verschlüsselung für Block Storage for VPC Volumes einrichtet. Wenn Sie diese Option auftrue
setzen, müssen Sie die CRN des Stammschlüssels Ihrer Key Protect Service-Instanz angeben, die Sie inparameters.encryptionKey
verwenden möchten. Weitere Informationen zum Verschlüsseln Ihrer Daten finden Sie unter Einrichten der Verschlüsselung für Ihr Block Storage for VPC. encryptionKey
- Wenn Sie
true
fürparameters.encrypted
eingegeben haben, geben Sie im Datenbereich die Stammschlüssel-CRN Ihrer Key Protect-Dienstinstanz ein, die Sie zur Verschlüsselung Ihres Block Storage for VPC-Volumes verwenden möchten. Wenn Sie den CRN des Rootschlüssels in einem geheimen Schlüssel verwenden möchten, wandeln Sie ihn zuerst in 'base64' um, indem Sieecho -n "<root_key_CRN>" | base64
ausführen. Weitere Informationen zum Verschlüsseln Ihrer Daten finden Sie unter Verschlüsselung für Block Storage for VPC einrichten.
-
Erstellen Sie den geheimen Kubernetes-Schlüssel.
oc apply -f secret.yaml
-
Führen Sie die Schritte zum Erstellen einer angepassten Speicherklasse aus. In der YAML-Datei der benutzerdefinierten Speicherklasse referenzieren Sie den geheimen Kubernetes-Schlüssel im Abschnitt
metadata.parameters
wie folgt. Sie müssen den Namen des geheimen Kubernetes-Schlüssels eingeben, den Sie zuvor erstellt haben, und den Namensbereich, in dem Sie den geheimen Schlüssel erstellt haben.csi.storage.k8s.io/provisioner-secret-name: <secret_name> csi.storage.k8s.io/provisioner-secret-namespace: <secret_namespace>
-
Führen Sie als Clusterbenutzer die Schritte unter Block Storage for VPC zu Apps hinzufügen aus, um einen PVC von Ihrer angepassten Speicherklasse aus zu erstellen.
Datenträgererweiterung einrichten
Um Datenträger bereitzustellen, die die Erweiterung unterstützen, müssen Sie eine Speicherklasse verwenden, für die allowVolumeExpansion
auf true
gesetzt ist.
Sie können nur Datenträger erweitern, die von einem App-Pod angehängt werden.
-
Wenn Sie nicht die Version
4.2
oder höher des Add-ons verwenden, aktualisieren Sie das Block Storage for VPC cluster add-on in Ihrem Cluster. -
Erstellen Sie eine PVC, die eine Speicherklasse mit Unterstützung für die Datenträgererweiterung verwendet.
-
Implementieren Sie eine App, die Ihren PVC verwendet. Wenn Sie Ihre App erstellen, notieren Sie sich den von Ihnen angegebenen
mountPath
. -
Nachdem Ihr PVC von einem App-Pod eingerichtet wurde, können Sie Ihren Datenträger erweitern, indem Sie den Wert des Feldes
spec.resources.requests.storage
in Ihrem PVC bearbeiten. Um Ihren Datenträger zu erweitern, bearbeiten Sie Ihren PVC und erhöhen Sie den Wert im Feldspec.resources.requests.storage
.oc edit pvc <pvc-name>
Beispiel
spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
-
Speichern und schließen Sie die PVC.
-
Optional: Stellen Sie sicher, dass Ihr Datenträger erweitert wird. Besorgen Sie sich die Details zu Ihrem PVC und notieren Sie sich den PV-Namen.
oc get pvc <pvc-name>
-
Beschreiben Sie Ihr PV und notieren Sie sich die Datenträger-ID.
oc describe PV
-
Ermitteln Sie die Details zu Ihrem Block Storage for VPC-Datenträger und überprüfen Sie die Kapazität.
ibmcloud is vol <volume-ID>
Manuelles Erweitern von Volumes vor der Add-on-Version 4.2
Führen Sie die folgenden Schritte aus, um Ihre vorhandenen Block Storage for VPC Volumes, die vor der Version 4.2 des Add-Ons erstellt wurden, manuell zu erweitern.
Sie können nur Datenträger erweitern, die von einem App-Pod angehängt werden.
-
Rufen Sie die Details Ihrer Anwendung ab und notieren Sie sich den PVC-Namen und den Wert für
mountPath
.oc get pod <pod-name> -n <pod-namespace> -o yaml
-
Besorgen Sie sich die Details zu Ihrem PVC und notieren Sie sich den PV-Namen.
oc get pvc
-
Beschreiben Sie Ihren PV und rufen Sie die
volumeId
ab.oc describe pv `pv-name` | grep volumeId
Beispielausgabe für die Datenträger-ID
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1
.volumeId=r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1
-
Ändern Sie die Größe des Datenträgers mithilfe einer PATCH-Anforderung. Im folgenden Beispiel wird die Größe eines Datenträgers auf 250 GiB geändert.
curl -sS -X PATCH -H "Authorization: <iam_token>" "https://<region>.iaas.cloud.ibm.com/v1/volumes/<volumeId>?generation=2&version=2020-06-16" -d '{"capacity":250}'
<iam_token>
- Ihr IAM-Token. Um Ihr IAM-Token abzurufen, führen Sie
ibmcloud iam oauth-tokens
aus. <region>
- Die Region, in der sich Ihr Cluster (z. B.
us-south
). <volumeId>
- Die Datenträger-ID, die Sie zuvor abgerufen haben. Beispiel:
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1
. <capacity>
- Die erhöhte Kapazität in GiB, z. B.
250
.
-
Melden Sie sich bei Ihrem App-Pod an.
oc exec <pod-name> -it -- bash
-
Führen Sie den folgenden Befehl aus, um Hostbinärdateien zu verwenden.
chroot /host
-
Besorgen Sie sich die Dateisystemdetails und notieren Sie sich den Pfad
Filesystem
, den Sie aktualisieren möchten. Sie können auchgrep
für den Mountpfad verwenden, wie in Ihrem Anwendungspod angegeben.df -h | grep <mount-path>
.df -h
Beispielausgabe
Filesystem Size Used Avail Use% Mounted on overlay 98G 64G 29G 70% / tmpfs 64M 0 64M 0% /dev tmpfs 32G 0 32G 0% /sys/fs/cgroup shm 64M 0 64M 0% /dev/shm /dev/vda2 98G 64G 29G 70% /etc/hosts /dev/vdg 9.8G 37M 9.8G 1% /mount-path # Note the Filesystem path that corresponds to the mountPath that you specified in your app. tmpfs 32G 40K 32G 1% /run/secrets/kubernetes.io/serviceaccount tmpfs 32G 0 32G 0% /proc/acpi tmpfs 32G 0 32G 0% /proc/scsi tmpfs 32G 0 32G 0% /sys/firmware
-
Ändern Sie die Größe des Dateisystems.
sudo resize2fs <filesystem-path>
Beispielbefehl
sudo resize2fs /dev/vdg
-
Überprüfen Sie, ob die Größe des Dateisystems geändert wurde.
df -h
Daten sichern und wiederherstellen
Die Daten in Block Storage for VPC sind über redundante Fehlerzonen in Ihrer Region gesichert. Wenn Sie Ihre Daten manuell sichern wollen, verwenden Sie den Kubernetes-Befehl oc cp
.
Sie können den Befehl oc cp
verwenden, um Dateien und Verzeichnisse in und aus Pods oder bestimmten Containern
in Ihrem Cluster zu kopieren
Vorbereitende Schritte: Greifen Sie auf Ihren Red Hat OpenShift-Cluster zu.
Zur Sicherung oder Wiederherstellung Ihrer Daten wählen Sie eine der folgenden Optionen aus:
Kopieren Sie Daten von Ihrem lokalen Rechner auf einen Pod in Ihrem Cluster.
oc cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath>
Kopieren Sie Daten von einem Pod in Ihrem Cluster auf Ihren lokalen Rechner.
oc cp <namespace>/<pod>:<pod_filepath>/<filename> <local_filepath>/<filename>
Kopieren Sie Daten von Ihrem lokalen Rechner in einen bestimmten Container, der in einem Pod Ihres Clusters läuft.
oc cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath> -c CONTAINER
Informationen zur Kapazität von Datenträgeranforderungen
Der VPC Block CSI Driver berechnet die Datenträgerkapazität anhand der folgenden Formel.
-
Wenn der Wert in
Gi
angegeben wird: rBytes(requestedBytes) = X * 1024^3 -
Wenn der Wert in
G
angegeben wird: rBytes(requestedBytes) = X * 10^9
Der angeforderte Wert ist gleich (((rBytes+ GiB - 1) / GiB) * GiB) / GiB
.
Zum Beispiel:
- Wenn unter Anwendung der obigen Formel der Wert
20Gi
angegeben wird, wird der Datenträger20GB
erstellt. - Wenn der Wert
20G
angegeben wird, wird der Datenträger19GB
erstellt.
Manchmal ist die Kapazität des erstellten Datenträgers kleiner als der angeforderte Wert. Beachten Sie, dass die Abrechnung für den Datenträger gilt, der erstellt wird, nicht für den angeforderten Datenträger.