繁体   English   中英

如何在pod中运行systemctl

[英]How to run systemctl in a pod

在pod中运行systemctl命令时获取访问被拒绝错误。

每当尝试在pod中启动任何服务(例如,MySQL或tomcat服务器)时,它都会提供访问被拒绝错误。

有什么方法可以在pod中运行systemctl。

这是与Docker有关的问题,而不是Kubernetes。 根据在docker docs 中的容器运行多个服务的页面:

通常建议您通过每个容器使用一个服务来区分关注的区域

但是,如果您真的想使用进程管理器,可以尝试使用supervisord ,它允许您使用类似于systemctl的 supervisorctl命令。 上面的页面解释了如何做到这一点:

下面是使用此方法的示例Dockerfile,它假定预先编写的supervisord.conf,my_first_process和my_second_process文件都存在于与Dockerfile相同的目录中。

FROM ubuntu:latest
RUN apt-get update && apt-get install -y supervisor
RUN mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY my_first_process my_first_process
COPY my_second_process my_second_process
CMD ["/usr/bin/supervisord"]

这是一个相当短暂的问题。 'systemctl'命令确实尝试与默认情况下未在pod中运行的systemd守护进程通信(但它可以)。 运行多个服务是关于服务管理的另一个问题。 在这两种情况下,它都可以帮助使用像docker-systemctl-replacement覆盖/ usr / bin / systemctl这样的工具,并将其注册为容器的init-CMD。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM