Zookeeper 在硬逐出之前,我可以用prestop钩子正常终止进程吗?

np8igboo  于 2022-12-09  发布在  Apache
关注(0)|答案(1)|浏览(65)

我的应用程序在接收SIGTERM时正常停止。正常停止操作正在删除ZooKeeper中的znode。
但我尝试的是在Kubernetes驱逐我的pod之前自动优雅地终止一个进程。
我想将prestop钩子设置为“kill 1”,以便在pod被逐出之前进行一次优雅停止。
我并不指望预停钩在所有情况下都能工作,但我想,这样我会有一些保证。
我不知道我的想法是否可行。

2exbekwf

2exbekwf1#

是的,preStop是可能的--并且涵盖了您的用例。下面是k8s docs示例:

apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: lifecycle-demo-container
    image: nginx
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
      preStop:
        exec:
          command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]

相关问题