目標
- 每天在固定時間點,重啟服務。
- 運行N小時后重啟服務。
難點:
- 原先Linux虛擬機部署中,可以輕易實現。
- 現在Docker K8S 如何實現?
解決方案:
- 巧用 rancher 2.* 新特性 -- 存活狀態檢查(liveness)
- 特性說明
- 健康檢查
- 在容器啟動后的N秒后以N秒的頻率執行一次檢查
- TCP 端口檢查
- HTTP 請求狀態檢查(2xx 或 3xx)
- HTTPS 請求狀態檢查(2xx 或 3xx)
- 容器中進程退出狀態碼檢查(0) * 新特性
- 重點 容器中進程退出狀態碼檢查(0)
- 原理說明
- 定時執行一個shell命令
- 執行語句報錯,容器重新部署。
- 單節點執行
- 每個節點都會單獨執行
- 原理說明
- 在容器啟動后的N秒后以N秒的頻率執行一次檢查
- 健康檢查
- 特性說明
- POD定時任務
- 使用 Kubernetes組件-CronJob
實踐指南:
實踐指南 -- 每天特定時間重啟
- 設置
- 設置腳本
- /bin/sh -c 'if [ "$(date +%H%M)" -eq "0130" ];then cat /aa/a ; fi'
- 每天的01點30分鍾,重起一次。
實踐指南 --- 運行特定時間后重啟
- 設置
- 運行12個小時后重啟服務
- 檢查間隔 設置運行時間。
實踐指南 --- POD定時任務--指定運行時間
注意事項:
- 運行命令一定要寫對!他會自動轉換,設置完畢后,最好可以看一下YAML文件,命令是否正確。
- 設置的時間要合理。需要考慮檢查運行的時間與頻率。
特別說明:
- 目前來看,健康檢查設置一項(未驗證), 當前方式設置后,定時端口檢查將不會開啟(未驗證)。