现在手头就一台高配物理机,套娃就套娃吧。一开始看 minikube 在 https://github.com/kubernetes 下应该很靠谱才对,但是一个 MySQL 数据库都没拉起来,看报错是文件权限问题。不过 bitnami 的 chart 文档里已经给出了解决方案,启用 volumePermissions.enabled
就可以自动添加一个初始化容器执行 chmod。看起来还行,我把相关子 chart 都启用了这个配置,helm install 也成功了。可这 chart 它不讲武德,竟然在最后的 init 容器里又执行了一次 helm install,比我还能套娃。
这套娃 chart 代码在容器里不是很好改,还是老老实实看怎么让 fsGroup
生效吧。谷歌一下找到 #1990 (comment) 这个 issue,k8s 的 hostPath PV 实现不支持用 fsGroup
配置权限,minikube 和 k3d (rancher/local-path-provisioner#41) 同时中招。
查了好久也没找到合适的方案,看来只能试试非正当手段了。能不能在 hostPath 创建好目录之后,马上把权限改对呢?脏是脏了点,但能抓住老鼠就是好猫。正好 k3d 创建集群时能指定 --volume
,直接把宿主机上的目录 mount 进去,然后 for 循环 chmod,总算是顺利把套娃的 helm install 也搞定了。
全都搞定之后才发现 OpenEBS 似乎能解决问题,KubeKey All-in-One 模式也能一键安装,不过懒得折腾了。
后来还发现 minikube 提供的 StorageClass 还不支持多节点集群 (#12165),官方这么惨大家快去欺负(帮忙)。
]]>