首页 > 解决方案 > minikube 主机路径挂载权限

问题描述

我正在尝试挂载一个本地目录以供 kubernetes 中的容器使用,但出现此错误:

$ kubectl logs mysql-pd

chown: changing ownership of '/var/lib/mysql/': Input/output error

minikube 版本:v0.33.1

docker for mac 版本:2.0.0.2 (30215)

引擎:18.09.1

Kubernetes:v1.10.11

我正在使用已安装的目录启动 minikube:

minikube start --mount-string /Users/foo/mysql_data:/mysql_data --mount

部署.yml

apiVersion: v1
kind: Pod
metadata:
  name: mysql-pd
spec:
  containers:
  - image: mysql:5.7
    name: mysql-container
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: ""
    - name: MYSQL_ALLOW_EMPTY_PASSWORD
      value: "yes"
    ports:
      - containerPort: 3306
    volumeMounts:
    - mountPath: "/var/lib/mysql"
      name: host-mount
  volumes:
  - name: host-mount
    hostPath:
      path: "/mysql_data"

标签: macoskubernetespermissionsminikubepersistent-storage

解决方案


正如@Matthew L Daniel 在评论中提到的那样,使用hostPath的主要目的是将本地文件夹从托管 minikube 的机器挂载到嵌套 Pod,因此没有必要将本地目录挂载到 minikube。此外,请查看这篇文章,该文章解释了有关 minikube 中特定 VM 驱动程序的主机文件夹安装的一些限制。


推荐阅读