最近需要写一个脚本,一次部署所有POD,测试中发现,有部分POD启动后由于连接依赖服务失败,而导致自身不能正常工作,使用kubelet get po查到的状态也是runing,使用netstat -anp |grep LISTEN ,查询到端口并没有监听。所以想,在app启动异常、并没能启动自身的端口的时候,自动重启一次POD。而k8s已经实现了这个功能,经测试,已经完全解决了我们的问题。以下参考网上的文档,做了一个总结:
  首先将一下关于K8S对于POD监控的两个探针

##Liveness Probes

Kubernetes健康检查被分成 liveness和readiness probes。liveness probes是用来检测你的应用程序是否正在运行。通常情况下,你的程序一崩溃,Kubernetes就会看到这个程序已经终止,然后重启这个程序。但是liveness probes的目的就是捕捉到当程序还没有终止,还没有崩溃或者还没陷入死锁的情况。
例如:定义 TCP liveness probe

    livenessProbe:tcpSocket:port: 8080initialDelaySeconds: 15periodSeconds: 20
这里的意思是在pod创建15s后每隔20s检测8080端口是否正在使用

##Readiness Probes
Readiness Probes跟liveness probes十分相似,只有失效检测的结果是不一样的。Readiness Probes是用来检查你的应用程序是否可以为通信服务。这跟liveness有些微妙的不同。比如,你的应用程序取决于数据库与memcached。如果上面两个都在良好状态,为你的应用提供通信,然后你就可以说这两个都是你的应用的“readiness”。

如果你的应用的readness probe运行失败,那么pod就会从组成service的端点被删除。这样的话,没有准备好的pods就不会有流量通信通过Kubernetes服务发现机制来发送给他们。

例如:定义 TCP readiness probe

    readinessProbe:tcpSocket:port: 8080initialDelaySeconds: 5periodSeconds: 10
这里的意思同上,唯一的不同的意思是表明当前pod可以接受由服务发现导过来的流量了

##Liveness Probes 和 Readiness Probes 可以一起使用:

apiVersion: v1
kind: Pod
metadata:name: goproxylabels:app: goproxy
spec:containers:- name: goproxyimage: k8s.gcr.io/goproxy:0.1ports:- containerPort: 8080readinessProbe:tcpSocket:port: 8080initialDelaySeconds: 5periodSeconds: 10livenessProbe:tcpSocket:port: 8080initialDelaySeconds: 15periodSeconds: 20

Probe中有很多精确和详细的配置,通过它们您能准确的控制livenessreadiness 检查:

initialDelaySeconds:容器启动后第一次执行探测是需要等待多少秒。
periodSeconds:执行探测的频率。默认是10秒,最小1秒。
timeoutSeconds:探测超时时间。默认1秒,最小1秒。
successThreshold:探测失败后,最少连续探测成功多少次才被认定为成功。默认是 1。对于 liveness必须是 1。最小值是 1。
failureThreshold:探测成功后,最少连续探测失败多少次才被认定为失败。默认是 3。最小值是 1。

###总结
所以,大家在使用k8s的时候部署deployment或者ds的时候一定要做pod的监控,因为pod常常是不可预计的,所以我们想要它们按照我们想要的方式运行就需要我们手动的指定pod成功启动的标准,更多资料可以参考:

https://k8smeetup.github.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/

http://dockone.io/article/1386

