Minikube通过Helm部署MariaDB Galera权限报错如何修复
错误原因说明
- 最初的目录权限报错,是因为Bitnami MariaDB Galera镜像默认使用UID为1001的非root用户运行,而Minikube默认创建的持久化卷挂载后属主为root,1001用户没有写入权限。
- 后续init容器启动失败有两个原因:
command字段写法错误:Kubernetes中command数组需要将可执行文件和参数拆分为独立元素,你把整条命令作为单个字符串传入,系统会把整个字符串当成可执行文件名查找,自然找不到对应文件。- 未挂载数据卷:init容器没有挂载MariaDB使用的持久化卷,
/bitnami/mariadb/路径在init容器中本身不存在。
解决方案
方案1:修复自定义init容器配置
修正后的mariadb-galera-init-config.yaml内容如下:
extraInitContainers: - name: fix-permissions image: bitnami/minideb command: ["chown", "-R", "1001:1001", "/bitnami/mariadb/"] volumeMounts: - name: data mountPath: /bitnami/mariadb
之后重新执行部署命令即可:
helm install my-release bitnami/mariadb-galera --set rootUser.password=test --set db.name=test -f mariadb-galera-init-config.yaml
方案2:使用Chart内置参数(更简洁,无需自定义init容器)
Bitnami MariaDB Galera Chart原生支持通过安全上下文配置自动修复卷权限,直接在部署时添加对应参数即可,不需要额外编写配置文件:
helm install my-release bitnami/mariadb-galera \ --set rootUser.password=test \ --set db.name=test \ --set podSecurityContext.fsGroup=1001 \ --set containerSecurityContext.runAsUser=1001
该配置会自动将持久化卷的属组设置为1001,同时指定容器运行用户为1001,直接获得写入权限。
内容的提问来源于stack exchange,提问作者Relative_Programming
相关产品推荐
相关产品推荐

