本文介绍: Probe.png今天进入 kubernetes运维部分(并不是运维 kubernetes,而是运维应用),其实日常我们部分使用 kubernetes功能就是以往运维工作,现在云原生运维研发关系变得更紧密了。今天主要讲解 Probe 探针相关的功能,探针最实用的功能就是可以控制应用优雅上线就绪探针举个例子,当我们service 关联多个 Pod时候,其中一个 Pod 正…

e7e0d6929b585fb15659751bec2a89f5.png

Probe.png

今天进入 kubernetes 的运维部分(并不是运维 kubernetes,而是运维应用),其实日常我们大部分使用 kubernetes 的功能就是以往运维的工作,现在云原生将运维和研发关系变得更紧密了。

今天主要讲解 Probe 探针相关的功能,探针最实用的功能就是可以控制应用优雅上线

就绪探针

举个例子,当我们的 service 关联多个 Pod时候,其中一个 Pod 正在重启但还没达到可以对外提供服务状态,这时候如果有流量进入

这个请求肯定就会出现异常,从而导致问题,所以我们需要一个和 kubernetes 沟通的渠道,告诉它什么时候可以将流量放进来。5a9caf101da0fca781693a18cf00f6d2.png比如如图所示的情况,红色 Pod 在未就绪时候就不会有流量

使用就绪探针就可以达到类似的效果

readnessProbe:  
  failureThreshold: 3  
  httpGet:  
    path: /ping  
    port: 8081  
    scheme: HTTP  
  periodSeconds: 3  
  successThreshold: 1  
  timeoutSeconds: 1

这个配置也很直接:

没有配置就绪探针时,一旦 PodEndpoint 加入service 中(Pod 进入 Running 状态),请求就有可能转发过来,所以配置就绪探针是非常有必要的。

启动探针

启动探针往往是和就绪探针搭配干活的,如果我们一个 Pod 启动时间过长比如超过上面配置的失败检测次数,此时 Pod 就会被 kubernetes 重启,这样可能会进入无限重启循环

所以启动探针可以先检测一次是否已经启动,直到启动成功后才会做后续的检测。

startupProbe:  
  failureThreshold: 30  
  httpGet:  
    path: /ping  
    port: 8081  
    scheme: HTTP  
  periodSeconds: 5  
  successThreshold: 1  
  timeoutSeconds: 1

这里两个检测接口是同一个,具体得根据自己是实际业务进行配置;比如应用端口启动之后并不代表业务已经就绪了,可能某些基础数据还没加载内存中,这个时候需要自己写其他的接口来配置就绪探针了。

4e980c9466dc47e403c542aea1ba98fb.png

image.png

所有关于探针相关日志都可以在 Pod事件查看比如如果一个应用在启动的过程中频繁重启,那就可以看看是不是某个探针检测失败了。

存活探针

存活探针往往是用于保证应用高可用的,虽然 kubernetes 可以在 Pod 退出自动重启比如 Pod OOM;但应用假死他是检测不出来的。

为了保证这种情况下 Pod 也能被自动重启,就可以配合存活探针使用:

livenessProbe:  
  failureThreshold: 3  
  httpGet:  
    path: /ping  
    port: 8081  
    scheme: HTTP  
  periodSeconds: 3  
  successThreshold: 1  
  timeoutSeconds: 1

一旦接口响应失败,kubernetes 就会尝试重启

8fc7c902d6154012d3f7a826c557806a.png

image.png

总结

0997f41c6905770260cb7a7a17ecb639.png

image.png

以上探针配置最好是可以在研效平台可视化配置,这样维护起来也比较简单

探针是维护应用健康的必要手段,强烈推荐大家都进行配置。

PS:最近也在更新视频号,也会有一些技术干货,动动小手帮主播点播关注88d71c1e622e9a7452238755addaf722.jpeg

a22a7dc0cbd186e76d66ec6ca1f04c1c.jpeg

往期推荐

升级到 Pulsar3.0 后深入了解 JWT 鉴权

五分钟k8s实战-Istio 网关

k8s-服务网格实战-配置 Mesh(灰度发布)

k8s-服务网格实战-入门Istio

如何优雅重启 kubernetes 的 Pod

434826753af9ac491ce92912f92a78fa.gif

分享

54ac48146b03094d1e27b33d70e760c9.gif

收藏

64743487881c978402733a134d3b2d7b.gif

点赞

8cc1501136b082583123f4c55b313c94.gif

点在看

原文地址:https://blog.csdn.net/qq_18661793/article/details/134657706

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_30074.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注