在Kubernetes集群中使用Docker映像启动服务的最佳实践

时间:2019-09-08 08:15:34

标签: docker kubernetes devops

在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传递启动命令是否更好。

1 个答案:

答案 0 :(得分:2)

所以认为这是一个很自以为是的问题,但是我相信一个docker映像应该只具有一个进程(因此最好在dockerrfile中设置它,因为无论您在哪里运行它都不需要对其进行配置)您有时确实会得到一个用例,其中单个docker映像可能具有多个命令,在这种情况下,我建议在Dockerfile中将最常用的命令设置为默认命令,然后在需要时可以使用Kubernetes命令标志覆盖此命令想用其他命令开始图像