我有一个本地的测试 Kubernetes 集群,是用 RKE 部署的。
RKE 的优势之一是部署 k8s 很方便,集群在 Docker 内部运行,部署的时候只需要准备 Docker 环境和配置文件就可以了。
先说一下我遇到的问题:
我配置了本地 PV,一切正常,可以看到所有的本地盘都注册好了 ( tidb-operator 官方文档)
然后在部署 tidb 集群时遇到报错
Error: MountVolume.NewMounter initialization failed for volume “local-pv-xxxxx” : path “/mnt/disks/xxx-xxx-xxx” does not exist
原因是:kubelet 运行在容器内部,无法读到 Node 节点上的 /mnt/disks (我的本地PV位置)
其实官方的 FAQ 也说了这个问题。
对 RKE 来说,解决办法就是配置 kubelet extra bind 并升级集群
services:
kubelet:
extra_binds:
- "/mnt/disks:/mnt/disks"