涨薪技术|Kubernetes(k8s)之Pod生命周期(下)

上次推文我们学习了Pod生命周期(上)知识:相位、创建与终止、初始化容器,今天继续分享完余下的3个知识:钩子函数、容器探测、重启策略。

01钩子函数

钩子函数能够感知自身生命周期中的事件,并在相应的时刻到来时运行用户指定的程序代码。

k8s在主容器的启动之后和停止之前提供了两个钩子函数.

  • post start:容器创建之后执行,如果失败了会重启容器;

  • pre stop:容器终止之前执行,执行完成之后容器将成功终止,在其完成之前会阻塞删除容器的操作;

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

1)Exec命令:在容器内执行一次命令

......lifecycle:postStart:exec:command:- cat- /tmp/healthy......

2)TCPSocket:在当前容器尝试访问指定的socket

......lifecycle:postStart:tcpSocket:

3)HttpGet:在当前容器中向某url发起http请求

......lifecycle:postStart:httpGet:path: #uri地址port:host:scheme: HTTP #支持的协议,http或者https......

下面演示钩子函数的使用

创建pod-hook-exec.yaml文件,内容如下:​​​​​​​

apiVersion: v1kind: Podmetadata:name: pod-hook-execnamespace: devspec:containers:- name: main-containerimage: nginx:1.17.1ports:- name: nginx-portcontainerPort: 80lifecycle:postStart:exec: #在容器启动的时候执行一个命令,修改掉nginx的默认首页内容command: ["/bin/sh","-c","echo postStart... >/usr/share/nginx/html/index.html"]preStop: #在容器停止之前停止nginx服务exec:command: ["/usr/sbin/nginx","-s","quit"]

使用配置文件​​​​​​​

[root@master ~]# vim pod-hook-exec.yaml[root@master ~]# kubectl create -f pod-hook-exec.yamlpod/pod-hook-exec created[root@master ~]# kubectl get pod pod-hook-exec -n test -o wideNAME READY STATUS RESTARTS AGE IP NODENOMINATED NODE READINESS GATESpod-hook-exec 1/1 Running 0 34s 10.244.104.24 node2<none> <none>[root@master ~]# curl 10.244.104.24:80postStart...

02容器探测

容器探测用于检测容器中的应用实例是否能正常工作,是保障业务可用性的一种传统机制。如果经过探测,实例的状态不符合预期,那么K8S就会把该问题实例“摘除”,不承担业务流量,k8s提供了两种探针来实现容器探测,分别是:

  • livenessprobes:存活性探针,用于检测应用实例当前是否处于正常运行状态,如果不是,k8s会重启容器;

  • readinessprobes:就绪性探针,用于检测应用实例当前是否可以接受请求,如果不能,k8s不会转发流量;

即livenessProbe决定是否重启容器,readinesProbe决定是否将请求转发给容器。

  • startupProbe:使用启动探针来了解应用容器何时启动,如果配置了这个类探针,就可以控制容器在启动成功后再进行存活性liveness和就绪态readiness的检查,确保存活、就绪探针不会影响应用的启动。

探针参数

探针有很多配置参数,可以使用这些参数精确地控制启动、存活和就绪检测的行为。

--initialDelaySeconds:容器启动后要等待多少秒后才启动存活、就绪和启动探针, 默认是 0 秒,最小值是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

川石课堂软件测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值