gpt4 book ai didi

linux - Kubernetes Pod : Failed to get D-Bus Connection

转载 作者:太空宇宙 更新时间:2023-11-04 04:51:46 25 4
gpt4 key购买 nike

我有一个基于 centos/systemd 的 docker 容器。我运行容器

docker run -d --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro <image>

然后我可以通过以下方式访问容器:

docker exec -ti <containerID> /bin/bash

然后我可以使用命令 systemctl 列出所有已加载的单元。这工作得很好。

现在我想将镜像部署到 kubernetes 集群中,这也可以正常工作,我可以通过 kubectl exec -ti <pod> /bin/bash 访问集群中正在运行的 pod

如果我现在输入命令 systemctl我收到错误消息

Failed to get D-Bus connection: Operation not permitted

如何才能使 systemd/systemctl 在 pod 中可用?

提示:由于软件在容器内运行,因此需要 systemd,因此此处不提供 Supervisord

最佳答案

令人遗憾的是,Daniel Walsh(Redhat)的旧提案仍然在流传 - 其中包括暗示运行“特权容器”来获得一些 systemd 行为,基本上是通过与容器外部的守护进程对话。

放弃那个。把它忘了吧。除非违反其基本设计,否则您无法在真正的集群中实现这一点。

而且在大多数情况下,仔细观察,容器中 systemd 的要求并不是很严格。有相当多的容器服务管理器或初始化守护进程实现。您可以尝试使用 docker-systemctl-replacement例如脚本。

关于linux - Kubernetes Pod : Failed to get D-Bus Connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56276014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com