下一步是什么?
部署 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
现在,您可以执行其他任务,例如: