成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個(gè)小需求,自動(dòng)重啟k8s集群中日志不刷新的POD

云計(jì)算
日常工作中,所有項(xiàng)目都不是完美的,筆者就經(jīng)常遇到這種情況,pod狀態(tài)是running,但是程序卻沒有響應(yīng)。發(fā)生這種情況的原因有很多種,有可能是因?yàn)閗8s健康檢查的原因,比如使用ps檢查進(jìn)程;或者是程序內(nèi)部死循環(huán),但是不退出;再或者網(wǎng)絡(luò)閃斷,程序無(wú)法重連等等。

一個(gè)小需求,自動(dòng)重啟k8s集群中日志不刷新的POD
k8s

需求

日常工作中,所有項(xiàng)目都不是完美的,筆者就經(jīng)常遇到這種情況,pod狀態(tài)是running,但是程序卻沒有響應(yīng)。發(fā)生這種情況的原因有很多種,有可能是因?yàn)閗8s健康檢查的原因,比如使用ps檢查進(jìn)程;或者是程序內(nèi)部死循環(huán),但是不退出;再或者網(wǎng)絡(luò)閃斷,程序無(wú)法重連等等。

無(wú)論什么原因,都會(huì)有解決辦法,但是優(yōu)化需要時(shí)間,在未完全解決之前,問題不能不解決,于是想到了一個(gè)臨時(shí)方案,因?yàn)楣P者公司項(xiàng)目日志是直接打印在stdout的,發(fā)生了程序無(wú)響應(yīng)的情況,比較簡(jiǎn)單的一個(gè)辦法是判斷日志輸出的時(shí)間。基于此,可以簡(jiǎn)單寫一個(gè)小腳本,發(fā)現(xiàn)日志長(zhǎng)時(shí)間不輸出的時(shí)候,重啟pod。

思路

使用kubectl logs命令查看最后一條日志輸出的時(shí)間戳,與服務(wù)器時(shí)間對(duì)比,差值大于閾值,則重啟相應(yīng)POD。當(dāng)然,這只是一個(gè)簡(jiǎn)單的思路,并不適用于大部分場(chǎng)景,但是適合筆者公司,因?yàn)楹诵捻?xiàng)目請(qǐng)求量很大,但凡是超過1分鐘日志不刷新,基本可以斷定100%出現(xiàn)問題了。

此思路其實(shí)也是拋磚引玉,希望能給大家一些靈感,如果有什么更好的辦法,也可以與筆者溝通交流。

簡(jiǎn)單實(shí)現(xiàn)

shell比較簡(jiǎn)單,直接與服務(wù)器交互也比較友好,就是用shell來(lái)寫吧。

  1. #!/bin/sh 
  2. # 獲取當(dāng)前UTC時(shí)間utc_now=`date -u` 
  3. # 將時(shí)間轉(zhuǎn)換為timestamptimestamp_now=`date -d "$utc_now" +%s` 
  4. function restart_pod() { 
  5.     for i in `kubectl get pod -n iot|grep PODNAME|awk '{print $1}'`;do 
  6.         for time in `kubectl logs  --tail=1 --timestamps $i -n iot | awk '{print $1}'`;do 
  7.             timestamp_pod=`date -d "$time" +%s` 
  8.             delay=$(($timestamp_now-$timestamp_pod))            echo $i:$delay            if [ "$delay" -ge "30" ];then 
  9.                 echo "Pod $i 30S內(nèi)沒有最新日志產(chǎn)生,重啟pod!" 
  10.                 echo $i                kubectl delete pod $i -n iot --force --grace-period=0 
  11.                 curlwxFunc "Pod $i 30S內(nèi)沒有最新日志產(chǎn)生,重啟pod!(生產(chǎn)環(huán)境)" 
  12.             fi        done    done}function curlwxFunc() { 
  13.     JSON='{ 
  14.             "msgtype""text"
  15.             "text": { 
  16.                 "content""'$1'" 
  17.             } 
  18.         }' 
  19.     curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx' \ 
  20.     -H 'Content-Type:application/json' \ 
  21.     -d "${JSON}" 
  22. }restart_pod 

腳本很簡(jiǎn)單,先查詢pod,然后看pod最后一條日志時(shí)間,與服務(wù)器時(shí)間對(duì)比,延遲超過30s就重啟pod,并且調(diào)用企業(yè)微信接口發(fā)一條通知。

后記

此方法也是治標(biāo)不治本,治標(biāo)還需要從源頭解決,不過需要時(shí)間,再?zèng)]有解決之前,先用這個(gè)小腳本抗一抗吧。也歡迎大家拍磚。

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2021-04-22 09:46:35

K8SCluster Aut集群

2023-07-04 07:30:03

容器Pod組件

2020-02-29 15:23:15

Kubernetes集群程序

2020-02-29 15:20:18

K8SKubernetes集群

2023-09-03 23:58:23

k8s集群容量

2023-03-05 21:50:46

K8s集群容量

2022-06-01 09:38:36

KubernetesPod容器

2022-11-02 10:21:41

K8s pod運(yùn)維

2021-11-04 07:49:58

K8SStatefulSetMySQL

2023-11-06 01:17:25

主機(jī)容器選項(xiàng)

2024-02-01 09:48:17

2024-03-18 15:44:48

K8S故障運(yùn)維

2021-06-07 08:32:06

K8S集群Poddebug

2023-11-06 07:16:22

WasmK8s模塊

2022-04-22 13:32:01

K8s容器引擎架構(gòu)

2021-07-28 10:10:57

K8SMount PVCPod

2020-07-30 09:10:21

DockerK8s容器

2024-10-23 11:34:18

云計(jì)算KubernetesAkamai

2022-12-28 10:52:34

Etcd備份

2024-05-27 00:00:10

KubernetesK8s云原生
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一区二区视频 | 97国产在线观看 | 亚洲欧美中文日韩在线v日本 | 久久久久久久久久久久一区二区 | 欧美色专区 | 男女午夜激情视频 | 成人av免费| 亚洲欧美日韩激情 | 久久激情五月丁香伊人 | 日韩国产欧美一区 | 日韩有码一区 | 网站黄色在线免费观看 | 国产欧美视频一区二区三区 | 日韩在线视频网址 | 亚洲成人午夜电影 | 99热在线观看精品 | 国产亚洲欧美日韩精品一区二区三区 | 华丽的挑战在线观看 | 天天狠狠 | www国产成人 | 欧美另类视频在线 | 毛片大全 | 天堂一区| 国产综合久久 | 国内精品久久精品 | 欧美成年人 | 91在线视频免费观看 | 亚洲国产一区二区三区在线观看 | a级免费观看视频 | 国产目拍亚洲精品99久久精品 | 欧美三区 | 国产国产精品 | 久久av一区二区三区 | 欧美一区二区三区在线观看视频 | 欧美区在线 | 亚洲欧美激情精品一区二区 | 黄网站涩免费蜜桃网站 | 国产一区二区三区四区五区加勒比 | 精精国产xxxx视频在线播放7 | 亚洲欧美精品 | 91看片在线观看 |