Lokaler Speicher-Datei und Block
Einrichten von dauerhaftem Speicher mit lokalen Block- oder Dateivolumes für IBM Cloud Satellite®-Cluster. Zum Erstellen von Speicherkonfigurationen können Sie Satellite-Speichervorlagen verwenden. Wenn Sie Ihren Clustern eine Speicherkonfiguration zuweisen, werden die Speichertreiber des ausgewählten Speicherproviders auf Ihrem Cluster installiert.
Voraussetzungen
Bevor Sie eine lokale Speicherkonfiguration erstellen können, müssen Sie die Worker-Knoten in Ihren Clustern identifizieren, die über die erforderlichen verfügbaren Festplatten verfügen. Versehen Sie diese Workerknoten anschließend mit Bezeichnungen (Labels), sodass die Treiber für lokalen Speicher nur auf diesen Workerknoten installiert werden.
-
Stellen Sie sicher, dass Sie über die folgenden Berechtigungen verfügen.
- Editor für den Abrechnungsservice.
- Manager und Editor für den Kubernetes-Service.
- Satellite Link Administrator und Reader für den Satellite-Service.
-
Erstellen Sie einen Satellite-Cluster.
- Stellen Sie sicher, dass Sie beim Erstellen des Clusters die Option Clusteradministratorzugriff für Satellite Config auswählen. Wenn Sie beim Erstellen Ihres Clusters den Administratorzugriff (admin) für Satellite Config nicht aktivieren, müssen Sie Ihren Cluster erneut erstellen und den Administratorzugriff aktivieren, bevor Sie Speicher bereitstellen können.
-
Implementieren Sie den Operator für lokalen Speicher. Um lokalen Datei-oder Blockspeicher einzurichten, müssen Sie den Operator für lokalen Speicher implementieren.
-
Stellen Sie sicher, dass die Workerknoten in Ihrem Cluster, die Sie in Ihrer Speicherkonfiguration verwenden wollen, mindestens eine lokale Platte zusätzlich zu den Platten haben, die für Satellite erforderlich sind. Die zusätzlichen Platten müssen unformatiert sein.
-
Versehen Sie die Workerknoten mit einer Bezeichnung, die eine verfügbare Platte haben und die Sie in Ihrer Konfiguration verwenden wollen. Die lokalen Speichertreiber werden nur auf den markierten Worker-Knoten installiert.
Abrufen der Gerätedaten für Ihre lokale Speicherkonfiguration
Wenn Sie Ihre lokale Speicherkonfiguration erstellen, müssen Sie angeben, welche Geräte Sie verwenden möchten. Die Einheitenpfade, die Sie in den folgenden Schritten abrufen, werden bei der Erstellung Ihrer Konfiguration als Parameter angegeben.
-
Melden Sie sich bei Ihrem Cluster an und rufen Sie eine Liste der verfügbaren Workerknoten ab. Notieren Sie die Workerknoten, die Sie in Ihrer Konfiguration verwenden wollen.
oc get nodes -
Melden Sie sich bei jedem Workerknoten an, den Sie für die Speicherkonfiguration Ihres lokalen Speichers verwenden wollen.
oc debug node/<node-name> -
Wenn der Debug-Pod auf dem Workerknoten bereitgestellt wurde, führen Sie die folgenden Befehle aus, um die verfügbaren Platten auf dem Workerknoten aufzulisten.
- Lassen Sie Host-Binärdateien zu.
chroot /host ``` 1. Listen Sie Ihre Geräte auf. ```sh {: pre} lsblk ``` 1. Rufen Sie die Details zu Ihren Einheiten ab. Vergewissern Sie sich, dass die Einheiten, die Sie verwenden wollen, nicht angehängt und unformatiert sind. ```sh {: pre} fdisk -l ``` -
Listen Sie die verfügbaren Blockspeicherplatten auf Ihrem Workerknoten auf. Sie müssen nicht angehängte Platten für die lokale Speicherkonfiguration verwenden. In der folgenden Beispielausgabe für den Befehl
lsblkist die Plattenvme2n1nicht angehängt und hat keine Partitionen.NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:3 0 100G 0 disk |-nvme0n1p1 259:4 0 1M 0 part `-nvme0n1p2 259:5 0 100G 0 part / nvme1n1 259:0 0 20G 0 disk nvme2n1 259:1 0 20G 0 disk nvme3n1 259:2 0 139.7G 0 disk /var/data -
Wiederholen Sie die vorherigen Schritte für jeden Worker-Knoten, den Sie für Ihre lokale Speicherkonfiguration verwenden möchten.
Workerknoten mit Bezeichnungen versehen
Nachdem Sie die Einheitenpfade für die Platten abgerufen haben, die Sie in Ihrer Konfiguration verwenden wollen, versehen Sie die Workerknoten, auf denen sich die Platten befinden, mit Bezeichnungen (Labels).
-
Rufen Sie die IP-Adressen der Workerknoten ab.
oc get nodes -
Versehen Sie die Workerknoten, die Sie abgerufen haben, mit einer Bezeichnung. Die Treiber für lokalen Speicher werden auf den Workerknoten mit dieser Bezeichnung bereitgestellt. Sie können die Bezeichnung
storage=local-blockim Beispielbefehl verwenden oder Sie können eine eigene Bezeichnung im Formatkey=valueerstellen.oc label nodes <worker-IP> <worker-IP> <worker-IP> "storage=local-block"Beispielausgabe
node/<worker-IP> labeled node/<worker-IP> labeled node/<worker-IP> labeled -
Überprüfen Sie, ob die Bezeichnung den Workerknoten hinzugefügt wurde, die Sie verwenden wollen. Führen Sie den folgenden Befehl aus, um die Bezeichnungen auf Ihren Workerknoten anzuzeigen und die Bezeichnung hervorzuheben, die Sie im vorherigen Schritt hinzugefügt haben.
oc get nodes --show-labels | grep --color=always storage=local-block
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 1.0.0.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-storage --template-version 1.0.0 --param "install-local-storage-file=INSTALL-LOCAL-STORAGE-FILE" --param "auto-discover-devices-file=AUTO-DISCOVER-DEVICES-FILE" --param "file-nodes-label-key=FILE-NODES-LABEL-KEY" --param "file-nodes-label-value=FILE-NODES-LABEL-VALUE" --param "file-devicepath=FILE-DEVICEPATH" --param "fstype=FSTYPE" --param "install-local-storage-block=INSTALL-LOCAL-STORAGE-BLOCK" --param "auto-discover-devices-block=AUTO-DISCOVER-DEVICES-BLOCK" --param "block-nodes-label-key=BLOCK-NODES-LABEL-KEY" --param "block-nodes-label-value=BLOCK-NODES-LABEL-VALUE" --param "block-devicepath=BLOCK-DEVICEPATH" -
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 1.0.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\": \"local-storage\", \"storage-template-version\": \"1.0.0\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"INSTALL-LOCAL-STORAGE-FILE\", { \"entry.name\": \"AUTO-DISCOVER-DEVICES-FILE\", { \"entry.name\": \"FILE-NODES-LABEL-KEY\", { \"entry.name\": \"FILE-NODES-LABEL-VALUE\", { \"entry.name\": \"FILE-DEVICEPATH\", { \"entry.name\": \"FSTYPE\", { \"entry.name\": \"INSTALL-LOCAL-STORAGE-BLOCK\", { \"entry.name\": \"AUTO-DISCOVER-DEVICES-BLOCK\", { \"entry.name\": \"BLOCK-NODES-LABEL-KEY\", { \"entry.name\": \"BLOCK-NODES-LABEL-VALUE\", { \"entry.name\": \"BLOCK-DEVICEPATH\",\"user-secret-parameters\": }
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
Manuelles Upgrade von Konfigurationen in der Befehlszeilenschnittstelle
Sie können Ihre Satellite-Speicherkonfigurationen aktualisieren, um die neueste Version der Speichervorlage innerhalb derselben Hauptversion zu erhalten.
-
Listen Sie Ihre Satellite-Speicherkonfigurationen auf und notieren Sie sich die Satellite-Konfiguration, für die Sie ein Upgrade durchführen wollen.
ibmcloud sat storage config ls -
Führen Sie das Upgrade der Satellite-Konfiguration durch. Beachten Sie, dass nur die Konfiguration aktualisiert wird. Wenn Sie die Zuordnungen aktualisieren möchten, die diese Konfiguration verwenden, können Sie die Option
--include-assignmentsangeben oder jede Zuordnung manuell mit dem Befehlassignment updateaktualisieren.Beispielbefehl für ein Upgrade einer Konfiguration auf die neueste Überarbeitung.
ibmcloud sat storage config upgrade --config CONFIG [--include-assignments]Beispielbefehl für ein Upgrade einer Konfiguration und der ihr zugeordneten Zuordnungen auf die letzte Überarbeitung.
ibmcloud sat storage config upgrade --config CONFIG --include-assignments
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 lokalen Speicher nutzt
Nachdem Sie eine lokale Speicherkonfiguration erstellt und Ihren Clustern zugewiesen haben, können Sie eine App erstellen, die Ihren lokalen Blockspeicher nutzt.
Sie können Ihre PVCs bestimmten persistenten Datenträgern (PVs) zuordnen, indem Sie Ihre persistenten Datenträger mit Bezeichnungen versehen. Weitere Informationen finden Sie in der Dokumentation zu Kubernetes unter dem Stichwort Selektoren.
-
Speichern Sie die folgende YAML-Datei mit dem Namen
local-pvc.yamlfür Ihre PVC auf Ihrer lokalen Maschine.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: local-pvc spec: accessModes: - ReadWriteOnce volumeMode: Block resources: requests: storage: 20Gi # Important: Ensure that size of your claim is not larger than the local disk. storageClassName: sat-local-block-gold -
Erstellen Sie die PVC in Ihrem Cluster.
oc create -f local-pvc.yaml -
Überprüfen Sie, ob Ihre PVC erstellt wurde. Beachten Sie, dass die Speicherklasse
volumeBindingModeden Wertsat-local-block-goldfür den Datenträgerbindungsmodus (waitForFirstConsumer) hat.oc get pvc | grep localUm sicherzustellen, dass Ihre Pods auf Worker-Knoten mit Speicher terminiert werden, oder um sicherzustellen, dass die Apps, für die Speicher erforderlich ist, nicht von anderen Pods verprellt werden, können Sie
nodeAffinityangeben und die Pods-Priorität festlegen. Weitere Informationen finden Sie in der Dokumentation zu Kubernetes unter den Themen Pod-Priorität und Preemption sowie Festlegen der Knotenaffinität. -
Stellen Sie einen App-Pod bereit, der Ihre PVC für lokalen Speicher verwendet. Speichern Sie das folgende Beispiel eines YAML-Codes für eine App als Datei mit dem Namen
app.yamlauf Ihrer lokalen Maschine. In diesem Beispiel stellt die SpezifikationnodeAffinitysicher, dass dieser Pod nur auf einem Worker-Knoten mit dem angegebenen Label eingeplant wird.apiVersion: v1 kind: Pod metadata: name: app spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: storage # Enter the 'key' of the worker node label created earlier. operator: In values: - local-block # Enter the 'value' of the worker label that you created earlier. containers: - name: nginx image: nginx volumeDevices: - name: data devicePath: "/dev/nvme2n1" # Enter the path to your local device. volumes: - name: data persistentVolumeClaim: claimName: local-pvc -
Erstellen Sie den App-Pod in Ihrem Cluster.
oc create -f app.yaml -
Melden Sie sich bei Ihrem App-Pod an und überprüfen Sie, ob Sie auf Ihre lokale Platte schreiben können.
kubectl exec <pod_name> -it bash -
Wechseln Sie in den Ordner
dev.cd dev -
Führen Sie den Befehl
ls -lR <device-path>aus, um Ihre Gerätedaten zu überprüfen und sicherzustellen, dass Ihr App-Pod Lese- und Schreibberechtigungen für Ihr Blockgerät besitzt, was inbrwder Befehlsausgabe durch angezeigt wird.ls -lR /dev/nvme2n1Beispielausgabe
brw-rw-rw-. 1 root disk 202, 32 Mar 3 21:24 /dev/nvme2n1 -
Optional: Führen Sie die folgenden Befehle aus, um Daten auf Ihre Blockeinheit zu schreiben.
- Schreiben Sie auf
"block_data"das lokale Speichergerät, das Sie in Ihrer App eingebunden haben. Ersetzen Sie<device-path>durch den Pfad zu Ihrem Speichermedium. Beispiel:/dev/nvme2n1.
kubectl exec <pod_name> -- bash -c "echo "block_data" | dd conv=unblock of=<device-path>" ``` 2. Überprüfen Sie, ob die Daten auf Ihre Einheit geschrieben wurden. Ersetzen Sie `<device-path>` durch den Pfad für die Speichereinheit. Beispiel: `/dev/nvme2n1`. ```sh {: pre} kubectl exec <pod_name> -- bash -c "od -An -c -N 10 <device-path>" ``` Beispielausgabe ```sh {: screen} b l o c k _ d a t a ``` - Schreiben Sie auf
-
Löschen Sie den Testpod (
test).oc delete pod <pod_name>
Eine Speicherkonfiguration aus der Konsole entfernen
- Wählen Sie im Dashboard für den Satellite-Speicher die Speicherkonfiguration aus, die gelöscht werden soll.
- Wählen Sie Aktionen > Löschen.
- Geben Sie den Namen Ihrer Speicherkonfiguration ein.
- Wählen Sie Löschen aus.
Entfernen der Konfiguration des lokalen Speichers über die Befehlszeile
-
Listen Sie die Ressourcen im Namensbereich
local-storageauf. Wenn Sie Ihre Speicherzuweisung löschen, werden diese Ressourcen entfernt.oc get all -n local-storageBeispielausgabe
NAME READY STATUS RESTARTS AGE pod/local-disk-local-diskmaker-clvg6 1/1 Running 0 29h pod/local-disk-local-diskmaker-kqddq 1/1 Running 0 29h pod/local-disk-local-diskmaker-p6z9q 1/1 Running 0 29h pod/local-disk-local-provisioner-dw5g7 1/1 Running 0 29h pod/local-disk-local-provisioner-hxd9n 1/1 Running 0 29h pod/local-disk-local-provisioner-tfg95 1/1 Running 0 29h pod/local-storage-operator-df4994656-7826l 1/1 Running 0 29h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/local-storage-operator ClusterIP 172.21.147.17 <none> 60000/TCP 29h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/local-disk-local-diskmaker 3 3 3 3 3 <none> 29h daemonset.apps/local-disk-local-provisioner 3 3 3 3 3 <none> 29h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/local-storage-operator 1/1 1 1 29h NAME DESIRED CURRENT READY AGE replicaset.apps/local-storage-operator-df4994656 1 1 1 29h -
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. Wenn die Zuweisung entfernt wird, werden die Treiberpods und Speicherklassen für den lokalen Speicher aus allen Clustern entfernt, die Teil der Speicherzuweisung waren.
ibmcloud sat storage assignment rm --assignment <assignment_ID> -
Listen Sie die Ressourcen im Namensbereich
local-storageauf und überprüfen Sie, ob die Treiberpods für den lokalen Speicher entfernt wurden.oc get all -n local-storageBeispielausgabe
No resources found in local-storage namespace. -
Listen Sie die Speicherklassen in Ihrem Cluster auf und überprüfen Sie, ob die Speicherklassen für den lokalen Speicher entfernt wurden.
oc get sc -
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> ``` -
Listen Sie Ihre PVCs auf und notieren Sie den Namen der PVC, die Sie entfernen wollen.
oc get pvc -
Entfernen Sie alle Pods, die die PVC zurzeit 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} app sat-local-block-gold ``` 2. Entfernen Sie den Pod, der den PVC verwendet. Wenn der Pod Teil einer Bereitstellung ist, entfernen Sie die Bereitstellung. ```sh {: pre} oc delete pod <pod_name> ``` ```sh {: pre} oc delete deployment <deployment-name> ``` 3. Überprüfen Sie, ob der Pod bzw. die Bereitstellung entfernt wurde. ```sh {: pre} oc get pods ``` ```sh {: pre} oc get deployments ``` -
Löschen Sie die PVC. Da alle von IBM bereitgestellten Speicherklassen für lokalen Blockspeicher mit der Rückforderungsrichtlinie 'Beibehalten' (
Retain) angegeben sind, werden der PV und die PVC nicht automatisch gelöscht, wenn Sie Ihre App oder Bereitstellung löschen.oc delete pvc <pvc-name> -
Überprüfen Sie, ob Ihre PVC entfernt wurde.
oc get pvc -
Listen Sie Ihre PVs auf und notieren Sie den Namen der PVs, die Sie entfernen wollen.
oc get pv -
Löschen Sie die PVs. Durch das Löschen der PVs werden Ihre Platten für andere Workloads verfügbar gemacht.
oc delete pv <pv-name> -
Überprüfen Sie, ob Ihr PV entfernt wurde.
oc get pv
Parameterreferenz
1.0.0-Parameterreferenz
| Anzeigename | CLI-Option | Typ | Beschreibung | Standardwert |
|---|---|---|---|---|
| Dateispeichertreiber installieren | install-local-storage-file |
Konfiguration | Auf 'true' setzen, um den Dateispeichertreiber zu installieren. | true |
| Automatische Datenträgererkennung für Dateispeicher | auto-discover-devices-file |
Konfiguration | Setzen Sie diese Eigenschaft auf 'true', wenn die Datenträger auf Ihren Workerknoten automatisch erkannt und für die Dateispeicherung verwendet werden sollen. | false |
| Kennsatzschlüssel für Dateispeicher-Workerknoten | file-nodes-label-key |
Konfiguration | Der 'Schlüssel' der Bezeichnung 'key = value' des Workerknotens, den Sie für den Dateispeicher verwenden möchten. | Nicht zutreffend |
| Kennsatzwert für Dateispeicher-Workerknoten | file-nodes-label-value |
Konfiguration | Der Wert der Bezeichnung 'key = value' des Workerknotens, den Sie für den Dateispeicher verwenden möchten. | Nicht zutreffend |
| Einheitenpfad für Dateispeicher | file-devicepath |
Konfiguration | Der Pfad zu den Speichereinheiten auf Ihrem Workerknoten, die Sie für die Dateispeicherung verwenden wollen Beispiel: '/dev/sdc'. Diese Option ist erforderlich, wenn 'auto-discover-devices-file' auf ' false' gesetzt ist. | Nicht zutreffend |
| Dateisystemtyp | fstype |
Konfiguration | Der Typ des Dateisystems. Geben Sie 'ext3', 'ext4' oder 'xfs' an. | ext4 |
| Blockspeichertreiber installieren | install-local-storage-block |
Konfiguration | Auf 'true' setzen, um den Blockspeichertreiber zu installieren. | true |
| Automatische Datenträgererkennung für Blockspeicher | auto-discover-devices-block |
Konfiguration | Geben Sie 'true' an, wenn Sie die Datenträger auf Ihren Workerknoten automatisch erkennen und für Blockspeicher verwenden möchten. | false |
| Kennsatzschlüssel für Blockspeicher-Workerknoten | block-nodes-label-key |
Konfiguration | Der 'Schlüssel' des Workerknotens 'key = value', den Sie für Blockspeicher verwenden möchten. | Nicht zutreffend |
| Bezeichnungswert für Blockspeicher-Workerknoten | block-nodes-label-value |
Konfiguration | Der 'Wert' der Bezeichnung 'key = value' des Workerknotens, den Sie für Blockspeicher verwenden möchten. | Nicht zutreffend |
| Einheitenpfad für lokalen Speicherblock | block-devicepath |
Konfiguration | Der Pfad zu den Speichereinheiten auf Ihrem Workerknoten, die Sie für Blockspeicher verwenden wollen. Beispiel: '/dev/sdc'. Diese Option ist erforderlich, wenn 'auto-discover-devices-block' auf ' false' gesetzt ist. | Nicht zutreffend |