就绪探针&存活探针&钩子

本文详细解释了Kubernetes中启动、存活和就绪探针在容器管理中的功能,包括它们如何检测容器状态、重启策略以及与容器启动和退出挂钩的关系。此外,还讨论了挂载卷在容器生命周期中的重要性,以及pod重启策略对容器行为的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存活探针 livenessprobe

杀死容器,重启。

就绪探针 readinessProbe

pod的状态是running

ready状态是notready

容器不可以提供正常的业务访问,就绪探针不会重启容器

tcpSocket只是监听荣亲上的业务端口能否正常通信。8081没有,8080还在,也就是正常的端口还是可以访问

如果更改了容器的启动端口,

mysql 3306 33066

tcp----->33066

*存活探针和就绪探针会伴随整个pod的生命周期*

启动探针 statrupProbe

如果启动失败,pod的状态是notready(0/1)

启动探针探测容器启动失败,会重启pod

启动探针没有成功之前,后续的探针都不会执行

启动探针成功之后,在pod的生命周期内不会再检测启动探针

重启了pod之后,相当于重新部署了一个初始版的新的容器

重启的还是pod

总结:

1、在一个yml文件中可以有多个探针。启动、存活、就绪都针对一个容器

2、启动探针的优先级是最高的。只有启动探针成功,后续的探针才会执行

3、启动探针成功之后,后续除非重启pod,否则不会再触发启动探针

4、在pod的生命周期中,一直存在,一直探测的是存活探针和就绪探针

5、在pod的生命周期当中,后续的条件满足哪个探针的条件,触发哪个探针的条件

6、就绪探针,如果不影响容器运行,status;runing,这个时候不会重启,但是,容器退出的话,就绪探针也会重启。

容器启动和退出时的动作:

postStart 容器启动钩子

容器启动之后触发的条件

preStop 容器退出钩子

容器退出之后触发的条件

volumeMounts:

      - name: test1

        mountPath: /opt

        readOnly: false

      lifecycle:

        postStart:

          exec:

            command: ["/bin/bash","-c","echo hello >> /opt/123.txt ; sleep 10"]

        prestop:

          exec:

            command: ["/bin/bash", "-c","echo hi >> /opt/123.txt"]

声明容器内部的挂载目录

要给这个挂载卷取名字,不同的挂载卷的名字不能重复

readonly: false: 可读写

 volumes:

    - name: test1

      hostPath:

        path: /opt/test

        type: DirectoryOrCreate

声明的是node节点上和容器内的/opt的挂载目录

挂载卷的名称和要挂载卷的容器内挂载卷名称要一一对应

hostPath:指定和容器的挂载目录

type: DirectoryOrCreate: 如果节点上的目录不存在,自动创建该目录

#pod会经常被重启或者销毁。一旦容器和node节点做了挂载卷,数据不会丢失

启动和退出的作用:

1、启动可以自定义配置容器的内的环境变量

2、通知机制,告诉用户容器启动完毕

3、退出时,可以执行自定义命令,删除或者生成一些必要的程序,自定义销毁方式以及自定义资源回收方式以及容器的退出等待时间

pod重启策略:在K8S中,都是重启pod

Always(默认策略)  当pod内的容器退出,不论一个还是n个容器退出,整个pod都会重启

Never   当pod内的容器退出,不论一个还是n个容器退出,整个pod都不会重启

onFailure   当pod内的容器退出,状态码是0,不论一个还是两个容器退出,整个pod都不会重启。只有一个或者n个容器非正常退出,状态码非0,整个pod才会重启

K8S就是集群化管理容器。K8S管理对象是封装容器的pod

pod和容器到底是什么

cd /opt

ls

vim 11.yml

apiVersion: v1

kind: Pod

metadata:

  name: nginx2

spec:

  containers:

    - name: nginx2

      image: centos:7

      command: ["bin/bash","-c","sleep 3600"]

      volumeMounts:

      - name: test1

        mountPath: /opt

        readOnly: false

      lifecycle:

        postStart:

          exec:

            command: ["/bin/bash","-c","echo hello >> /opt/123.txt ; sleep 10"]

        preStop:

          exec:

            command: ["/bin/bash", "-c","echo hi >> /opt/123.txt"]

  volumes:

    - name: test1

      hostPath:

        path: /opt/test

        type: DirectoryOrCreate

:wq!

kubectl apply -f 11.yml

kubectl get pod

kubectl get pod -o wide

kubectl describe pod nginx2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

91888888

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

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

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

打赏作者

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

抵扣说明:

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

余额充值