k8s pod 中使用systemctl status 命令,提示:Running in chroot, ignoring request: status
我设置了:securityContext: privileged: true
在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
选项可能会增加容器的安全风险,因此您应该谨慎使用。