应用在运行过程不可避免会出现各种问题导致服务不可用的情况发生,K8S的Health Check健康检查机制可以对这些异常服务进行重启、剔除等操作,保障高可用。

一、K8S的健康检查探针

K8S的探针主要有3种,主要是探测的阶段不同:

1、readiness probes:容器就绪检查,用于检查容器是否能接收到流量,只有当状态正常才会加入到services中

2、liveness probes:在线检查机制,用于检查应用是否可用,如出现无法响应、死锁等异常时自动重启容器,能一定程度实现运维自动化

3、starup probes:启动检查机制,避免一些需要长时间启动的容器被前面的探针杀掉。该探针排在首位,直到它工作完成才会进行另外2种探针的探测

二、K8S探针工作方式

1、exec方式:设置一个命令作为探查命令,对其返回结果做判断

该示例会创建⼀个容器,容器启动时创建/tmp/liveness-probe.log,然后10秒后将其删除。通过liveness探针的exec方法去执行命令ls -l /tmp/liveness-probe.log,通过⽂件返回码判断健康状态。如果返回码⾮0会⾃动将该容器重启

cat centos-exec-liveness-probe.yaml

apiVersion: v1

kind: Pod

metadata:

name: exec-liveness-probe

annotations:

kubernetes.io/description: "exec-liveness-probe"

spec:

containers:

- name: exec-liveness-probe

image: centos:latest

imagePullPolicy: IfNotPresent

args: #容器启动命令,⽣命周期为30s

- /bin/sh

- -c

- touch /tmp/liveness-probe.log && sleep 10 && rm -f /tmp/liveness-probe.log && sleep 20

livenessProbe:

exec: #健康检查机制,通过ls -l /tmp/liveness-probe.log返回码判断容器的健康状态

command:

- ls

- l

- /tmp/liveness-probe.log

initialDelaySeconds: 1 #初始探测时间,可以设大一点,防止应用还没启动就被认作失败

periodSeconds: 5 #每次探测间隔

timeoutSeconds: 1 #探测超时时间,超时则失败

2、httpGet方式:主要⽤于web场景,对容器内指定的URL发送http请求,然年后根据返回码判断容器健康状态,返回码⼩于4xx即表示健康:

# 定义⼀个nginx应⽤,通过探测http://:port/index.html的⽅式判断健康状态

cat nginx-httpGet-liveness-readiness.yaml

apiVersion: v1

kind: Pod

metadata:

name: nginx-httpget-livess-readiness-probe

annotations:

kubernetes.io/description: "nginx-httpGet-livess-readiness-probe"

spec:

containers:

- name: nginx-httpget-livess-readiness-probe

image: nginx:latest

ports:

- name: http-80-port

protocol: TCP

containerPort: 80

livenessProbe: #健康检查机制,通过httpGet实现实现检查

httpGet:

port: 80

scheme: HTTP

path: /index.html

initialDelaySeconds: 3

periodSeconds: 10

timeoutSeconds: 3

3、tcp连接:以能否与容器建立tcp连接为判断

k8s探针检测php,K8S教程(7)使用探针对容器进行健康检查相关推荐

  1. k8s探针检测php,K8s探针

    K8s中存在两种类型的探针:liveness probe和readiness probe. liveness probe(存活探针) 用于判断容器是否存活,即Pod是否为running状态,如果Liv ...

  2. k8s探针检测php,k8s探针实现grpc健康检查

    这篇文章教大家如何利用k8s实现grpc健康检查 一. 配置Liveness和Readiness探针 kubelet 使用 liveness probe(存活探针)来确定何时重启容器.例如,当应用程序 ...

  3. k8s探针检测php,k8s实践11:kubernetes监测探针简单测试

    探针实践 1.两种探针 readiness probe(就绪探针) 监测容器是否就绪?只有pod里的容器就绪,kubelet才会认为pod处于就绪状态. 就绪探针的作用是控制哪些pod可以作为svc的 ...

  4. K8S使用就绪和存活探针配置健康检查

    本文转自:K8S使用就绪和存活探针配置健康检查 | 王柏元的博客,评论请前往原网站 一. 健康检查 健康检查(Health Check)可用于服务运行的状态监控,比如腾讯旗下的DNSPOD的D监控,要 ...

  5. pod健康检查之容器的存活探针、就绪探针、启动探针

    前言 环境:centos7.9 docker-ce-20.10.9 kubernetes-version v1.22.6 为什么需要存活探针和就绪探针 在前面我们介绍过,可以通过配置restartPo ...

  6. k8s 查看pod流量_Kubernetes K8S之Pod生命周期与探针检测

    K8S中Pod的生命周期与ExecAction.TCPSocketAction和HTTPGetAction探针检测 主机配置规划 Pod容器生命周期 Pause容器说明 每个Pod里运行着一个特殊的被 ...

  7. k8s之Pod详解(五)【Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套教程(基础+高级)】

    参考于Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套教程(基础+高级) Pod Pod的结构 每个Pod中都可以包含一个或者多个容器 这些容器可以分为两类: 用户自定义用的 ...

  8. javaweb k8s_K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程...

    K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程 课程内容是关于Kubernetes微服务架构学习课程,基于K8S开展ASP.NET核心进行微 ...

  9. K8s中Pod的三种健康检查探针

    一.Pod的三种探针 StartupProbe:k8s 1.16版本后新加的探测方式,用于判断容器内应用程序是否已经启动.如果配置了startupProbe,就会先禁止其他的探测,直到它成功为止,成功 ...

最新文章

  1. 【3】npm run build Vue的项目,如何修改相对路径配置
  2. 这5种动态炫酷图,用Python就可以画!
  3. Streams:深入理解Redis5.0新特性
  4. 安装pipenv搭建虚拟环境做flask
  5. linux php在线运行环境,Linux安装php运行环境
  6. ArcGIS实验教程——实验十三:栅格空间插值分析
  7. linux进程管理子系统分析,linux进程管理子系统简要分析
  8. 深度学习—大厂笔试题
  9. 配置文件是什么东西?
  10. mysql 5.1.3_1.1.1 MySQL5.5默认存储引擎的调整(3)
  11. python绘制国际象棋规则口诀_国际象棋摆棋口诀
  12. ubuntu18.04安装cudnn出现错误:FreeImage is not set up correctly. Please ensure FreeImae is set up correctly
  13. 使用iMazing给苹果手机设置专属来电铃声
  14. 10个比Visio更好的流程图制作软件
  15. IntelliJ IDEA 破解方法
  16. QGIS 3.10 矢量样式设置
  17. 展锐Android11安兔兔显示的光圈值修正
  18. python中exec的用法_如何在Python中安全地使用exec()?
  19. 大唐杯知识点汇总大全(一)
  20. 丹佛斯变频器al13故障_丹佛斯变频器十大常见故障分析及维修对策

热门文章

  1. 考虑风光火储的微电网优化调度 介绍:考虑风电、光伏、热电机组和储能优化调度,其中负荷考虑冬季或夏季两种场景
  2. 完成一条微指令四周期英文全称
  3. brendan eich_访谈:Brendan Eich对JavaScript的祝福和诅咒
  4. JST日本压着端子PH系列线对板连接器的PCB封装库
  5. 人体分析Demo-百度API
  6. 4G无线WIFI太阳能低功耗监控摄像头野外4G监控无电无网远程摄像机
  7. JDK1.8新特性Lambda表达式入门
  8. 高中主要物理学史和物理学家及其贡…
  9. Kingbase兼容Oracle语法--连接操作符(+)
  10. 声卡突然听不到监听_声卡没有声音了为什么