当前位置: 首页 > news >正文

河北省建设工程信息网招标公告seo机构

河北省建设工程信息网招标公告,seo机构,网站建设问一问公司,深圳市住房与建设局网站pod的容器健康检查---探针 probe:k8s对容器执行的定期检查,诊断。 探针的三种规则 所有的探针都是针对容器不是针对pod 1、 存活探针---livenessProbe:探测容器是否正常运行。如果发现探测失败,会杀掉容器。容器会根据重启策略…

pod的容器健康检查---探针

probe:k8s对容器执行的定期检查,诊断。

探针的三种规则

所有的探针都是针对容器不是针对pod

1、 存活探针---livenessProbe:探测容器是否正常运行。如果发现探测失败,会杀掉容器。容器会根据重启策略来决定是否重启。

2、 流量探针/就绪探针:探测容器是否进入ready状态。并做好接受请求的准备

检测失败:Ready 0/1表示没有进入Ready状态。但是status还是Running状态实际上资源是不可用的。service也不会把请求转发到这个pod

3、 启动探针:是在容器启动后开始检测。检测容器内的应用是否启动成功。在启动探测成功之前,所有的其他探针都会处于禁用状态。一旦启动探针结束,后续操作不再受启动探针影响

在一个容器中可以有1个或多个探针。

启动探针:只在容器启动时探测

存活

就绪

probe的检查方法

probe的检测方法三种探针都是通用的

1、 exec探针:在容器中执行命令。如果命令返回码是0表示成功。

应用场景:适用于在容器内自定义检查容器健康状态的情况。

2、 httpGet:对指定IP+端口的容器发送1个httpGet的请求。是通过get请求的响应状态码来判断如果get状态码大于等于200且小于400都表示成功。

应用场景:适用于检测能否响应http的请求。例如:web容器(nginx,tomcat)

3、 tcpSocket:用于检查端口。对指定端口上的容器IP地址进行tcp检查(三次握手),检查对方服务器端口是否打开。如果端口打开则认为探测成功。

应用场景:适用于检查特定容器的端口监听状态。

类似于telnet ip+端口

诊断结果

1、 成功 容器通过了,正常运行

2、 失败 存活探针会重启

3、 未知状态 也是诊断失败。也是根据策略

存活探针

exec方式

实验举例:

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: centosname: centos
spec:replicas: 1selector:matchLabels:app: centostemplate:metadata:labels:app: centosspec:containers:- image: centos:7name: centosimagePullPolicy: Nevercommand: ["/bin/bash", "-c", "touch /opt/123.txt ; sleep 3600"]livenessProbe:exec:command: ["/usr/bin/test", "-e", "/opt/123.txt"]
#添加检测策略initialDelaySeconds: 3
#表示容器启动之后多少秒进行探测。数值建议不要设置太短。因为容器有启动时间,可能会导致无效探测
#3表示3秒periodSeconds: 2
#表示探针探测的间隔时间。每隔多少秒进行一次检查。根据需求自定义。看应用的延迟敏感度。
#如果应用非常重要是核心组件。可以间隔设置小一点failureThreshold: 2
#表示如果探测失败。失败几次之后把容器标记为不健康。
#2表示2次successThreshold: 1
#表示只要成功1次就标记为就绪。数值固定是1不能修改。根据需求自定义添加。可以不加。timeoutSecond: 1
#表示每一次探测的超时时间。每次探测必须在多少秒之内必须完成探测。
#设置时间必须要小于periodSeconds探测间隔时间。
#根据需求自定义添加,可以不加kubectl describe pod 容器名称
#查看容器的详细信息必要的核心指标:initialDelaySeconds: 3
#表示容器启动之后多少秒进行探测。数值建议不要设置太短。因为容器有启动时间,可能会导致无效探测
#3表示3秒periodSeconds: 2
#表示探针探测的间隔时间。每隔多少秒进行一次检查。根据需求自定义。看应用的延迟敏感度。
#如果应用非常重要是核心组件。可以间隔设置小一点failureThreshold: 2
#表示如果探测失败。失败几次之后把容器标记为不健康。
#2表示2次

