VMware Blocktreiber für Container Storage Interface (CSI)
Mit VMware Container Storage Interface (CSI) Driver können Sie den Lebenszyklus Ihrer VMware-Blockdatendatenträger verwalten.
Voraussetzungen
Bevor Sie eine VMware-Blockspeicherkonfiguration erstellen können, müssen Sie die folgenden Voraussetzungen erfüllen:
- Überprüfen Sie, ob vSphere Version 6.7U3 oder höher ausgeführt wird.
- Überprüfen Sie, ob die Hardwareversion Ihrer virtuellen Maschine Version 15 oder höher ist.
- Überprüfen Sie, ob Masterknoten mit der vCenter-Managementschnittstelle kommunizieren können.
- Inaktivieren Sie den Austausch auf allen Knoten.
- Aktivieren Sie die Platten-UUID auf allen virtuellen Maschinen des Knotens.
- Implementieren Sie vSAN in Ihrer vSphere-Umgebung. Weitere Informationen finden Sie in der Dokumentation zu vSAN.
Bevor Sie Speichervorlagen in Clustern an Ihrem Standort bereitstellen können, müssen Sie Satellite Config einrichten, indem Sie in der Konsole die Option Enable cluster admin access for Satellite Config (Cluster-Administrationszugriff für Config aktivieren ) auswählen oder bei der Erstellung Ihres Clusters die Option --enable-config-admin angeben.
Sie können den Satellite Speicherdienst nicht auf Ressourcengruppen ausweiten. Wenn Sie jedoch andere Ressourcen wie Standorte und Cluster zu Ressourcengruppen zusammenfassen, müssen Sie Satellite reader und link administrator role für alle Ressourcen im Konto hinzufügen.
Konfiguration in der Konsole erstellen und zuordnen
-
Wählen Sie in der Standortkonsole den Standort aus, an dem Sie eine Speicherkonfiguration erstellen möchten.
-
Wählen Sie Speicher > Speicherkonfiguration erstellen aus
-
Geben Sie einen Namen für Ihre Konfiguration ein.
-
Wählen Sie den Speichertyp aus.
-
Wählen Sie die Version aus und klicken Sie auf Weiter
-
Wenn der von Ihnen ausgewählte Speichertyp benutzerdefinierte Parameter akzeptiert, geben Sie sie auf der Registerkarte Parameter ein.
-
Wenn der von Ihnen ausgewählte Speichertyp geheime Schlüssel erfordert, geben Sie sie auf der Registerkarte Geheime Schlüssel ein.
-
Überprüfen Sie auf der Registerkarte Speicherklassen die Speicherklassen, die von der Konfiguration implementiert werden, oder erstellen Sie eine angepasste Speicherklasse.
-
Wählen Sie auf der Registerkarte Service zuordnen den Service aus, dem Sie Ihre Konfiguration zuordnen wollen.
-
Klicken Sie auf Abschließen, um Ihre Speicherkonfiguration zuzuordnen.
Konfiguration in der Befehlszeilenschnittstelle erstellen
-
Überprüfen Sie die Parameterreferenz für die Vorlagenversion, die Sie verwenden wollen.
-
Melden Sie sich bei der IBM Cloud-CLI an.
ibmcloud login -
Listen Sie Ihre Satellite Standorte auf und notieren Sie die Spalte
Managed from.ibmcloud sat location ls -
Wählen Sie die Region
Managed fromIhrer Position Satellite aus. Beispiel: Fürwdc-Zielus-east. Weitere Informationen finden Sie unter Satellite Regionen.ibmcloud target -r us-east -
Wenn Sie eine andere Ressourcengruppe als
defaultverwenden, wählen Sie sie aus.ibmcloud target -g RESOURCE_GROUP -
Kopieren Sie einen der folgenden Beispielbefehle für die Vorlagenversion, die Sie verwenden möchten. Weitere Informationen zu dem Befehl finden Sie unter
ibmcloud sat storage config createin der Befehlsreferenz.Beispielbefehl zum Erstellen einer Konfiguration der Version 2.7.0.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name vsphere-csi-driver --template-version 2.7.0 --param "vcenter-username=VCENTER-USERNAME" --param "vcenter-password=VCENTER-PASSWORD" --param "insecure-flag=INSECURE-FLAG" --param "host=HOST" --param "datacenters=DATACENTERS" --param "thumbprint=THUMBPRINT" -
Passen Sie den Befehl basierend auf den Einstellungen an, die Sie verwenden möchten.
-
Führen Sie den Befehl aus, um eine Konfiguration zu erstellen.
-
Überprüfen Sie, ob Ihre Konfiguration erstellt wurde.
ibmcloud sat storage config get --config CONFIG
Konfiguration in der API erstellen
-
Generieren Sie einen API-Schlüssel und fordern Sie anschließend ein Aktualisierungstoken an. Weitere Informationen finden Sie im Abschnitt zur Generierung eines IBM Cloud IAM-Token mithilfe eines API-Schlüssels.
-
Überprüfen Sie die Parameterreferenz für die Vorlagenversion, die Sie verwenden wollen.
-
Kopieren Sie eine der folgenden Beispielanforderungen und ersetzen Sie die Variablen, die Sie verwenden möchten.
Beispielanforderung zum Erstellen einer Konfiguration der Version 2.7.0.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"vsphere-csi-driver\", \"storage-template-version\": \"2.7.0\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"INSECURE-FLAG\", { \"entry.name\": \"HOST\", { \"entry.name\": \"DATACENTERS\",\"user-secret-parameters\": { \"entry.name\": \"VCENTER-USERNAME\",{ \"entry.name\": \"VCENTER-PASSWORD\",{ \"entry.name\": \"THUMBPRINT\",}
Erstellen einer Zuweisung in der CLI
-
Listen Sie Ihre Speicherkonfigurationen auf und notieren Sie sich die Speicherkonfiguration, die Sie Ihren Clustern zuweisen möchten.
ibmcloud sat storage config ls -
Rufen Sie die ID des Clusters, der Clustergruppe oder des Dienstes ab, dem Sie Speicher zuweisen möchten.
Um sicherzustellen, dass Ihr Cluster bei Satellite Config oder zum Erstellen von Gruppen registriert ist, lesen Sie die Informationen im Abschnitt Cluster für die Verwendung mit Satellite Configeinrichten.
Beispielbefehl zum Auflisten von Clustergruppen.
ibmcloud sat group lsBeispielbefehl zum Auflisten von Clustern.
ibmcloud oc cluster ls --provider satelliteBeispielbefehl zum Auflisten von Satellite-Services.
ibmcloud sat service ls --location LOCATION -
Ordnen Sie Ihre Speicherkonfiguration dem Cluster, der Gruppe bzw. dem Service zu, den Sie zuvor abgerufen haben. Weitere Informationen finden Sie unter dem Befehl
ibmcloud sat storage assignment create.Beispielbefehl zum Zuordnen einer Konfiguration zu einer Clustergruppe.
ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAMEBeispielbefehl für die Zuordnung einer Konfiguration zu einem Cluster
ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAMEBeispielbefehl zum Zuordnen einer Konfiguration zu einem Service-Cluster.
ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME -
Überprüfen Sie, ob Ihre Zuweisung erstellt wurde.
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
Speicherzuordnung in der API erstellen
-
Kopieren Sie eine der folgenden Beispielanforderungen:
Beispielanforderung zum Zuordnen einer -Konfiguration zu einem Cluster.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"Beispielanforderung zum Zuordnen der Konfiguration zu einer Clustergruppe.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}" -
Ersetzen Sie die Variablen durch Ihre Details und führen Sie die Anforderung aus.
-
Überprüfen Sie, ob die Zuordnung erstellt wurde, indem Sie Ihre Zuordnungen auflisten.
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
Speicherzuordnungen in der Konsole aktualisieren
Sie können die Satellite-Konsole verwenden, um die neuesten Patchaktualisierungen auf Ihre Zuordnungen anzuwenden.
-
Wählen Sie auf der Seite Positionen in der Satellite-KonsoleIhren Standort aus.
-
Klicken Sie auf die Registerkarte Speicher, um Ihre Konfigurationen anzuzeigen.
-
Klicken Sie auf die Konfiguration, die Sie aktualisieren möchten.
-
Klicken Sie auf das Informationssymbol Informationen (i), um die letzte Überarbeitung oder Programmkorrektur anzuwenden.
-
Optional: Aktivieren Sie automatische Patchaktualisierungen für Ihre Speicherzuordnung. Die Aktivierung automatischer Patchaktualisierungen stellt sicher, dass Ihre Zuordnung immer über die neuesten Sicherheitskorrekturen verfügt.
Wenn Sie automatische Patchaktualisierungen aktivieren, müssen Sie die Hauptaktualisierungen dennoch manuell anwenden.
Zuordnungen in der Befehlszeilenschnittstelle manuell aktualisieren
Aktualisieren Sie eine Zuordnung, um die neueste Speichervorlagenrevision zu verwenden.
-
Listen Sie Ihre Satellite-Speicherzuordnungen auf und notieren Sie sich die Satellite-Zuordnung, für die Sie ein Upgrade durchführen möchten.
ibmcloud sat storage assignment ls -
Listen Sie die Satellite-Speichervorlagen auf, um die neuesten verfügbaren Versionen anzuzeigen.
ibmcloud sat storage template ls -
Aktualisieren Sie die Satellite-Zuordnung.
Beispielbefehl für das Upgrade einer Zuordnung.
ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
Automatische Patchaktualisierungen für Konfigurationen und Zuordnungen in der Befehlszeilenschnittstelle aktivieren
Sie können die sat storage assignment autopatch enable-CLI verwenden, um automatische Patchaktualisierungen für Ihre Zuordnungen zu aktivieren. Durch die Aktivierung automatischer Patchaktualisierungen werden die neuesten Speichervorlagenrevisionen
(Patches) automatisch angewendet. Sie müssen wichtige Aktualisierungen dennoch manuell anwenden.
-
Listen Sie Ihre Satellite-Speicherkonfigurationen auf. Notieren Sie sich die Konfigurations-ID.
ibmcloud sat storage assignment ls -
Führen Sie einen der folgenden Beispielbefehle aus, um automatische Patchaktualisierungen für Ihre Konfiguration und die zugehörigen Zuordnungen zu aktivieren. Geben Sie die Konfigurations-ID ein, die Sie im vorherigen Schritt abgerufen haben.
Beispielbefehl zum Aktivieren automatischer Patchaktualisierungen für eine Zuordnung.
ibmcloud sat storage assignment autopatch enable --config CONFIG (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])Beispielbefehl zum Aktivieren automatischer Patchaktualisierungen für alle Speicherzuordnungen in einer bestimmten Konfiguration.
ibmcloud sat storage assignment autopatch enable --config CONFIG --allBeispielbefehl zum Inaktivieren der automatischen Patchaktualisierungen für alle Zuordnungen in einer bestimmten Konfiguration.
ibmcloud sat storage assignment autopatch disable --config CONFIG --allBeispielbefehl zum Inaktivieren von automatischen Patchaktualisierungen für eine einzelne Zuordnung und eine bestimmte Konfiguration
ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-IDBeispielbefehl zum Inaktivieren automatischer Patchaktualisierungen für eine Mehrfachzuordnung und eine bestimmte Konfiguration.
ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
Upgrade für Konfiguration und Zuordnungen in der API durchführen
Sie können die /v2/storage/satellite/updateAssignment-API verwenden, um Ihre Zuordnungen mit neuen Clustern oder Clustergruppen
zu aktualisieren. Setzen Sie updateConfigVersion auf true, um die Revisionsaktualisierung anzuwenden.
-
Kopieren Sie die folgende Beispielanforderung und ersetzen Sie die Variablen für die Clustergruppen und Zuordnungen, die Sie aktualisieren wollen.
curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}" -
Führen Sie die Anforderung aus.
-
Rufen Sie die Details Ihrer Zuordnung ab, um die Aktualisierung zu überprüfen.
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
Automatische Patchaktualisierungen für Zuordnungen in der API aktivieren
Sie können die /v2/storage/satellite/setAssignmentAutoupgrade-API verwenden, um automatische Patchaktualisierungen für Ihre Zuordnungen zu aktivieren. Durch die Aktivierung automatischer Patchaktualisierungen werden die neuesten
Speichervorlagenrevisionen (Patches) automatisch angewendet. Sie müssen wichtige Aktualisierungen dennoch manuell anwenden.
-
Kopieren Sie die folgende Beispielanforderung und ersetzen Sie die Variablen für die Clustergruppen und Zuordnungen, die Sie aktualisieren wollen.
curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } } -
Führen Sie die Anforderung aus.
-
Rufen Sie die Details Ihrer Zuordnung ab, um das Upgrade zu überprüfen.
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
Bereitstellung einer App, die VMware nutzt
Mit vmware-csi-driver können Sie PVCs erstellen, die Sie in Ihren Cluster-Workloads verwenden können.
-
Erstellen Sie ein PVC, das auf die zuvor erstellte Speicherklasse verweist.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: podpvc spec: accessModes: - ReadWriteOnce storageClassName: sat-vsphere-vsan-block-metro resources: requests: storage: 10Gi -
Erstellen Sie die PVC in Ihrem Cluster.
oc apply -f podpvc.yaml -
Erstellen Sie eine YAML-Konfigurationsdatei für einen Pod, an den der von Ihnen erstellte PVC angehängt wird.
apiVersion: v1 kind: Pod metadata: name: web-server spec: containers: - name: #web-server image: nginx command: - "/bin/sh" - "-c" - while true; do echo $(date) >> /mnt/vmwaredisk/outfile; sleep 1; done volumeMounts: mountPath: /mnt/vmwaredisk name: mypvc volumes: - name: mypvc persistentVolumeClaim: claimName: podpvc readOnly: false -
Erstellen Sie den Pod in Ihrem Cluster.
oc apply -f mypvc.yaml -
Überprüfen Sie, ob der Pod bereitgestellt wurde. Beachten Sie, dass es einige Minuten dauern kann, bis Ihre App einen bestimmten Zustand
Runningerreicht.oc get podsNAME READY STATUS RESTARTS AGE my-pvc 1/1 Running 0 2m58s -
Überprüfen Sie, ob die App auf Ihren Blockspeicherdatenträger schreiben kann, indem Sie sich bei Ihrem Pod anmelden.
oc exec -it web-server /bin/bash -
Zeigen Sie den Inhalt der Datei
outfilean, um zu bestätigen, dass Ihre App Daten in Ihren persistenten Speicher schreiben kann.cat outfileBeispielausgabe
Fri Jul 16 07:49:39 EDT 2021 Fri Jul 16 07:49:39 EDT 2021 Fri Jul 16 07:49:39 EDT 2021 -
Verlassen Sie den Pod.
exit
VMware-Speicher aus Ihren Anwendungen entfernen
Wenn Sie Ihre VMware-Konfiguration nicht mehr benötigen, können Sie Ihre Apps, PVCs, PVs und Zuordnungen aus Ihren Clustern entfernen.
-
Listen Sie Ihre PVCs auf und notieren Sie den Namen der PVC, die Sie entfernen wollen.
oc get pvc -
Entfernen Sie alle Pods, die den Persistent Volume Claim anhängen.
- Listen Sie alle Pods auf, die derzeit den PVC anhängen, den Sie löschen möchten. Wenn keine Pods zurückgegeben werden, haben Sie keine Pods, die Ihre PVC zurzeit verwenden.
oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>" ``` Beispielausgabe ```sh {: screen} NAME READY STATUS RESTARTS AGE web-server 1/1 Running 0 55s ``` 1. Entfernen Sie den Pod, der den PVC verwendet. Wenn der Pod Teil einer Bereitstellung oder eines StatefulSets ist, entfernen Sie die Bereitstellung oder das StatefulSet. ```sh {: pre} oc delete pod <pod_name> ``` ```sh {: pre} oc delete deployment <deployment_name> ``` ```sh {: pre} oc delete statefulset <statefulset_name> ``` 1. Überprüfen Sie, ob der Pod, die Implementierung, oder das StatefulSet entfernt wurde. ```sh {: pre} oc get pods ``` ```sh {: pre} oc get deployments ``` ```sh {: pre} oc get statefulset ``` -
Löschen Sie die PVC.
oc delete pvc <pvc_name> -
Überprüfen Sie, ob Ihr PV automatisch entfernt wurde.
oc get pv
Entfernen der Speicherkonfiguration VMware aus Ihrem Cluster
Wenn Sie nicht mehr vorhaben, VMware in Ihrem Cluster zu verwenden, können Sie die Zuordnung Ihres Clusters zur Speicherkonfiguration über die CLI aufheben.
Durch das Entfernen der Speicherkonfiguration wird der Treiber aus allen zugewiesenen Clustern entfernt. Ihre PVCs, PVs und Daten werden nicht entfernt. Sie können jedoch erst wieder auf Ihre Daten zugreifen, wenn Sie den Treiber in Ihrem Cluster erneut installiert haben.
Entfernen der VMware-Speicherkonfiguration über die Konsole
- Wählen Sie im Dashboard für den Satellite-Speicher die Speicherkonfiguration aus, die gelöscht werden soll.
- Wählen Sie Aktionen > Löschen aus
- Geben Sie den Namen Ihrer Speicherkonfiguration ein.
- Wählen Sie Löschen aus.
VMWare-Speicherkonfiguration über die Befehlszeile entfernen
-
Listen Sie Ihre Speicherzuweisungen auf und ermitteln Sie diejenige, die für Ihren Cluster verwendet wurde.
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER) -
Entfernen Sie die Zuweisung. Nachdem die Zuordnung entfernt wurde, werden die Treiberpods und -Speicherklassen aus allen Clustern entfernt, die Teil der Speicherzuordnung waren.
ibmcloud sat storage assignment rm --assignment <assignment_ID> -
Überprüfen Sie, ob der Treiber aus dem Cluster entfernt wurde.
- Listen Sie die Speicherklassen in Ihrem Cluster auf und überprüfen Sie, ob die Speicherklassen entfernt werden.
oc get sc ``` 2. Listen Sie die Pods im Namensbereich `kube-system` auf und überprüfen Sie, ob die Speichertreiber-Pods entfernt werden. ```sh {: pre} oc get pods -n kube-system | grep vsphere ``` -
Optional: Entfernen Sie die Speicherkonfiguration.
- Listen Sie die Speicherkonfigurationen auf.
ibmcloud sat storage config ls ``` 2. Entfernen Sie die Speicherkonfiguration. ```sh {: pre} ibmcloud sat storage config rm --config <config_name> ```
Parameterreferenz
2.7.0 Parameterreferenz
| Anzeigename | CLI-Option | Typ | Beschreibung | Standardwert |
|---|---|---|---|---|
| vCenter-Benutzername | vcenter-username |
Secret | Der vCenter-Benutzername. Sie müssen den Benutzernamen zusammen mit dem Domänennamen angeben. Beispiel: 'Administrator@vsphere.local'. | Nicht zutreffend |
| vCenter-Kennwort | vcenter-password |
Secret | Das Benutzerkennwort des vCenter-Servers. | Nicht zutreffend |
| Unsichere Verbindung | insecure-flag |
Konfiguration | Schließen Sie das 'insecure-flag' ein. true' zeigt an, dass Sie das Kennzeichen einbeziehen wollen, das ein selbstsigniertes Zertifikat für die Anmeldung verwendet. false' zeigt an, dass Sie eine sichere Verbindung verwenden. Wenn Sie 'false' auswählen, müssen Sie einen SSL-Fingerabdruck angeben. | false |
| vCenter-Host | host |
Konfiguration | Die IP-Adresse des vCenter-Servers. | Nicht zutreffend |
| vCenter-Rechenzentren | datacenters |
Konfiguration | Listen Sie alle Rechenzentrumspfade, in denen Host-VMs vorhanden sind, durch Kommas getrennt auf. Geben Sie den Namen des Rechenzentrums an, wenn es sich im Stammverzeichnis befindet. Wenn es sich in einem Ordner befindet, müssen Sie den Pfad als 'Ordner/Name des Rechenzentrums' angeben. | Nicht zutreffend |
| Fingerabdruck des SSL-Zertifikats | thumbprint |
Secret | Der SSL-Fingerabdruck, der zum Herstellen einer sicheren Verbindung zum VC verwendet werden soll. | Nicht zutreffend |
Hilfe und Support für VMware
Wenn ein Problem mit VMware auftritt, senden Sie eine Unterstützungsanforderung an VMware Support.