创建新的豆荚后如何确保已完成删除?

时间:2019-01-07 06:36:45

标签: kubernetes

我正在使用k8s作业系统来运行有状态作业,它需要保持与DB的同步状态。 但是,当节点执行自动升级或重新安排Pod时,会在完成一个删除操作之前立即创建新Pod。 删除完成意味着在正常关闭时间内完成所有清理。

我尝试将.spec.strategy ==“ Recreate”改为使用Deployment,但它似乎仅适用于更新映像,不适用于Pod强制删除。

这是我用来测试k8s行为的代码。

process.on('SIGTERM', () => {
    console.log('Got SIGTERM!');
    setTimeout(() => {
        console.log('really exit');
        process.exit(0);
    }, 20 * 1000);
    setInterval(() => {
        console.log('still alive!', 100);
    })
});

setInterval(() => {
    console.log('alive')
}, 5000);

还有yaml文件

apiVersion: batch/v1
kind: Job
metadata:
  name: testjob
spec:
  template:
    spec:
      containers:
      - name: testjob
        image: mybuiltimage
        imagePullPolicy: Always
      restartPolicy: Never
  backoffLimit: 2

删除由Job控制器创建的Pod并运行kubectl get pod可以同时显示两个(新旧的)运行:一个是终端,另一个处于运行状态。

testjob-f88449f78-k2spt                        1/1     Terminating   0          2m
testjob-f88449f78-rwnwn                        1/1     Running       0          14s

如何在创建新的Pod控制器之前确保删除已完成?

0 个答案:

没有答案