liveness杀死容器重启。

所有探针策略会伴随整个pod的生命周期除了启动探针

httpGet方式

实验举例:

apiVersion: v1
kind: Pod
metadata:labels:run: nginx1name: nginx1
spec:containers:- image: nginx:1.22name: nginx1livenessProbe:httpGet:scheme: HTTP
#如果是默认http则可以不加port: 80initialDelaySeconds: 4periodSeconds: 2
#表示容器启动之后4秒进行探测
#表示每隔2秒检测一次

杀掉容器开始重启

正确示范:

apiVersion: v1
kind: Pod
metadata:labels:run: nginx1name: nginx1
spec:containers:- image: tomcat:8.0.52name: nginx1livenessProbe:httpGet:scheme: HTTPport: 8080path: /index.jspinitialDelaySeconds: 4periodSeconds: 2

修改为jsp格式测试

tcpSocket方式

实验举例:

apiVersion: v1
kind: Pod
metadata:labels:run: nginx1name: nginx1
spec:containers:- image: tomcat:8.0.52name: nginx1livenessProbe:tcpSocket:port: 8080initialDelaySeconds: 4periodSeconds: 2

错误示范:

apiVersion: v1
kind: Pod
metadata:labels:run: nginx1name: nginx1
spec:containers:- image: tomcat:8.0.52name: nginx1livenessProbe:tcpSocket:port: 8081initialDelaySeconds: 4periodSeconds: 2

总结

存活探针:检测失败后,会杀死容器,然后重启。探针将伴随整个容器的生命周期

1、 exec:相当于执行了一个shell命令。在容器里面执行

shell命令执行成功:返回码是0表示成功。成功1次就是探测成功

2、 httpGet:对web容器发起了一次get请求。可以添加path,指定访问的资源。返回码在大于等于200且小于400的范围之内都算成功。

3、 tcpSocket:相当于telnet,指定的容器监听端口是否打开。是否能和指定的容器监听端口进行通信。

 

就绪探针

exec方式

实验举例:

apiVersion: v1
kind: Pod
metadata:labels:run: centosname: centos
spec:containers:- image: centos:7name: centoscommand: ["/bin/bash", "-c", "sleep 3600"]readinessProbe:exec:command: ["/usr/bin/test", "-e", "/etc/passwd"]initialDelaySeconds: 4periodSeconds: 2

故障模拟:

这里删除探测的/etc/passwd路径测试

httpGet方式

实验举例:

apiVersion: v1
kind: Pod
metadata:labels:run: tomcat3name: tomcat3
spec:containers:- image: tomcat:8.0.52name: tomcat3readinessProbe:httpGet:scheme: HTTPport: 8080path: /index.jspinitialDelaySeconds: 4periodSeconds: 2

故障模拟:

这里修改tomcat容器的端口测试

tcpSocket方式

实验举例:

apiVersion: v1
kind: Pod
metadata:labels:run: nginx1name: nginx1
spec:containers:- image: tomcat:8.0.52name: nginx1readinessProbe:tcpSocket:port: 8080initialDelaySeconds: 4periodSeconds: 2

故障模拟:

这里修改tomcat容器的端口测试

总结

就绪探针(readinessProbe):pod的状态是Running但是pod的状态是notready。这个状态下容器无法提供正常的业务访问。就绪探针不会重启容器。

tcpSocket指示监听容器上的业务端口能否正常通信。如果更改了容器的启动端口。

mysql 3306 33066

tcpSocket---->33066

tcpSocket用于监听指定端口。如果在业务中修改了默认端口。会使用tcpSocket监听业务端口能否正常通信。

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

apiVersion: v1
kind: Pod
metadata:labels:run: nginx1name: nginx1
spec:containers:- image: tomcat:8.0.52name: nginx1readinessProbe:tcpSocket:port: 8080initialDelaySeconds: 4periodSeconds: 2

启动探针

exec方式

