kubernets之存活探针
一 存活探针存在的意义
1.1 kubernet通过存活探针(liveness probe)检查容器是否还在运行,可以为pod中的每个容器单独指定存活探针,如果探针执行失败,kubernets会重启容器
二 存活探针的三种探测机制
2.1 HTTP GET探针是对容器的IP地址以及指定的端口执行HTTP GET请求,如果探测收到响应,并且响应的返回码是20x,30x则认为探测成功
如果探测的返回值不是或者根本不响应,则表示容器探测失败,需要重启容器
2.2 TCP套接字探针,是尝试在容器里面建立TCP端口连接,建立成功则探测成功,反之,则探测失败
2.3 Exec探针,在容器里面执行任意的命令,如果返回状态码是0则表示探测成功,反之则探测失败,需要重启容器
三 三种存活的创建示范以及代码展示
3.1 创建基于HTTP的存活探针的yaml配置
#cat kubia-liveness-probe.yml
apiVersion: v1
kind: Pod
metadata:
name: kubia-liveness
spec:
containers:
- image: luksa/kubia-unhealthy
name: kubia
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySecond: 15
ports:
- containerPort: 8080
protocol: TCP
3.2 创建该pod
k create -f kubia-liveness-probe.yml
pod/kubia-liveness created
3.3 等待几分钟观察pod的运行状况
[root@node01 Chapter04]# k get po
NAME READY STATUS RESTARTS AGE
kubia-liveness 1/1 Running 5 11m
3.4 观察pod的整个生命周期的状况(省略无关内容)
[root@node01 Chapter04]# k describe po kubia-liveness
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 12m default-scheduler Successfully assigned default/kubia-liveness to node01
Normal Created 6m38s (x3 over 10m) kubelet Created container kubia
Normal Started 6m38s (x3 over 10m) kubelet Started container kubia
Normal Killing 5m22s (x3 over 9m2s) kubelet Container kubia failed liveness probe, will be restarted
Normal Pulling 4m52s (x4 over 12m) kubelet Pulling image "luksa/kubia-unhealthy"
Normal Pulled 4m48s (x4 over 10m) kubelet Successfully pulled image "luksa/kubia-unhealthy"
Warning Unhealthy 2m2s (x13 over 9m22s) kubelet Liveness probe failed: HTTP probe failed with statuscode: 500
可以看到当在pod中加入存活探针之后,kubelet会周期性的去执行HTTP GET探针,并且在返回500返回码是显示探测失败,并重新拉取镜像,而不是简单的重启容器
四 配置有效探针需要注意的几点
4.1 存活探针应该检查什么
以上演示的探针仅仅是一个get请求,检测服务端是否响应,虽然看起来过于简单,但是对比没有探针的情况下已经是大大的进步了,但为了更好的进行存活检查,需要对get请求的路径
做更进一步详细的描述以达到将所有重要的组件进行检查,以确保这些组件都能健康稳定的运行
4.2 保存探针的轻量型
一个探针不应该过多的消耗系统资源,并且不可运行太长时间,这样会大大的减慢容器的运行,因为探针的cpu配额会计入容器的cpu配额
4.3 无需在探针里面实现重复循环
无需在探针检测逻辑实现重复循环
kubernets之存活探针的更多相关文章
- kubernets之就绪探针
一 介绍就绪探针 1.1 开始介绍就绪探针之前,让我们来提问几个问题?第一,在sevice这章我们了解到, 当流量从Ingress被转发到服务,然后服务从其维护当Endponits 里面列表查找到任 ...
- pod健康检查(liveness probe存活探针&&readiness probe 可读性探针)
在Kubernetes集群当中,我们可以通过配置liveness probe(存活探针)和readiness probe(可读性探针)来影响容器的生存周期.参考文档:https://kubernete ...
- Kubernetes学习笔记(二):部署托管的Pod -- 存活探针、ReplicationController、ReplicaSet、DaemonSet、Job、CronJob
存活探针 Kubernetes可以通过存活探针(liveness probe)检查容器是否存活.如果探测失败,Kubernetes将定期执行探针并重新启动容器. 官方文档请见:https://kube ...
- kubernetes的存活探针和就绪探针
1.存活探针 使用Kubernetes的一个主要好处是,可以给Kubernetes-个容器列表来由其保持容器在集群中的运行.可以通过让Kubernetes创建pod资源,为其选择一个工作节点并在该节点 ...
- k8s 存活探针,滚动更新
文章原文 存活探针 Kubelet使用liveness probe(存活探针)来确定何时重启容器.例如,当应用程序处于运行状态但无法做进一步操作,liveness探针将捕获到deadlock,重启处于 ...
- dubbo 协议的 K8s pod 存活探针配置
背景 某项目采用微服务架构,dubbo 框架,K8s 方式部署. 其中 HTTP 协议由网关应用统一处理,大部分应用仅提供 dubbo 协议. 目标 应用某个实例(pod)状态异常时,尝试自动重启恢复 ...
- k8s 存活探针(健康检查)
重启策略 (RestartPolicy ) Always:当容器终止退出后,总是重启容器,默认策略. OnFailure:当容器异常退出(退出状态码非0)时,才重启容器. Never:当容器终止退出, ...
- Kubernetes 存活、就绪探针
在设计关键任务.高可用应用程序时,弹性是要考虑的最重要因素之一. 当应用程序可以快速从故障中恢复时,它便具有弹性. 云原生应用程序通常设计为使用微服务架构,其中每个组件都位于容器中.为了确保Kuber ...
- 【七】Kubernetes 探针介绍 - 存活、就绪探针案例测试
一.探针概述 探针是有 kubelet 对容器执行的定期诊断,并不是由 Master 节点发起的探测,而是由每一个 Node 所在的 kubelet 进行探测,这样可以减轻 Master 节点系统负载 ...
随机推荐
- 搭建本地yum镜像源
Blog:博客园 个人 目录 概述 语法说明 参数说明 部署 配置阿里云源 同步源 建仓 Nginx配置 配置定时计划 yum配置 概述 由于内网有大量机器不能访问公网,安装软件比较费劲,那么,如何让 ...
- 【JAVA基础】static的定义
public class STATIC { public static void main(String[] args) { // 创建两个不同的类 只要赋值一个 另外一个定义好的static属性 会 ...
- 快用Django REST framework写写API吧
Django默认是前后端绑定的,提供了Template和Form,现在流行前后端分离项目,Python大佬坐不住了,于是便有了Django REST framework:https://github. ...
- Hive JDBC执行load时无法从本地加载数据
通过hive-jdcv连接hive server,在应用服务端执行以下命令,报错:Hiver Server节点上找不到data.txt load data local inpath '/home/dw ...
- 一文搞懂Java引用拷贝、浅拷贝、深拷贝
微信搜一搜 「bigsai」 专注于Java和数据结构与算法的铁铁 文章收录在github/bigsai-algorithm 在开发.刷题.面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况 ...
- 【Python】自动化测试的7个步骤
我们对自动化测试充满了希望,然而,自动化测试却经常带给我们沮丧和失望.虽然,自动化测试可以把我们从困难的环境中解放出来,在实施自动化测试解决问题的同时,又带来同样多的问题.在开展自动化测试的工作中,关 ...
- 网站开发学习Python实现-Django学习-自学注意(6.1.3)
@ 目录 1.配置文件相关 2.应用创建相关 3.项目相关 4.模板相关 5.其他 关于作者 1.配置文件相关 1.可以更改时间,地区相关(国际化) 2.BASE_DIR很重要,一个工程要有很好的移植 ...
- Gopher协议在SSRF漏洞中的深入研究
如果需要大佬写好的脚本,可以直接去github上面搜 参考文章:https://zhuanlan.zhihu.com/p/112055947 https://www.cnblogs.com/Konmu ...
- SQL注入练习第一天
MySQL 相关知识 在MySQL中,把[INFORMATION_SCHEMA] 看作是一个数据库,确切说是信息数据库.其中保存着关于MySQL服务器所维护的所有其他数据库的信息.如数据库名,数据库的 ...
- 不一样的资产安全 3D 可视化平台
前言 数字经济时代,应用好数据是企业数字化转型的关键,基于前沿科学技术进行数据的有效管控,更是对数字增值服务的新趋势.近年来,整个安全行业对资产管理的重视程度正在提高.据IDC发布的相关数据显示, ...