在Kubernetes集群中启动Docker容器的最佳方法是什么?使用命令选项创建Kubernetes Pod时,是在Docker容器本身中启动服务还是通过命令传递更好?
我正在使用的映像具有多种服务,因此我尝试通过更改它们运行的服务并将这些映像传递到Kubernetes吊舱来构建许多映像,但是如果我可以从吊舱本身启动服务,我将拥有只管理一张图片。
当前,我有两个Dockerfile,一个用于主进程
FROM node:10
WORKDIR /app
COPY . /app
RUN yarn
CMD ["yarn", "start:app"]
EXPOSE 3000
和另外一个Dockerfile.worker作为我的后台工作者
FROM node:10
WORKDIR /app
COPY . /app
RUN yarn
CMD ["yarn", "start:worker"]
当前,我正在同一代码库中管理两个映像,我在考虑拥有一个映像并从Kubernetes传递启动命令是否更好。
答案 0 :(得分:2)
所以认为这是一个很自以为是的问题,但是我相信一个docker映像应该只具有一个进程(因此最好在dockerrfile中设置它,因为无论您在哪里运行它都不需要对其进行配置)您有时确实会得到一个用例,其中单个docker映像可能具有多个命令,在这种情况下,我建议在Dockerfile中将最常用的命令设置为默认命令,然后在需要时可以使用Kubernetes命令标志覆盖此命令想用其他命令开始图像