使用kubetctl运行的具有不同kubernetes pod的困难应用运行相同容器映像共享目录

时间:2019-06-20 17:52:06

标签: kubernetes google-kubernetes-engine

我尝试通过应用配置文件在群集上使用同一容器映像运行两个单独的Pod。尽管两个Pod均处于活动状态时,没有共享卷或持久卷,但两个Pod上的同一目录会使用来自另一个Pod的创建文件进行更新,并且写入访问权限会突然更改。使用的容器是直接从dockerhub拉出的jupyter-docker-stacks jupyter / minimum-notebook映像。运行此容器的这些容器是通过应用清单创建的。两个吊舱具有不同的标签和名称。将为每个吊舱创建一个具有唯一名称的服务以供访问。

容器的资源是否会像Docker容器一样在集群上持续存在?我找不到与--rm一起使用的kubectl apply标志等效的内容。

谢谢

3 个答案:

答案 0 :(得分:0)

如果要在作业完成后删除窗格,则可能要应用job而不是pod。在k8s中job的想法是启动一个Pod并完成工作,然后该Pod停止。有关更多信息:https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

答案 1 :(得分:0)

$ kubectl apply -f <fileName>将在广告连播中创建或进行一些更改。如果要使用apply删除窗格,则必须使用$ kubectl delete -f <fileName>

关于共享,如果您有2个单独的清单,则可以为每个容器指定volumeMounts。有关更多信息,请根据您的需求阅读documentation

正如@Kaizhe Huang所建议的,如果您想一次执行某项操作,则可以使用Job;如果要在运行主容器之前在POD中安装某些内容,则可以尝试使用initContainers。有关initContainers here的更多信息。

答案 2 :(得分:0)

您可以检查图像的dockerfile。查看是否有“ VOLUME”声明。如果有,也许他们在主机上共享相同的卷。不确定,但是您可以检查。