但是在尝试创建应用时,却一直卡在DEPLOYING状态,点击后点开Application Events,提示waiting for a volume to be created, either by external provisioner "zfs.csi.openebs.io" or manually created by system administrator。由于没接触过k8s,只能网上搜索该错误提示。
有人说是因为权限问题,选择给ix-applications目录赋予777权限,完全没有解决。
定位问题
仔细查看出错提示,猜测问题可能出在zfs.csi.openebs.io。查询openebs的官方文档:OpenEBS Documentation | OpenEBS Docs,进入ZFS Local PV分页,在README中发现使用kubectl get pods -n kube-system -l role=openebs-zfs可以查看ZFS驱动的运行状态(注意在TrueNAS中需要使用k3s运行该命令,即k3s kubectl get ...)。输出:
NAME READY STATUS RESTARTS AGE openebs-zfs-node-wqn2v 1/2 ImagePullBackOff 0 7h43m openebs-zfs-controller-0 1/5 ImagePullBackOff 0 7h43m
很明显驱动没有正常运行,查询ImagePullBackOff错误提示,得知是镜像拉取失败。运行k3s kubectl describe pod openebs-zfs-controller-0 -n kube-system查看pod的状态,主要看Events部分的输出:
Events: Type Reason Age From Message Warning Failed 48m (x12 over 7h23m) kubelet Failed to pull image "k8s.gcr.io/sig-storage/snapshot-controller:v4.0.0": rpc error: code = Unknown desc = Error response from daemon: Get "https://k8s.gcr.io/v2/": context deadline exceeded Warning Failed 43m (x151 over 7h29m) kubelet (combined from similar events): Failed to pull image "k8s.gcr.io/sig-storage/csi-snapshotter:v4.0.0": rpc error: code = Unknown desc = Error response from daemon: Get "https://k8s.gcr.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) Normal Pulling 38m (x72 over 7h39m) kubelet Pulling image "k8s.gcr.io/sig-storage/csi-resizer:v1.1.0" Normal BackOff 3m33s (x1396 over 7h33m) kubelet Back-off pulling image "k8s.gcr.io/sig-storage/csi-resizer:v1.1.0"