Kubernetes----Pod中的钩子函数

网友投稿 299 2022-09-10

Kubernetes----Pod中的钩子函数

一、钩子函数简介

1.1 钩子函数简介

钩子函数能够感知自身生命周期中的事件,并在相应的时刻到来时运行用户指定的程序代码 kubernetes在主容器的启动之后和停止之前提供了两个钩子函数

post start:容器创建之后执行,如果失败了会重启容器pre stop:容器停止之前执行,执行完成之后容器将成功停止,再完成之前会阻塞删除容器的操作

1.2 钩子函数的方式

钩子处理器支持使用如下三种方式定义动作:

exec命令:在容器内执行一次命令

lifecycle: postStart: exec: command: - cat -

tcpSocket: 在当前容器尝试访问指定的socket

lifecycle: postStart: tcpSocket: port: 8000

在当前容器中向某url发起 postStart: path: /users port: 80 host: 192.168.2.150 scheme: HTTP # 或者HTTPS

以上三种方式第一种使用的比较多,其次是第三种,第二种使用的很少

二、钩子函数的使用

2.1 执行命令方式

编辑pod_hook_command.yaml文件,设置钩子函数,如下:

apiVersion: v1kind: Namespacemetadata: name: dev---apiVersion: v1kind: Podmetadata: name: nginx namespace: dev labels: user: redrose2100spec: containers: - name: nginx image: nginx:1.17.1 lifecycle: postStart: exec: command: ["/bin/sh","-c","echo 'hello world...' > /opt/demo.txt"] preStop: exec: command: ["/usr/sbin/nginx","-s","quit"]

使用如下命令创建资源

[root@master pod]# kubectl apply -f pod_hook_command.yamlnamespace/dev createdpod/nginx created[root@master pod]#

这里可以登录容器中查看 /opt/demo.txt文件内容,如下表示已经成功写入

[root@master pod]# kubectl get pod -n devNAME READY STATUS RESTARTS AGEnginx 1/1 Running 0 26m[root@master pod]#[root@master pod]#[root@master pod]# kubectl exec nginx -n dev -it -c nginx /bin/shkubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.# cat /opt/demo.txthello world...#

使用如下命令删除资源

[root@master pod]# kubectl delete -f pod_hook_command.yamlnamespace "dev" deletedpod "nginx" deleted[root@master pod]#

验证socket和http的方式与命令方式类似,使用最多的就是使用命令的方式,其次是http的方式,socket的方式使用的场景比较少

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubernetes----Pod中的容器探测
下一篇:小麦岛火爆全网!网红营销助力下,青岛旅游如何火“出圈”?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~