华为CSI服务相关问题
1 - 启动huawei-csi-node失败,提示错误为:“/var/lib/iscsi is not a directory”
现象描述
启动huawei-csi-node时,无法启动huawei-csi-node服务, 使用kubectl describe daemonset huawei-csi-node -n huawei-csi命令查看,提示错误为:“/var/lib/iscsi is not a directory”。
根因分析
huawei-csi-node中容器内部无/var/lib/iscsi目录。
解决措施或规避方法
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
进入Helm工程的目录下,如果无法找到之前的Helm工程,则将组件包中的helm目录拷贝到master节点的任意目录下,组件包路径请参考表 软件包组件描述。
进入下一级目录templates,找到huawei-csi-node.yaml文件。
cd /templates
执行以下命令,将huawei-csi-node.yaml > volumes > iscsi-dir > hostPath中“path“设置为“/var/lib/iscsi“ ,然后保存并退出文件。
vi huawei-csi-node.yaml
执行以下命令升级Helm chart。升级命令将更新Deployment、DaemonSet和RBAC资源。其中,helm-huawei-csi为自定义的chart名称,huawei-csi为自定义的命名空间。
helm upgrade helm-huawei-csi ./ -n huawei-csi values.yaml
命令结果示例如下。
Release "helm-huawei-csi" has been upgraded. Happy Helming! NAME: helm-huawei-csi LAST DEPLOYED: Thu Jun 9 07:58:15 2022 NAMESPACE: huawei-csi STATUS: deployed REVISION: 2 TEST SUITE: None
2 - 启动华为CSI服务失败,提示错误:“/etc/localtime is not a file”
现象描述
安装部署CSI时,Pod运行不起来,处于ContainerCreating状态,查看Pod中有打印告警事件:/etc/localtime is not a file。
根因分析
容器挂载主机/etc/localtime文件时,识别类型有误,容器挂载不上主机侧/etc/localtime文件,导致Pod运行不起来。
操作步骤
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
kubectl get pod -n huawei-csi
命令结果示例如下。其中,huawei-csi为CSI服务部署的命名空间。
NAME READY STATUS RESTARTS AGE huawei-csi-controller-6dfcc4b79f-9vjtq 9/9 ContainerCreating 0 24m huawei-csi-controller-6dfcc4b79f-csphc 9/9 ContainerCreating 0 24m huawei-csi-node-g6f4k 3/3 ContainerCreating 0 20m huawei-csi-node-tqs87 3/3 ContainerCreating 0 20m
执行命令,通过查看容器的“Events”参数。
kubectl describe pod huawei-csi-controller-6dfcc4b79f-9vjtq -n huawei-csi
命令结果示例如下。其中,huawei-csi-controller-6dfcc4b79f-9vjtq 为2中查找到的状态显示为“ContainerCreating”的Pod名称,huawei-csi为该Pod所在的命名空间。
... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 96s default-scheduler Successfully assigned huawei-csi/huawei-csi-controller-6dfcc4b79f-9vjtq to node1 Warning FailedMount 33s (x8 over 96s) kubelet MountVolume.SetUp failed for volume "host-time" : hostPath type check failed: /etc/localtime is not a file
执行命令cd /helm/esdk/templates,进入到CSI的安装包路径下。路径请参见表 软件包组件描述。
以huawei-csi-controller.yaml文件为例,执行以下命令,查看文件内容。
vi huawei-csi-controller.yaml
找到对应volumes配置下的host-time挂载项,删除type: File这一行配置内容。对templates目录下涉及该配置项的huawei-csi-node.yaml部署文件,执行相同的操作。
... ... volumes: - hostPath: path: /var/log/ type: Directory name: log - hostPath: path: /etc/localtime type: File name: host-time ... ...
参考Helm卸载华为CSI卸载服务后,重新安装服务。
执行以下命令,查看华为CSI服务Pod运行状态为Running。
kubectl get pod -n huawei-csi
命令结果示例如下。
NAME READY STATUS RESTARTS AGE huawei-csi-controller-6dfcc4b79f-9vjts 9/9 Running 0 24m huawei-csi-controller-6dfcc4b79f-csphb 9/9 Running 0 24m huawei-csi-node-g6f41 3/3 Running 0 20m huawei-csi-node-tqs85 3/3 Running 0 20m
3 - 启动huawei-csi服务时,服务启动异常, 状态显示InvalidImageName
现象描述
启动huawei-csi时,无法启动huawei-csi服务(huawei-csi-controller服务或者huawei-csi-node服务),使用kubectl get pod -A | grep huawei命令查看,显示状态为InvalidImageName
kubectl get pod -A | grep huawei
命令结果示例如下。
huawei-csi huawei-csi-controller-fd5f97768-qlldc 6/9 InvalidImageName 0 16s
huawei-csi huawei-csi-node-25txd 2/3 InvalidImageName 0 15s
根因分析
controller和node的yaml配置文件中,配置Huawei CSI的镜像版本号错误。例如:
...
- name: huawei-csi-driver
image: huawei-csi:4.5.0
...
解决措施或规避方法
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令,修改huawei-csi-node服务的配置文件。按I或Insert进入编辑状态,修改相关参数。修改完成后,按Esc,并输入 :wq! ,保存修改。
kubectl edit daemonset huawei-csi-node -o yaml -n=huawei-csi
- 示例yaml文件中huawei-csi-driver的参数image配置项,修改华为CSI镜像huawei-csi:4.5.0。
containers: ... - name: huawei-csi-driver image: huawei-csi:4.5.0
执行以下命令,修改huawei-csi-controller服务的配置文件。按I或Insert进入编辑状态,修改相关参数。修改完成后,按Esc,并输入 :wq! ,保存修改。
kubectl edit deployment huawei-csi-controller -o yaml -n=huawei-csi
- 示例yaml文件中huawei-csi-driver的参数image配置项,修改华为CSI镜像huawei-csi:4.5.0。
containers: ... - name: huawei-csi-driver image: huawei-csi:4.5.0
等待huawei-csi-node和huawei-csi-controller服务启动。
执行以下命令,查看huawei csi服务是否启动。
kubectl get pod -A | grep huawei
命令结果示例如下。Pod状态为“Running“说明服务启动成功。
huawei-csi huawei-csi-controller-58799449cf-zvhmv 9/9 Running 0 2m29s huawei-csi huawei-csi-node-7fxh6 3/3 Running 0 12m