Pod hook介紹
Pod hook(鉤子)是由 Kubernetes 管理的 kubelet 發(fā)起的,當容器中的進程啟動前或者容器中的進程終止之前運行,這是包含在容器的生命周期之中??梢酝瑫r為 Pod 中的所有容器都配置 hook。
Hook 的類型包括兩種:
exec:執(zhí)行一段命令
HTTP:發(fā)送 HTTP 請求
示例如下:
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: ["/usr/sbin/nginx","-s","quit"]
說明:
postStart 在容器創(chuàng)建之后(但并不能保證鉤子會在容器 ENTRYPOINT 之前)執(zhí)行,這時候 Pod 已經(jīng)被調(diào)度到某臺 node 上,被某個 kubelet 管理了,這時候 kubelet 會調(diào)用 postStart 操作,該操作跟容器的啟動命令是在同步執(zhí)行的,也就是說在 postStart 操作執(zhí)行完成之前,kubelet 會鎖住容器,不讓應(yīng)用程序的進程啟動,只有在 postStart 操作完成之后容器的狀態(tài)才會被設(shè)置成為 RUNNING
PreStop 在容器終止之前被同步阻塞調(diào)用,常用于在容器結(jié)束前優(yōu)雅的釋放資源文章來源:http://www.zghlxwxcb.cn/news/detail-610155.html
如果 postStart 或者 preStop hook 失敗,將會終止容器文章來源地址http://www.zghlxwxcb.cn/news/detail-610155.html
到了這里,關(guān)于【云原生】Kubernetes之 Pod hook(鉤子)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!