pod探针2:

就绪探针演示:

pod探针2:_第1张图片

pod探针2:_第2张图片

pod探针2:_第3张图片

pod探针2:_第4张图片

演示探针失败

pod探针2:_第5张图片

pod探针2:_第6张图片

pod探针2:_第7张图片

存活探针(livenessProde):探测容器是否是否运行正常,如果探测失败则kubelet杀掉容器(不是Pod),容器会根据重启策略决定是否重启

就绪探针(readlinessProbe),pod的状态是running ready,状态是notready,容器不可以提供正常的业务访问,就绪探针不会重启容器

TcpSocker只是监听容器上的业务端口能否正常通信,8081没有,8080还在,也就是正常的端口还可以访问,如果更改了容器的端口

MySQL 3306 33066

Tcp------>3306

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

启动探针(StartupProbe) :

如果探测失败,pod的是notready,启动探针探测失败,会重启pod

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

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

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

pod探针2:_第8张图片

pod探针2:_第9张图片

pod探针2:_第10张图片

pod探针2:_第11张图片

pod探针2:_第12张图片

启动探针,就绪探针,存活探针多个探针写一起

pod探针2:_第13张图片

pod探针2:_第14张图片

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

pod探针2:_第15张图片

pod探针2:_第16张图片

启动探针成功之后,在pod的生命周期内不会再检测启动探针,重启了pod之后,相当于重新部署了一个初始版新的容器

总结(必须记下来):

  1. 在一个yml文件当中可以有多个探针,启动,存活,就绪都针对一个容器
  2. 启动探针的优先级是最高的,只有启动探针成功,后续的探针才会执行
  3. 启动探针成功之后,后续除非重启pod,不会再出发启动探针了。
  4. 在pod的生命周期当中,伴随pod一直存在,一直探测的是存活探针和就绪探针
  5. 在pod的生命周期当中,后续的条件是满足谁哪个探针的条件,触发哪个探针的条件
  6. 就绪探针,如果不影响容器运行,status:running,这个时候不会重启,但是容器退出的话,就绪探针也是会重启

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

PostStart:容器启动钩子,容器启动之后触发的条件

PretSotp:容器退出钩子,容器退出之后触发的条件

pod探针2:_第17张图片

pod探针2:_第18张图片

解析:

pod探针2:_第19张图片

声明容器内部的挂载目录,要给这个挂载卷取名字,不同挂载卷的名字不能重复

pod探针2:_第20张图片

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

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

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

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

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

启动和退出的作用:

  1. 启动可以自定义配置容器的内的环境
  2. 通知机制,告诉用户容器启动完成
  3. 退出时,可以执行自定义命令,删除或者生成一些必要的程序,自定义销毁方式以及自定回收的方式以及容器的退出等待时间

作业:在这个pod的生命周期时间当中,把启动探针,存活探针和就绪探针加入到yml文件当中

Pod重启策略:

Always:默认策略---->当pod内的容器退出,不论是一个还是两个容器退出,整个pod都会重启

Never:当pod内的容器退出时,退出一个还是退出N个,pod都不重启

OnFailure:当pod内的容器退出时,状态码是0,整个pod都不会重启,只有一个或者N个容器非正常退出,状态码非0,整个pod才会重启

总结:k8s就是集群化管理容器

你可能感兴趣的:(kubernetes)