如何在Kubernetes中部署和运行容器,这应该完成工作并终止?
我认为这就是Run-Once的用途,但看起来像it's not supported to work。
我有一些作业,打包在docker映像中,应按需运行一次(按需运行)(数据导入),在此更改中配置更改应触发重新运行,或定期运行(如卷备份)。我的想法是使用restartPolicy: never
部署一个容器,该容器将在完成后停止并扩展为null。
对于这种缺少的功能,我有什么替代方法?
答案 0 :(得分:1)
您可以使用作业/临时作业。此示例来自kubernetes文档:
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
backoffLimit: 5
activeDeadlineSeconds: 100
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
因此,它将计算“ pi”并终止
答案 1 :(得分:1)
如果您希望一个任务仅执行一次或仅在需要时执行,则应定义一个作业。 从官方文档中,您可以看到以下示例:
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
如果要定期执行任务,则应该定义一个作业以及一个cronjob,定义要执行该作业的频率。以下示例也来自官方文档:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure