是否有办法触发关闭,因此我们可以在关闭之前正常关闭所有连接,并且在该探测之后不执行任何操作并保持该探测准备好被杀死。
这包括刷新日志,在移交给新的pod之前保留应用程序的任何状态以及更多用例。
答案 0 :(得分:2)
您有2个选择:
容器(PID 1)在删除容器(和容器)之前会收到SIGTERM。您可以捕获SIGTERM并对其执行操作。
重要的实施细节可以在这里找到:https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync("myFunctionAppIdGUID", "myClientAppIdGUID", new Uri("https://login.live.com/oauth20_desktop.srf"), new PlatformParameters(PromptBehavior.SelectAccount)).Result;
在此文件上的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