Развертывание Docker В Kubernetes

  • Автор темы Apostol_Pavel
  • Обновлено
  • 21, Oct 2024
  • #1

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

 /var/run/docker.sock 

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

Невозможно подключиться к демону Docker на unix:///var/run/docker.sock. Демон докера запущен?

Это ожидаемо, потому что я не заявляю /var/run/docker.sock as a volume in the deployment yaml.

Проблема в том, что я не знаю, как это сделать. Можно ли монтировать docker run -d /var/run/docker.sock:/var/run/docker.sock ... as a volume in a deployment yaml?

Если нет, то как лучше всего запускать родственные контейнеры Docker из развертывания/пода Kubernetes?

#kubernetes #docker-in-docker

Apostol_Pavel


Рег
25 Aug, 2008

Тем
81

Постов
190

Баллов
605
  • 25, Oct 2024
  • #2

Непроверено, так как мне кажется ненадежным запускать контейнер без присмотра k8s, но вы сможете смонтировать

 
 /var/run/docker.sock 
with a том хост-пути.

Пример варианта из документации:

spec: containers: - image: gcr.io/google_containers/test-webserver securityContext: privileged: true name: test-container

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

apiVersion: v1 kind: Pod metadata: name: test-pd spec: containers: - image: gcr.io/google_containers/test-webserver name: test-container volumeMounts: - mountPath: /var/run/docker.sock name: docker-sock-volume volumes: - name: docker-sock-volume hostPath: # location on host path: /var/run/docker.sock # this field is optional type: File ||answer||

такой объект (просто выдержка из приведенного выше, чтобы показать дополнение, значения взяты из /var/run/docker.sock

документация

Хотя это рабочее решение (я сам его использую), у запуска Docker в поде Kubernetes путем монтирования есть некоторые недостатки. В основном тот факт, что вы работаете с контейнерами Docker вне контроля Kubernetes. Другое предлагаемое решение, которое я нашел, — использовать

коляска

 

E6eirafr


Рег
26 Aug, 2005

Тем
76

Постов
198

Баллов
608
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно