有奖捉虫:云通信与企业服务文档专题,速来> HOT

Fluid 安装使用相关问题

为什么我使用 Helm 安装 fluid 失败了?

推荐按照 Fluid 安装文档 依次确认 Fluid 组件是否正常运行。
Fluid 安装文档是以Helm 3为例进行部署的。如果您使用Helm 3以下的版本部署 Fluid,并且遇到了CRD没有正常启动的情况,这可能是因为Helm 3及其以上版本会在helm install的时候自动安装 CRD,而低版本的 Helm 则不会。详情请参见 Helm 官方文档
在这种情况下,您需要手动安装 CRD:
$ kubectl create -f fluid/crds

为什么我无法删除 Runtime?

请检查相关 Pod 运行状态和 Runtime 的 Events。只要有任何活跃 Pod 还在使用 Fluid 创建的 Volume,Fluid 就不会完成删除操作。
如下命令可以快速地找出这些活跃 Pod,使用时把 <dataset_name><dataset_namespace> 换成自己的即可:
kubectl describe pvc <dataset_name> -n <dataset_namespace> | \\
awk '/^Mounted/ {flag=1}; /^Events/ {flag=0}; flag' | \\
awk 'NR==1 {print $3}; NR!=1 {print $1}' | \\
xargs -I {} kubectl get po {} | \\
grep -E "Running|Terminating|Pending" | \\
cut -d " " -f 1

为什么我在创建任务挂载 Runtime 创建的 PVC 时,出现报错 driver name fuse.csi.fluid.io not found in the list of registered CSI drivers

1. 请查看任务被调度节点所在的 kubelet 配置是否为默认/var/lib/kubelet
2. 通过命令查看 Fluid 的 CSI 组件是否正常。 如下命令可以快速地找出 Pod,使用时把<node_name><fluid_namespace>换成自己的即可:
kubectl get pod -n <fluid_namespace> | grep <node_name>

# <pod_name> 为上一步pod名
kubectl logs <pod_name> node-driver-registrar -n <fluid_namespace>
kubectl logs <pod_name> plugins -n <fluid_namespace>
如果上述步骤的 Log 无错误,请查看 csidriver 对象是否存在:
kubectl get csidriver
如果 csidriver 对象存在,请查看 csi 注册节点是否包含<node_name>
kubectl get csinode | grep <node_name>
如果上述命令无输出,请查看任务被调度节点所在的 kubelet 配置是否为默认/var/lib/kubelet。由于 Fluid 的 CSI 组件通过固定地址的 socket 注册到 kubelet,因此默认为--csi-address=/var/lib/kubelet/csi-plugins/fuse.csi.fluid.io/csi.sock --kubelet-registration-path=/var/lib/kubelet/csi-plugins/fuse.csi.fluid.io/csi.sock

为什么更新了 fluid 后,使用 kubectl get 查询更新前创建的dataset,发现相比新建的dataset缺少了某些字段?

由于我们在 fluid 的升级过程中可能更新了 CRD,您在旧版本创建的 dataset,会将 CRD 中新增的字段设置为空。例如,您从v0.4或更早版本升级,那时的 dataset 没有 FileNum 字段,更新 fluid 后,如果您使用 kubectl get 命令,无法查询到该 dataset 的 FileNum。
您可以重建 dataset,新建的 dataset 会正常显示这些字段。

为什么在应用程序中使用 PVC 时会产生了 Volume Attachment 超时问题?

Volume Attachment 超时问题是 Kubelet 进行请求 CSI Driver 时未收到 CSI Driver 的响应而造成的超时。该问题是由于 Fluid 的 CSI Driver 没有安装,或者 kubelet 没有访问 CSI Driver 的权限导致的。
由于 CSI Driver 是由 Kubelet 进行回调,所以如果 Fluid 没有安装 CSI Driver 或者 Kubelet 没有权限查看 CSI Driver,就会导致 CSI Plugin 没有被正确触发。
使用命令kubectl get csidriver查看是否安装了 CSI Driver。
如果没有安装,使用命令kubectl apply -f charts/fluid/fluid/templates/csi/driver.yaml进行安装,然后观察 PVC 是否成功挂载到应用程序中。
如果仍未解决,使用export KUBECONFIG=/etc/kubernetes/kubelet.conf && kubectl get csidriver来查看 Kubelet 能够具有权限看到 CSI Driver。