次の手順
Astra Tridentのインストールが完了したら、バックエンドの作成、ストレージクラスの作成、ボリュームのプロビジョニング、ポッドへのボリュームのマウントを実行できます。
手順 1 :バックエンドを作成する
これで、 Astra Trident がボリュームのプロビジョニングに使用するバックエンドを作成できるようになります。これを行うには、を作成します backend.json
必要なパラメータを含むファイル。さまざまなバックエンドタイプの設定ファイルの例については、を参照してください sample-input
ディレクトリ。
を参照してください "こちらをご覧ください" バックエンドタイプのファイルを設定する方法の詳細については、を参照してください。
cp sample-input/<backend template>.json backend.json vi backend.json
./tridentctl -n trident create backend -f backend.json +-------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +-------------+----------------+--------------------------------------+--------+---------+ | nas-backend | ontap-nas | 98e19b74-aec7-4a3d-8dcf-128e5033b214 | online | 0 | +-------------+----------------+--------------------------------------+--------+---------+
作成に失敗した場合は、バックエンド設定に何か問題があります。次のコマンドを実行すると、ログを表示して原因を特定できます。
./tridentctl -n trident logs
問題に対処したら、この手順の最初に戻ってやり直してください。トラブルシューティングのヒントについては、を参照してください "トラブルシューティング" セクション。
手順 2 :ストレージクラスを作成する
Kubernetes ユーザは、を指定する Persistent Volume クレーム( PVC )を使用してボリュームをプロビジョニングします "ストレージクラス" 名前で検索できます。詳細情報はユーザには表示されませんが、ストレージクラスは、そのクラスに使用されるプロビジョニングツール(この場合は Trident )と、そのクラスがプロビジョニングツールにもたらす意味を特定します。
ストレージクラスの Kubernetes ユーザがボリュームを必要なときに指定するストレージクラスを作成します。このクラスの構成では、前の手順で作成したバックエンドをモデリングし、 Astra Trident が新しいボリュームのプロビジョニングにこのバックエンドを使用するようにする必要があります。
をベースにしたストレージクラスが最もシンプルになりました sample-input/storage-class-csi.yaml.templ
インストーラに付属のファイル BACKEND_TYPE
ストレージドライバの名前を指定します。
./tridentctl -n trident get backend +-------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +-------------+----------------+--------------------------------------+--------+---------+ | nas-backend | ontap-nas | 98e19b74-aec7-4a3d-8dcf-128e5033b214 | online | 0 | +-------------+----------------+--------------------------------------+--------+---------+ cp sample-input/storage-class-csi.yaml.templ sample-input/storage-class-basic-csi.yaml # Modify __BACKEND_TYPE__ with the storage driver field above (e.g., ontap-nas) vi sample-input/storage-class-basic-csi.yaml
これはKubernetesオブジェクトなので、を使用します kubectl
をクリックしてKubernetesで作成します。
kubectl create -f sample-input/storage-class-basic-csi.yaml
Kubernetes と Astra Trident の両方で、 * basic-csi * ストレージクラスが表示され、 Astra Trident がバックエンドのプールを検出しました。
kubectl get sc basic-csi NAME PROVISIONER AGE basic-csi csi.trident.netapp.io 15h ./tridentctl -n trident get storageclass basic-csi -o json { "items": [ { "Config": { "version": "1", "name": "basic-csi", "attributes": { "backendType": "ontap-nas" }, "storagePools": null, "additionalStoragePools": null }, "storage": { "ontapnas_10.0.0.1": [ "aggr1", "aggr2", "aggr3", "aggr4" ] } } ] }
手順 3 :最初のボリュームをプロビジョニングします
これで、最初のボリュームを動的にプロビジョニングできます。これは Kubernetes を作成することで実現されます "永続的ボリュームの要求" ( PVC )オブジェクト。
作成したストレージクラスを使用するボリュームの PVC を作成します。
を参照してください sample-input/pvc-basic-csi.yaml
たとえば、のように指定します。ストレージクラス名が、作成した名前と一致していることを確認します。
kubectl create -f sample-input/pvc-basic-csi.yaml kubectl get pvc --watch NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE basic Pending basic 1s basic Pending pvc-3acb0d1c-b1ae-11e9-8d9f-5254004dfdb7 0 basic 5s basic Bound pvc-3acb0d1c-b1ae-11e9-8d9f-5254004dfdb7 1Gi RWO basic 7s
手順 4 :ボリュームをポッドにマウントする
次に、ボリュームをマウントします。nginxポッドを起動し、の下にPVをマウントします /usr/share/nginx/html
。
cat << EOF > task-pv-pod.yaml kind: Pod apiVersion: v1 metadata: name: task-pv-pod spec: volumes: - name: task-pv-storage persistentVolumeClaim: claimName: basic containers: - name: task-pv-container image: nginx ports: - containerPort: 80 name: "http-server" volumeMounts: - mountPath: "/usr/share/nginx/html" name: task-pv-storage EOF kubectl create -f task-pv-pod.yaml
# Wait for the pod to start kubectl get pod --watch # Verify that the volume is mounted on /usr/share/nginx/html kubectl exec -it task-pv-pod -- df -h /usr/share/nginx/html # Delete the pod kubectl delete pod task-pv-pod
この時点でポッド(アプリケーション)は存在しなくなりますが、ボリュームはまだ存在しています。必要に応じて、別のポッドから使用できます。
ボリュームを削除するには、要求を削除します。
kubectl delete pvc basic
これで、次のような追加タスクを実行できます。