K8S容器编排之POD健康监控相关推荐

  1. k8s创建pod加入容器_K8S容器编排之POD健康检测(2)

    ReadinessProbe探针配置: ReadinessProbe探针的使用场景livenessProbe稍有不同,有的时候应用程序可能暂时无法接受请求,比如Pod已经Running了,但是容器内应 ...

  2. K8s容器编排、网络、监控+Istio+Serverless最佳云原生核心技术实践

    身为让容器应用实现大规模工业生产的一大功臣,过去几年,Kubernetes  势头迅猛,BAT.京东.美团.字节都走上了全域容器化部署以及云原生架构的康庄大道. 而作为支撑阿里万亿级应用背后的核心,阿 ...

  3. Kubernetes(K8s) —— 容器编排管理技术

    K8s 容器编排管理技术 第一章 是什么 1. 背景 2. 基础概念 Pod 控制器 Service 3. 架构 第二章 环境搭建与安装 1. 虚拟机集群搭建 命令批执行技巧 2. K8s相关软件安装 ...

  4. 容器编排技术 -- Pod 安全策略

    容器编排技术 -- Pod 安全策略 1 什么是 Pod 安全策略? 1.1 RunAsUser 1.2 SELinux 1.3 SupplementalGroups 1.4 FSGroup 1.5  ...

  5. k8s 容器编排(高级版)

    * k8s :容器编排控制平面:API Server :6443用户认证:双向认证SchedulerControllerNode: kube-proxy (node启动pod生成一个iptables规 ...

  6. Kubernetes家族容器小管家Pod在线答疑?

    Kubernetes家族容器小管家Pod在线答疑❓ 不知道学习k8s的小伙伴们有没有跟我一样的疑问? k8s为什么不是直接运行容器,而是让Pod介入? Pod又是什么?为什么在应用容器化如此普遍的情况 ...

  7. Kubernetes(k8s)基础之二:容器编排介绍及概念

    目录 1.k8s对象 2. 容器编排的概念 2.1.K8S是如何对容器编排? 2.2.Pod是怎么创建出来的? 2.3.Pod资源组成的应用如何提供外部访问的? 2.4.Service又是怎么关联到P ...

  8. 容器编排技术 -- 从零开始k8s

    容器编排技术 -- 从零开始k8s 这部文档是面对想要学习Kubernetes集群的读者.如果你对入门指南已经可以满足你对这个列表上所列的需求,我们建议你继续阅读这个,因为他是根据前人积累经验所写的新 ...

  9. ASP.NET Core 借助 K8S 玩转容器编排

    Production-Grade Container Orchestration - Automated container deployment, scaling, and management. ...

最新文章

  1. 机器学习中常用到的知识点总结
  2. 刷新4项文档智能任务纪录,百度TextMind打造ERNIE-Layout登顶文档智能权威榜单
  3. JavaScript 工作原理之十一-渲染引擎及性能优化小技巧
  4. Linux学习记录--数据流重定向
  5. hive 小技巧总结
  6. 通俗易懂讲解JavaScript深拷贝和浅拷贝
  7. 中小企业CRM评测-八百客
  8. springmvc默认方法名为映射名_SpringIoC和SpringMVC的快速入门
  9. 免费发布一个简单而有趣的计算工具
  10. make clean与make distclean的区别-转
  11. js textarea 显示html代码,将Textarea文本设置为正确格式化的HTML代码与jQuery
  12. Google Instant Apps VS 微信小程序
  13. Android API 中文 (54) —— Filterable
  14. Windows下Scintilla的编译,使用
  15. 淘宝/天猫获取sku详情API接口
  16. 基于微信小程序的食堂窗口自助点餐系统
  17. str.substring(0,str.length() -1)用法
  18. 机器视觉学习系列四:身份证识别
  19. 【Vue】菜头学前端 - vue3学习笔记
  20. 20190401每周精品之淘宝

热门文章

  1. vite2+vue3打包后浏览器打开跨域浏览器的错误
  2. 国家电力项目思路总结
  3. Trunk和Access分析
  4. Redhat7.5上使用Pacemaker和Corosync搭建Nginx高可用系统
  5. 3.1 Caffe最优求解过程
  6. 及时止损真的正确吗?
  7. 【JMS】JMS支持的模式讲解
  8. 数字滤波器设计(高通低通)
  9. 反编译 逆向工具集合
  10. mac 提示文件已损坏 解决办法