16、k8s-pod的生命周期-主容器-钩子函数(postStart-容器启动时执行、perStop-容器暂停前执行)命令
概念:kubernetes再主容器的启动之后核停止之前提供了两个钩子函数:
·post start:容器创建之后执行、如果失败了会重启容器
·per stop:容器终止之前执行、执行完成之后容器将成功终止、在其完成之前会堵塞删除容器的操作
钩子处理 器支持使用下面三种方式定义动作:
·Exec命令:在容器内执行一次命令
.....
lifecycle:
postStart: #容器启动后
exec: #容器启动后会执行一个命令
command: #需要执行的指令
- cat
- /tmp/healthy
.....
=========================实例==============================
1、创建yaml文件:vim pod-exec.yaml
=====================================================
apiVersion: v1
kind: Pod
metadata:
name: pod-hook-exec
namespace: dev
spec:
containers:
- name: main-container
image: nginx:1.17.1
ports:
- name: nginx-port
containerPort: 80
lifecycle:
postStart:
exec: #在容器启动的时候执行一个命令、修改掉nginx默认首页的内容
command: ["/bin/sh", "-c", "echo postStart... > /usr/share/nginx/html/index.html"]
preStop:
exec: #在容器停止之前停止nginx服务
command: ["/usr/sbin/nginx","-s","quit"]
===========================================================================================
2、执行文件:kubectl create -f pod-exec.yaml
3、查看pod的ip:kubectl get pods pod-hook-exec -ndev -o wide
4、访问容器中的nginx服务:curl 10.244.1.60:80
·TCPSocket:再当前容器尝试访问指定的socket(不常用)
.....
lifecycle:
postStart:
tcpSocket:
port: 8080
....
·HTTPGet:再当前容器中向某个url发起http请求(不常用)
.......
lifecycle:
postStart:
httpGet:
path: / #URI地址
port: 80 #端口号
host: 192.168.177.160 #主机ip
scheme: HTTP #支持的协议,http或者https
.........
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了