K8S健康檢查--探針
阿新 • • 發佈:2020-12-13
技術標籤:docker+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型別的上面連結中有介紹。