下一步是什么?
部署 Astra Trident 后,您可以继续创建后端,创建存储类,配置卷以及将卷挂载到 Pod 中。
第 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 Claim , 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 都应显示 * 基本 -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 步:将卷挂载到 Pod 中
现在,让我们挂载卷。我们将启动一个nginx POD、将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
此时, Pod (应用程序)不再存在,但卷仍在。如果需要,您可以从另一个 POD 使用它。
要删除卷,请删除声明:
kubectl delete pvc basic
现在,您可以执行其他任务,例如: