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

  1. 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.

  2. Nachdem Sie eine Gruppe von HMAC-Serviceberechtigungsnachweisen erstellt haben, überprüfen Sie die Details Ihrer Berechtigungsnachweise und notieren Sie sich die apikey, access_key_id und secret_access_key. Speichern Sie diese Werte für den nächsten Schritt.

Erstellen eines Geheimnisses zum Speichern Ihrer Anmeldedaten

  1. Erstellen Sie einen geheimen Schlüssel mithilfe der apikey, access_key_id und secret_access_key aus Ihren Serviceberechtigungsnachweisen.
    oc 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-KEY
    
    Beispielausgabe
    secret/my-cos-secret created
    
  2. Stellen Sie sicher, dass der geheime Schlüssel erstellt wurde.
    oc get secrets | grep my-cos
    
    Beispielausgabe
    my-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.

  1. 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.

  2. Überprüfen Sie, ob das Plug-in installiert ist, indem Sie die Treiberpods auflisten.

    oc get pods -n ibm-object-s3fs | grep object
    

    Beispielausgabe

    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.

  1. 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 gleich 20Gi.

    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
    
  2. Erstellen Sie die PVC in Ihrem Cluster.

    oc apply -f pvc.yaml
    

    Beispielausgabe

    persistentvolumeclaim/my-cos-pvc created
    
  3. Listen Sie Ihre PVCs auf und überprüfen Sie, ob my-cos-pvc den Status Bound aufweist.

    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
    
  4. Navigieren Sie zu Ihrer Object Storage-Instanz in der Konsole und klicken Sie auf die Registerkarte Buckets.

  5. Überprüfen Sie die Details des automatisch erstellten Buckets. Der Bucketname hat das Format tmp-s3fs-XXXX.

  6. Klicken Sie auf das Bucket tmp-s3fs-XXXX und anschließend auf die Registerkarte Konfiguration.

  7. 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

  1. 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
    
  2. Navigieren Sie zu Ihrer Object Storage-Instanz in der Konsole und klicken Sie auf die Registerkarte Buckets.

  3. Klicken Sie auf das Bucket tmp-s3fs-XXXX und anschließend auf Hochladen.

  4. Laden Sie die Datei pod.yaml hoch, die Sie zuvor gespeichert haben.

App erstellen, die das Bucket anhängt

  1. 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 PVC my-cos-pvc erstellt wurde, und gibt den Inhalt der Datei pod.yaml aus, 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
    
  2. Erstellen Sie den Pod in Ihrem Cluster.
    oc apply -f pod.yaml
    
    Beispielausgabe
    pod/cat-test-file created
    
  3. Rufen Sie die Protokolle des Pods cat-test-file ab. In diesem Beispiel enthalten die Protokolle den gedruckten Inhalt der Datei pod.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