Luk*_*ent 0 containers docker kubernetes docker-compose devops
我在docker中看到的一个相当常见的设置是让容器旋转执行任务然后退出.这是我经常使用docker-compose执行的操作,其中我有一个执行构建过程的节点容器,并且一旦构建了静态文件就不需要保持原状.在这些情况下,如果我查看docker-compose ps输出,而我的其他容器已启动并在端口上公开,则节点容器状态将为"Exit 0".虽然如果我需要访问这个容器,否则它是休眠的,它可以被旋转.
将此设置转换为Kubernetes有什么好的做法?
我最初的方法是将所有内容放在一个pod中,但是容器退出会导致CrashLoopBackOff,并且由于pod重启策略,pod会一直重新启动.如果我要保留这个设置,我只希望在其他容器之一失败时重启pod.它已将构建静态文件移动到其他容器可访问的卷中.
该容器是否应该移动到另一个不重启的容器中?看起来这样会不必要地使部署复杂化.
通常,为了防止POD 重新使用restartPolicy: Never(更多关于重启策略).
另外,对于你想要"完成"运行的东西,使用被调用的k8s组件Job(更多在Job上):
apiVersion: batch/v1
kind: Job
metadata:
name: <job_name>
spec:
template:
spec:
containers:
<...>
Run Code Online (Sandbox Code Playgroud)
运行Job直到第一次成功(即exit code 0)设置restartPolicy: OnFailure.
| 归档时间: |
|
| 查看次数: |
1104 次 |
| 最近记录: |