You are advised to follow the Fluid installation document to confirm whether the Fluid components are operating properly.
The Fluid installation document uses Helm 3
as an example. If you use a version below Helm 3
to deploy Fluid and encounter the situation of CRD not starting properly
, this may be because Helm 3
and above versions will automatically install CRD during helm install
but the lower version of Helm will not. See the Helm official documentation.
In this case, you need to install CRD manually:
$ kubectl create -f fluid/crds
Please check the related Pod running status and Runtime events. As long as any active Pod is still using the Volume created by Fluid, Fluid will not complete the delete operation.
The following commands can quickly find these active Pods. When using it, replace <dataset_name>
and <dataset_namespace>
with yours:
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
driver name fuse.csi.fluid.io not found in the list of registered CSI drivers
error appear when I create a task to mount the PVC created by Runtime?Check whether the kubelet configuration of the node on which the task is scheduled is the default value /var/lib/kubelet
.
Check whether Fluid's CSI component is operating properly.
The following command can find the Pod quickly. When using it, replace the <node_name>
and <fluid_namespace>
with yours:
kubectl get pod -n <fluid_namespace> | grep <node_name>
# <pod_name> indicates the pod name in the last step
kubectl logs <pod_name> node-driver-registrar -n <fluid_namespace>
kubectl logs <pod_name> plugins -n <fluid_namespace>
csidriver
object exists:kubectl get csidriver
csidriver
object exists, check whether the csi
registered node contains <node_name>
:kubectl get csinode | grep <node_name>
If the above command has no output, check whether the kubelet configuration of the node on which the task is scheduled is the default value /var/lib/kubelet
. Because Fluid's CSI component is registered with kubelet through a fixed address socket, the default value is --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
.
kubectl get
command?During the Fluid upgrade, we may have upgraded CRDs. The dataset created in the older version will set the new fields in the CRDs to null. For example, if you upgrade from v0.4 or before, the dataset did not have a FileNum
field in those earlier versions. After Fluid is upgraded, if you use the kubectl get
command, you cannot query the FileNum
of the dataset.
You can recreate the dataset, and the new dataset will display these fields properly.
The Volume Attachment timeout problem is a timeout caused by the kubelet not receiving a response from the CSI Driver when making a request to it. This problem is caused by the fact that the CSI Driver of Fluid is not installed, or kubelet does not have permission to access the CSI Driver.
Since the CSI Driver is called back by kubelet, if the CSI Driver is not installed or kubelet does not have permission to view the CSI Driver, the CSI Plugin will not be triggered correctly.
Run the command kubectl get csidriver
to check whether the CSI Driver is installed.
kubectl apply -f charts/fluid/fluid/templates/csi/driver.yaml
to install it, and then observe whether the PVC is successfully mounted to the application.export KUBECONFIG=/etc/kubernetes/kubelet.conf && kubectl get csidriver
to check whether kubelet has permission to view the CSI Driver.
Apakah halaman ini membantu?