【问题标题】:MariaDB Galera on Minikube: mkdir: cannot create directory '/bitnami/mariadb/data': Permission deniedMinikube 上的 MariaDB Galera:mkdir:无法创建目录“/bitnami/mariadb/data”:权限被拒绝
【发布时间】:2022-03-03 21:17:03
【问题描述】:

我想通过 Helm 将 MariaDB Galera 实例部署到具有 3 个节点的本地 Minikube 集群上。 为此,我使用了以下命令:

helm install my-release bitnami/mariadb-galera --set rootUser.password=test --set db.name=test

问题是,如果我这样做,我会在日志中收到以下错误:

mariadb 10:27:41.60 
mariadb 10:27:41.60 Welcome to the Bitnami mariadb-galera container
mariadb 10:27:41.60 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mariadb-galera
mariadb 10:27:41.60 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mariadb-galera/issues
mariadb 10:27:41.61 
mariadb 10:27:41.61 INFO  ==> ** Starting MariaDB setup **
mariadb 10:27:41.64 INFO  ==> Validating settings in MYSQL_*/MARIADB_* env vars
mariadb 10:27:41.67 INFO  ==> Initializing mariadb database
mkdir: cannot create directory '/bitnami/mariadb/data': Permission denied

图片的网站列出了使用额外的 init 容器来修复该问题的可能性 (Link)。

于是我想出了以下配置:

mariadb-galera-init-config.yaml

extraInitContainers:
- name: initcontainer
  image: bitnami/minideb
  command: ["chown -R 1001:1001 /bitnami/mariadb/"]

问题是当我使用这个配置运行命令时:

helm install my-release bitnami/mariadb-galera --set rootUser.password=test --set db.name=test -f mariadb-galera-init-config.yaml

我在 Minikube 仪表板上收到以下错误:

Error: failed to start container "initcontainer": Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "chown -R 1001:1001 /bitnami/mariadb/": stat chown -R 1001:1001 /bitnami/mariadb/: no such file or directory: unknown

我不知道如何修复此配置文件,或者是否有其他更好的方法可以使其正常工作...

【问题讨论】:

  • 您在安装时以什么用户身份运行?
  • 我在本地系统上使用了我的默认非 root 用户。刚刚尝试使用 root 执行此操作,但我无法访问 minikube 集群,也无法启动新集群,因为 docker 不允许以 root 权限运行。
  • 更正:让它以 root 权限运行,但与 mkdir 相同的问题仍然存在。
  • 检查目录及其父目录的权限。它可能是以前由您的非 root 安装创建的。使用chown 和/或chmod 修复。

标签: kubernetes mariadb kubernetes-helm minikube galera


【解决方案1】:

无论如何有人对此有疑问,我可以建议之前运行一个 initContainer。

 initContainers:
      - name: mariadb-create-directory-structure
        image: busybox
        command:
          [
            "sh",
            "-c",
            "mkdir -p /bitnami/mariadb/data && chown -R 1001:1001 /bitnami",
          ]
        volumeMounts:
        - name: data
          mountPath: /bitnami

【讨论】:

    猜你喜欢
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2017-01-02
    • 2018-09-20
    • 2021-12-11
    • 2013-12-15
    • 2017-01-31
    相关资源
    最近更新 更多