gpt4 book ai didi

kubernetes - 在Kubernetes中是否有针对关机或在杀死Pod之前的探针?

转载 作者:行者123 更新时间:2023-12-02 12:04:48 25 4
gpt4 key购买 nike

有没有一种方法可以触发关闭,所以我们可以在关闭前正常关闭所有连接,并且在该探测之后不执行任何操作并使该探测器准备终止。

这包括刷新日志,在移交给新的pod之前保留应用程序的任何状态以及更多用例。

最佳答案

您有2个选择:

  • 容器(PID 1)在删除容器(和容器)之前会收到SIGTERM。您可以捕获SIGTERM并对其采取行动。
  • 您可以使用preStop lifecycle hook

  • 重要的实现细节可以在这里找到: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods

    httpGet示例
    apiVersion: v1
    kind: Pod
    metadata:
    name: prestop-pod
    spec:
    terminationGracePeriodSeconds: 5
    containers:
    - name: nginx
    image: nginx
    lifecycle:
    preStop:
    httpGet:
    # only port is reqired
    port: 80
    path: "?preStop"
    # scheme: HTTP
    # host: ...
    # httpHeaders:
    # name: ...
    # value: ...

    在此文件上的 kubectl apply -f之后,在另一个终端上执行 kubectl log -f prestop-pod的同时运行 kubectl delete pod prestop-pod。您应该看到类似以下内容:
    $ kubectl apply -f prestop.yaml 
    pod/prestop-pod created
    $ kubectl logs -f prestop-pod
    10.244.0.1 - - [21/Mar/2019:09:15:20 +0000] "GET /?preStop HTTP/1.1" 200 612 "-" "Go-http-client/1.1" "-"

    关于kubernetes - 在Kubernetes中是否有针对关机或在杀死Pod之前的探针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55270372/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com