互联网服务Kubernetes

k8s pod 中使用systemctl 无效?

k8s pod 中使用systemctl status 命令,提示:Running in chroot, ignoring request: status

我设置了:securityContext: privileged: true

参与2

0同行回答

“答”则兼济天下,请您为题主分忧!

ChatGPT 回答

在Kubernetes中,Pod是最小的可部署的单元,可以包含一个或多个容器。在一个Pod中,容器共享网络命名空间、IPC命名空间和UTS命名空间,但每个容器都有自己的PID命名空间和文件系统。当您在一个Pod中运行一个容器时,您可以指定一些安全上下文来控制容器的权限和访问级别。

在您的情况下,您已经将Pod的安全上下文设置为privileged: true,这意味着容器将拥有主机的所有特权。这包括对主机上的systemctl命令的访问权限。

然而,当您在容器中运行systemctl status命令时,您可能会遇到Running in chroot, ignoring request: status的错误提示。这是因为systemctl命令需要在系统的init进程中运行,而容器中的进程并不是init进程。

为了解决这个问题,您可以在容器中运行systemctl命令时,使用--no-ask-password选项来禁用密码提示。例如,您可以使用以下命令来查看sshd服务的状态:

systemctl status sshd --no-ask-password

这将禁用密码提示,并允许您在容器中运行systemctl命令。请注意,使用privileged: true选项可能会增加容器的安全风险,因此您应该谨慎使用。

提问者

Yangxinxin
研发工程师联想
擅长领域: 云计算容器云Kubernetes

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-05-25
  • 关注会员:1 人
  • 问题浏览:1015
  • X社区推广