Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

下一步是什么?

贡献者

部署 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.tempdl 文件,将 ` 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/vpva-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

现在,您可以执行其他任务,例如: