首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >库伯奈特部署的码头工人

库伯奈特部署的码头工人
EN

DevOps用户
提问于 2017-11-07 15:40:49
回答 2查看 10.4K关注 0票数 16

我正在使用一个第三方库,该库通过以下方法创建同级码头容器:

代码语言:javascript
运行
复制
docker run -d /var/run/docker.sock:/var/run/docker.sock ...

我正在尝试从上面的容器中创建一个Kubernetes部署,但目前正在获得:

无法连接到unix://var/run/docker.sock上的Docker守护进程。码头守护进程正在运行吗?

这是预期的,因为我没有将/var/run/docker.sock声明为部署yaml中的卷。

问题是我不知道该怎么做。可以在部署yaml中将/var/run/docker.sock作为卷挂载吗?

如果不是,在Kubernetes部署/吊舱中运行码头同胞容器的最佳方法是什么?

EN

回答 2

DevOps用户

回答已采纳

发布于 2017-11-07 16:06:31

虽然在k8s监管之外启动容器听起来很脆弱,但您应该能够使用主机路径体积安装/var/run/docker.sock

与文档不同的示例:

代码语言:javascript
运行
复制
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

我认为简单的挂载应该足以让容器内的docker客户端与主机上的docker守护进程进行通信,但如果您收到写权限错误,则意味着您需要使用类似的securityContext对象作为特权容器运行容器(仅从上面提取的一个摘录来显示从文献资料获取的值):

代码语言:javascript
运行
复制
spec:
  containers:
  - image: gcr.io/google_containers/test-webserver
    securityContext:
      privileged: true
    name: test-container
票数 22
EN

DevOps用户

发布于 2018-02-12 07:55:30

虽然这是一个可行的解决方案(我自己使用),但通过安装/var/run/docker.sock在Kubernetes吊舱中运行Docker有一些缺点

大多数情况下,你是在库伯奈特控制之外的码头集装箱工作。

我发现的另一个解决方案是在你的吊舱里使用一个侧车容器。见库伯奈特码头工人案。它有两个部分,其中提议的解决方案在第2部分中。

我希望这能帮到你。

票数 3
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/2506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档