Kapazitätskontingente für Apps festlegen, die IBM Cloud Object Storage verwenden
Virtuelle Private Cloud Klassische Infrastruktur
Mit IBM Cloud Object Storage können Sie dynamisch Buckets für Anwendungen bereitstellen, die in Ihren Red Hat OpenShift on IBM Cloud Clustern laufen. Sie können für diese Buckets während der Bereitstellung auch dynamisch Kapazitätskontingente festlegen. Kontingente können Ihnen helfen, die Ressourcen, die Ihre Workloads nutzen, zu verwalten und unnötige Kosten zu vermeiden.
Ziele
In diesem Lernprogramm installieren Sie das Plug-in Object Storage in Ihrem Cluster und aktivieren Kontingente für alle PVCs, die mit dem Plug-in erstellt wurden.
Anschließend erstellen Sie einen PVC, der dynamisch ein Bucket mit einem Kontingentgrenzwert in Ihrer Object Storage-Instanz erstellt.
Anschließend laden Sie eine Datei in Ihr Bucket hoch und stellen eine einfache App in Ihrem Cluster bereit, die das Bucket anhängt und den Inhalt dieser Datei druckt.
Voraussetzungen
Vergewissern Sie sich vor Beginn dieses Tutorials, dass Sie die folgenden Ressourcen und Werkzeuge erstellt oder installiert haben.
- Ein IBM Cloud-Konto. Weitere Informationen finden Sie unter Konto erstellen.
- Die CLI-Tools, einschließlich der Befehlszeilenschnittstelle IBM Cloud, des Plug-ins für die Befehlszeilenschnittstelle des Container-Service und der Befehlszeilenschnittstelle Helm. Weitere Informationen finden Sie in Einführung in die IBM Cloud-Befehlszeilenschnittstelle.
- Ein Red Hat OpenShift on IBM Cloud-Cluster. Wenn Sie einen VPC-Cluster haben, stellen Sie sicher, dass Ihr VPC über ein öffentliches Gateway verfügt. Weitere Informationen finden Sie unter Cluster erstellen.
- Eine Object Storage-Instanz in derselben Region wie Ihr Cluster. Weitere Informationen finden Sie unter Instanz von Object Storage.
Erstellen eines Satzes von Dienstanmeldeinformationen
-
Führen Sie die Schritte zum Erstellen einer Gruppe von HMAC -Serviceberechtigungsnachweisen für Ihre Object Storage-Instanz aus. Beachten Sie, dass die von Ihnen erstellten Berechtigungsnachweise über die Rolle Manager verfügen müssen, um Buckets zu erstellen.
-
Nachdem Sie eine Gruppe von HMAC-Serviceberechtigungsnachweisen erstellt haben, überprüfen Sie die Details Ihrer Berechtigungsnachweise und notieren Sie sich die
apikey,access_key_idundsecret_access_key. Speichern Sie diese Werte für den nächsten Schritt.
Erstellen eines Geheimnisses zum Speichern Ihrer Anmeldedaten
- Erstellen Sie einen geheimen Schlüssel mithilfe der
apikey,access_key_idundsecret_access_keyaus Ihren Serviceberechtigungsnachweisen.Beispielausgabeoc create secret generic my-cos-secret --type=ibm/ibmc-s3fs --from-literal=access-key=ACCESS-KEY --from-literal=secret-key=SECRET-KEY --from-literal=res-conf-apikey=API-KEYsecret/my-cos-secret created - Stellen Sie sicher, dass der geheime Schlüssel erstellt wurde.
Beispielausgabeoc get secrets | grep my-cosmy-cos-secret ibm/ibmc-s3fs 3 11m
Plug-in installieren
Stellen Sie bei der Installation des Plug-ins in Ihrem Cluster sicher, dass Sie die Option --set quotaLimit=true angeben. Wenn Sie diese Option angeben, haben alle Buckets, die Sie mit PVCs erstellen, ein Kontingentlimit, das der
Speichergröße im PVC entspricht.
-
Führen Sie die Schritte zum Installieren des Plug-ins und Aktivieren von Quotenbegrenzungen aus. Wenn Sie das Plug-in bereits in Ihrem Cluster installiert haben, können Sie diesen Schritt überspringen. Führen Sie den nächsten Schritt aus, um festzustellen, ob das Plug-in bereits installiert ist.
-
Überprüfen Sie, ob das Plug-in installiert ist, indem Sie die Treiberpods auflisten.
oc get pods -n ibm-object-s3fs | grep objectBeispielausgabe
ibmcloud-object-storage-driver-k9x4l 1/1 Running 0 6m52s ibmcloud-object-storage-driver-kj9m6 1/1 Running 0 6m52s ibmcloud-object-storage-driver-l8gqk 1/1 Running 0 6m52s ibmcloud-object-storage-plugin-576fb8bd7-sxlkb 1/1 Running 0 6m52s
Dynamisches Bereitstellen eines Buckets mit einem Kontingent
Mit der dynamischen Bereitstellung können Sie automatisch ein Object Storage-Bucket erstellen, wenn Sie einen PVC erstellen.
-
Kopieren Sie die folgende PVC-Konfiguration und speichern Sie sie in einer Datei mit dem Namen
pvc.yaml. Dieser Beispiel-PVC erstellt automatisch ein Bucket mit einem Kontingent gleich20Gi.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: my-cos-pvc namespace: default annotations: ibm.io/auto-create-bucket: "true" ibm.io/auto-delete-bucket: "true" ibm.io/secret-name: "my-cos-secret" ibm.io/quota-limit: "true" spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: ibmc-s3fs-standard-cross-region -
Erstellen Sie die PVC in Ihrem Cluster.
oc apply -f pvc.yamlBeispielausgabe
persistentvolumeclaim/my-cos-pvc created -
Listen Sie Ihre PVCs auf und überprüfen Sie, ob
my-cos-pvcden StatusBoundaufweist.NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-cos-pvc Bound pvc-64a4e0c9-b5ec-40e3-8b7e-77ff47ae6c5e 20Gi RWO ibmc-s3fs-standard-cross-region 6s -
Navigieren Sie zu Ihrer Object Storage-Instanz in der Konsole und klicken Sie auf die Registerkarte Buckets.
-
Überprüfen Sie die Details des automatisch erstellten Buckets. Der Bucketname hat das Format
tmp-s3fs-XXXX. -
Klicken Sie auf das Bucket
tmp-s3fs-XXXXund anschließend auf die Registerkarte Konfiguration. -
Suchen Sie auf der Seite Konfiguration den Abschnitt Kontingenterzwingung. Beachten Sie, dass das Bucket automatisch mit einem Kontingent erstellt wurde, das der Größe entspricht, die Sie im PVC angegeben haben. In diesem Beispiel war der Wert
20Gi.
Datei in Ihr Bucket hochladen
-
Speichern Sie die folgende Pod-Konfiguration in einer Datei namens
pod.yaml.apiVersion: v1 kind: Pod metadata: name: cat-test-file spec: containers: - name: app image: nginx volumeMounts: - name: my-vol mountPath: "/mnt" command: ["/bin/sh"] args: ["-c", "cat mnt/pod.yaml && sleep 5 && exit"] volumes: - name: my-vol persistentVolumeClaim: claimName: my-cos-pvc -
Navigieren Sie zu Ihrer Object Storage-Instanz in der Konsole und klicken Sie auf die Registerkarte Buckets.
-
Klicken Sie auf das Bucket
tmp-s3fs-XXXXund anschließend auf Hochladen. -
Laden Sie die Datei
pod.yamlhoch, die Sie zuvor gespeichert haben.
App erstellen, die das Bucket anhängt
- Kopieren Sie die folgende Pod-Konfiguration und speichern Sie sie in einer Datei mit dem Namen
pod.yaml. Dieser Beispielpod hängt das Bucket an, das vom PVCmy-cos-pvcerstellt wurde, und gibt den Inhalt der Dateipod.yamlaus, die Sie zuvor hochgeladen haben.apiVersion: v1 kind: Pod metadata: name: cat-test-file spec: containers: - name: app image: nginx volumeMounts: - name: my-vol mountPath: "/mnt" command: ["/bin/sh"] args: ["-c", "cat mnt/pod.yaml && sleep 5 && exit"] volumes: - name: my-vol persistentVolumeClaim: claimName: my-cos-pvc - Erstellen Sie den Pod in Ihrem Cluster.
Beispielausgabeoc apply -f pod.yamlpod/cat-test-file created - Rufen Sie die Protokolle des Pods
cat-test-fileab. In diesem Beispiel enthalten die Protokolle den gedruckten Inhalt der Dateipod.yaml, die Sie zuvor hochgeladen haben.apiVersion: v1 kind: Pod metadata: name: cat-test-file spec: containers: - name: app image: nginx volumeMounts: - name: my-vol mountPath: "/mnt" command: ["/bin/sh"] args: ["-c", "cat mnt/pod.yaml && sleep 5 && exit"] volumes: - name: my-vol persistentVolumeClaim: claimName: my-cos-pvc
Prüfen
In diesem Lernprogramm haben Sie das Object Storage-Plug-in in Ihrem Cluster installiert und Kontingente für alle mit dem Plug-in erstellten PVCs aktiviert. Anschließend haben Sie einen PVC erstellt, der dynamisch ein Bucket mit einem Kontingentgrenzwert in Ihrer Instanz von Object Storage erstellt. Anschließend haben Sie eine einfache Anwendung bereitgestellt, die den Inhalt einer Datei in Ihrem Bucket druckt.
Nächste Schritte
- Richten Sie die Object Storage-CLI so ein, dass sie auf Ihr Bucket verweist.
- Verwenden Sie die Object Storage-SDKs, um Speicher zu Ihren Anwendungen hinzuzufügen.