apiVersion: v1
kind: Pod
metadata:labels:run: tomcat3name: tomcat3
spec:containers:- image: tomcat:8.0.52name: tomcat3startupProbe:exec:command: ["/usr/bin/test", "-e", "/etc/passwd"]initialDelaySeconds: 4periodSeconds: 2

故障模拟:

这里删除/etc/passwd

heepGet方式

apiVersion: v1
kind: Pod
metadata:labels:run: tomcat3name: tomcat3
spec:containers:- image: tomcat:8.0.52name: tomcat3startupProbe:httpGet:scheme: HTTPport: 8080path: /index.jspinitialDelaySeconds: 4periodSeconds: 2

故障模拟:

这里修改tomcat容器的端口为8081测试

启动探针(startupProbe):如果探测失败。pod的状态是notready状态。启动探针会重启。

总结

启动探针(startupProbe):如果探测失败。pod的状态是notready状态。启动探针会重启。

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

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

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

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

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

6、 就绪探针:如果不影响容器运行。status是running状态。这个时候不会重启。但是一旦容器退出,就绪探针也会重启。

容器启动和退出时的动作

postStart

postStart:容器启动钩子。容器启动之后触发的条件

preStop

preStop:容器退出钩子。容器退出之后触发的条件

实验举例

apiVersion: v1
kind: Pod
metadata:name: nginx2
spec:containers:- name: nginx2image: centos:7command: ["/bin/bash", "-c", "sleep 3600"]volumeMounts:
#声明容器的挂载卷- name: test1
#定义挂载卷名称
#不同挂载卷的名称不能重复mountPath: /opt
#定义挂载卷位置readOnly: false
#设置当前目录是否可读写
#false表示可读可写lifecycle:postStart:exec:command: ["/bin/bash", "-c", "echo hello from start >> /opt/123.txt ; sleep 10"]preStop:exec:command: ["/bin/bash", "-c", "echo hello from stop >> /opt/123.txt"]volumes:
#声明node节点上和容器内的挂载目录- name: test1
#挂载卷的名称要和挂载的容器内挂载卷名称保持一致hostPath:
#指定和容器的挂载目录path: /opt/test
#声明node节点上和容器内的/opt的挂载目录type: DirectoryOrCreate
#如果在节点上目录不存在则自动创建该目录

启动和退出的作用:

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

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

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

http://www.yayakq.cn/news/560356/

相关文章:

  • 网站后台管理程序下载天津模板网页制作报价
  • 沈阳哪个公司可以做网站做自媒体有哪些素材网站
  • 沈阳企业网站优化排名方案南京做网站软件
  • 污染网站代码现在做个企业网站一般多少钱
  • 长沙培训网站建设广州做网站多少
  • 网站建设云创做网站买什么书
  • 网站 手机站开发 cms360的网站排名怎么做
  • 网站被百度降权了怎么办中信建设公司董事长
  • 自己做网站美工自适用网站的建设
  • 提高网站性能电子工程职业学院官网
  • 建立网站项目计划书模板雷神代刷网站推广快速
  • 建设一个网站的具体流程做动漫网站
  • 建设网站代理网站内容授权书
  • 百度上找不到网站个人网站制作流程图片
  • 汽车网站cms大连住房保障网官网
  • 南宁网络营销网站wordpress中文破解主题
  • 怎么做网站识图验证码网络优化工程师发展前景
  • 网站建设所需要软件网站开发资料
  • 企业网站一定要花钱吗技术优化seo
  • 西安模板网站建设套餐莱芜信息港网页
  • 学校网站的建设费用吗仿木鱼网络网站
  • 厦门同安区建设局网站wordpress 全局字段
  • 手机创建网站免费注册wordpress获取当前分类文章数
  • 佛山网站建设电话网站制作模板软件
  • 中核西北建设集团网站小红书3000粉丝推广报价多少
  • 朔州seo网站建设网站设计图尺寸
  • 百度网站与推广装饰设计乙级资质
  • 用什么程序做网站上线了怎么建网站
  • 微信商城小程序怎么做应用宝aso优化
  • 网站中信息更新怎么做的大渡口网站建设