千家信息网

使用K8S检查Istio Service流量健康讲析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本文主要给大家介绍使用K8S检查Istio Service流量健康讲析,文章内容都是笔者用心摘选和编辑的,使用K8S检查Istio Service流量健康讲析具有一定的针对性,对大家的参考意义还是比较
千家信息网最后更新 2026年11月03日使用K8S检查Istio Service流量健康讲析

本文主要给大家介绍使用K8S检查Istio Service流量健康讲析,文章内容都是笔者用心摘选和编辑的,使用K8S检查Istio Service流量健康讲析具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下主题内容吧。

Istio利用k8s的探针对service进行流量健康检查,有两种探针可供选择,分别是liveness和readiness:

liveness探针用来侦测什么时候需要重启容器。比如说当liveness探针捕获到程序运行时出现的一个死锁,这种情况下重启容器可以让程序更容易可用。

readiness探针用来使容器准备好接收流量。当所有容器都ready时被视为pod此时ready。比如说用这种信号来控制一个后端服务,当pod没有到ready状态时,服务会从负载均衡被移除。

使用场景:

liveness探针被用来移除异常的pod,不重启pod就无法恢复的应用常使用liveness探针。比如前文提到的死锁,进程会一直处于活跃状态,k8s会认为正常并继续发送流量。但使用liveness探针之后会发现应用已经不再处理请求,继而重启异常pod。

readiness探针被用来控制流量进入pod。比如应用程序需要加载一个大的文件或者需要启动后进行一些配置。但默认只要容器进程启动完成就会有流量发送过来。使用readiness探针会一直等待直到完成所有加载或配置再让流量进入。

两种探针的配置相似,区别在于使用livenessProbe还是readinessProbe字段

探针配置参数:

探针有以下几个参数:

initialDelaySeconds:容器启动之后到启动探针之间的时延

periodSeconds:探针的循环执行时间,最小单位为1秒

timeoutSeconds:探针超时时间,默认值1秒

successThreshold: 成功阈值数,失败之后最小的连续成功信号数,liveness必须是1

failureThreshold:失败阈值数,当探针失败之后,在放弃之前k8s尝试重新执行探针次数,如果是liveness探针放弃意味着重启容器,readiness探针意味着pod标记为unready,默认值为3次。

HTTP探针还有以下额外的参数:

host: 所连接主机名,默认值是pod IP

scheme: HTTP或者HTTPS

path: 访问HTTP 云服务器的路径

httpHeaders: 访问HTTP的报头

port:访问容器的端口

探针可以进行三种操作:

命令行:在容器中执命令行操作,exit 0为成功状态

HTTP请求:向容器发送HTTP GET请求,如果返回值为200-400之间为成功状态

TCP 请求:向指定端口发送TCP请求,如果该端口开放监听,则为成功

下面我们来演示以下健康检查的操作:

命令行操作

首先准备busybox镜像,设置如下的yaml配置文件:

在配置文件中我们设置了一个liveness探针,在容器启动之后的5s,每隔5s去执行一下访问/tmp/healthy这个文件的操作,如果操作成功返回0,则为容器健康,如果返回值不为0, 会重启容器。

当容器启动之后会执行:

touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600

前30s会建立/tmp/healthy文件,30s之后删除,此时访问会返回错误.

使用kubectl create -f ./your-exec-liveness.yaml建立pod

在30s之内通过kubectl describe pod liveness-exec来查看pod状态,为健康:

在30s之后查看pod的状态,发现无法访问文件,返回不健康:

之后查看pod的状态,pod的重启次数为1,此时通过liveness探针检测到不健康状态已经重启pod。

如果使用readiness探针,需要修改上文your-exec-liveness.yaml的红框字段:

通过与上文相同的方法,在30s之前查看pod的状态,为ready:

在30s之后查看pod状态,readiness探针将应用容器置为unready, ready的容器是istio-proxy:

可以看到readiness探针并不会重启容器。

HTTP请求

另一种使用liveness探针的方法是HTTP GET请求,可以用来监测网页的运行状态,我们用google liveness镜像来进行演示:

这里我们让HTTP的云服务器/healthz路径前10s返回200 的OK状态,10s之后返回状态500。

设置如下的配置文件:

liveness探针会向容器的8080端口发送请求访问/healthz, 在容器启动3s之后每隔3s发送一次。我们建立pod并查看pod的运行状态kubectl describe pod liveness-http:

会发现10s之后 liveness探针监测到了返回值是500,状态标记为不健康。

TCP请求

两种探针还可以共同使用,下面以TCP请求为例,TCP和HTTP连接类似。使用google的goproxy镜像,该镜像会在8080端口开放TCP socket连接,使用如下的配置文件:

我们用探针去访问8000端口查看pod状态;此时理论上应该无法连接:

可以看到readiness探针会每隔10s监测,无法访问时会将pod置于unready状态,liveness探针20s监测,无法成功则重启pod。

通过以上演示我们了解了如何配置两种探针和执行三种操作。通过合理的探针配置,可以实时监控Istio各个pod的运行状态,提供方便的应用治理手段。

看完以上关于使用K8S检查Istio Service流量健康讲析,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。

探针 容器 状态 健康 配置 流量 文件 成功 端口 检查 应用 镜像 服务 监测 运行 参数 命令 程序 演示 最小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有格互联网科技 广州大一互联网络科技有限公司 互联网科技工作委员会毛军 深圳科技互联网 互联网金融公司科技 朗涯互联网科技 互联网科技股午盘股票涨跌 成都玖崟互联网科技有限公司乐商圈怎么样 华服互联网科技官网 互联网软件和科技 苏州五指互联网络科技有限 青岛科技大学互联网大赛研究生 互联网新科技动漫ppt素材 佛山市翊博互联网络科技有限公司 银行科技岗属于互联网吗 互联网营销推广黑科技 新氧科技和美国互联网有关系吗 好易买互联网科技 互联网科技创业有什么好项目 恒生科技互联网指数十大成分股 互联网黑科技 天津市摩尔互联网科技 广东万易互联网科技有限公司惠州分公司 金融科技创新监管互联网金融 栖莱科技互联网股份有限公司 呼和浩特新华互联网科技学院 华夏恒生互联网科技013171 智帮互联网科技公司最近动向 上海互联网科技公司ppt 恒生科技指数 中概互联网
0