c语言sscanf函数的用法是什么
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~