Постоянный том Kubernetes на Docker Desktop (Windows)

Я использую Docker Desktop на Windows 10. В целях разработки я хочу открыть локальную папку для контейнера. Когда я запускаю контейнер в Docker, я делаю это, задавая флаг тома (-v).

Как мне добиться того же при запуске контейнера в Kubernetes?

3 ответа

Решение

Вы должны использовать тип тома hostpath в спецификации вашего модуля, чтобы смонтировать файл или каталог из файловой системы узла, где поле hostPath.path должно иметь следующий формат для принятия путей, подобных Windows:

  • / Вт / приложение Foo /influxdb
  • // W / приложение Foo /influxdb
  • ///// Вт / приложение Foo /influxdb

Пожалуйста, проверьте эту проблему, объясняющую особенности томов Kubernetes в Windows. Я также предполагаю, что вы включили функцию общих дисков в вашей установке Docker для Windows.

Используя k8s 1.21.5, у меня работал следующий тип пути:

      /run/desktop/mnt/host/c/PATH/TO/FILE

Копание в этой проблеме с github помогло мне решить, какой путь использовать: https://github.com/kubernetes/kubernetes/issues/59876 .

Объяснение находится по ссылке на github выше.

Папка для монтирования не существует в дистрибутиве, который вы установили в WSL2 — в этом дистрибутиве WSL2 точка монтирования на ваш диск C:\ более очевидна./mnt/c.

Учтите, что Kubernetes и Docker не установлены в установленном дистрибутиве WSL2. Вместо этого Docker Desktop для Windows создает собственную виртуальную машину WSL2 с именем и устанавливает Docker и Kubernetes на эту виртуальную машину. Затем Docker Desktop для Windows устанавливаетdockerиkubectlCLI в вашем дистрибутиве WSL2 (а также на вашем компьютере с Windows) и настраивает их все так, чтобы они указывали на экземпляры Docker и Kubernetes, созданные на виртуальной машине. Эта виртуальная машина docker-desktop размещает Docker и Kubernetes, а также содержит точку подключения к вашему диску Windows C:\, которая может использоваться вашими контейнерами для сохранения данных.

Вы можете удаленно вdocker-desktopВМ и увидеть/run/desktop/mnt/host/cточку монтирования и структуру папок, следуя инструкциям (и обсуждению) на /questions/48750409/ekvivalent-minikube-ssh-s-doker-uzlom-kubernetes-dlya-rabochego-stola/55491013#55491013:

       docker run -it --rm --privileged --pid=host justincormack/nsenter1
Другие вопросы по тегам