разрешения на монтирование hostpath minikube

Я пытаюсь смонтировать локальный каталог для использования контейнером в kubernetes, но получаю эту ошибку:

$ kubectl logs mysql-pd

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

версия миникуба: v0.33.1

докер для версии Mac: 2.0.0.2 (30215)

Двигатель: 18.09.1

Кубернетес: 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"

person slashdottir    schedule 29.01.2019    source источник
comment
Почему так важно хранить файлы базы данных в файловой системе (HFS|APFS)? Собираетесь ли вы позже запустить отдельный mysqld, указывающий на тот же каталог? Потому что разумнее всего просто пропустить это --mount дело и позволить hostPath: делать то, что он обычно делает, и записывать на диск виртуальной машины, который по-прежнему локальный для вас и подчиняется Time Machine и другим, но обойти всю эту дискуссию   -  person mdaniel    schedule 29.01.2019
comment
До сих пор hostPath у меня не работал, равно как и PersistentVolume или любой другой метод или предложение, которое я могу найти там. Это самое близкое, что я пришел к осмысленному сообщению об ошибке. Я хотел бы сохранить базу данных за пределами срока службы контейнера.   -  person slashdottir    schedule 29.01.2019
comment
Вы удаляете minikube, потому что это единственный результат, при котором hostPath: или PV будут удалены за пределами жизненного цикла Pod?   -  person mdaniel    schedule 29.01.2019
comment
Вы правы, я думаю, я думал, что он сделает свои файлы на моем жестком диске. Вот они внутри ВМ. Тем не менее, я бы хотел, чтобы он вел себя как Docker. В Docker я могу запустить контейнер mysql и хранить файлы базы данных на своем жестком диске.   -  person slashdottir    schedule 29.01.2019
comment
Интересно, есть ли способ создать общую папку в VirtualBox, в которую также может быть записан модуль kubernetes. Я предполагаю, что это будет еще одна ошибка разрешений   -  person slashdottir    schedule 29.01.2019
comment
Что касается того, почему это важно, это будет немного менее запутанно для разработчиков, которые могут использовать контейнер Docker локально, а затем должны поддерживать две отдельные установки базы данных, если они также используют конфигурацию kubernetes.   -  person slashdottir    schedule 29.01.2019


Ответы (1)


Как упомянул @Matthew L Daniel в комментариях, основная цель использования hostPath заключается в том, чтобы смонтировать локальную папку с вашего компьютера, на котором размещен миникуб, во вложенный модуль, поэтому нет необходимости монтировать локальный каталог внутри миникуба. Кроме того, взгляните на эту статью, в которой объясняются некоторые ограничения в отношении монтирование папки host для конкретного драйвера ВМ в minikube.

person Community    schedule 29.01.2019
comment
Меня это устраивает, если это сработает. Я пробовал все, чтобы сохранить файлы базы данных, и пока абсолютно ничего не работает. Это самое близкое, что я получил к осмысленному сообщению об ошибке. Я надеюсь, что это приведет к чему-то полезному. - person slashdottir; 29.01.2019