K8S健康检查--探针

参考链接
https://segmentfault.com/a/1190000021402257

https://jimmysong.io/kubernetes-handbook/guide/configure-liveness-readiness-probes.html

https://www.jianshu.com/p/d87a50272310

 

背景:

在k8s部署服务的时候,会出现pod是running状态,也可以进入到容器中,但是服务端口没有起,尤其再是小组件,没有受到关注的情况下,就会对生产环境造成影响。这个时候就需要加一些健康检查

上面的几个链接都很好的描述了什么是健康检查以及探针,下面我们讲一下如何去使用探针。

案例:

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  labels:
    xxx: yyy
  name: ubot-qa
spec:
  selector:
    matchLabels:
      xxx: yyy
  template:
    metadata:
      labels:
        xxx: yyy
    spec:
      containers:
      - image: xxx.domain.cn/xxx/xxx:v1
        name: xxx
        volumeMounts:
          - name: logdir
            mountPath: /data/research/xxx/log
          - name: configmap
            mountPath: /data/research/xxxx/conf
        env:
        - name: TZ
          value: "Asia/Shanghai"
      dnsPolicy: ClusterFirstWithHostNet
      hostNetwork: true
      nodeSelector:
        xxx: yyy
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /data/log/xxx
        name: logdir
      - configMap:
          name: xxx
        name: configmap
  updateStrategy:
    rollingUpdate:
      maxUnavailable: 1
    type: RollingUpdate


上面是一开始的ds文件,apply后,由于代码bug问题,导致pod起了,容器起了,但是服务没有起。下面加一下健康检查部分配置

livenessProbe:
  exec:
    command: ['sh','-c','netstat -nlp|grep -w 5160']  #检测端口是否存在
  initialDelaySeconds: 10  #Pod开启后,延迟10s再进行检测


  periodSeconds: 3  #检测间隔时长
可以看到该pod重启多次,然后状态成 CrashLoopBackOff,这个时候监控告警就会告出来。

如果是HTTP类型和tcp类型的上面链接中有介绍。
————————————————
版权声明:本文为CSDN博主「wyl9527」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wyl9527/article/details/111040783

你可能感兴趣的:(Java,Spring,Boot,spring)