K8S(rancher) 服務(POD)定時重啟服務方案


目標

  1. 每天在固定時間點,重啟服務。
  2. 運行N小時后重啟服務。

難點:

  1. 原先Linux虛擬機部署中,可以輕易實現。
  2. 現在Docker K8S 如何實現?

解決方案:

  1. 巧用 rancher 2.* 新特性 -- 存活狀態檢查(liveness)
    1. 特性說明
      1. 健康檢查
        1. 在容器啟動后的N秒后以N秒的頻率執行一次檢查
          1. TCP 端口檢查
          2.  HTTP 請求狀態檢查(2xx 或 3xx)
          3.  HTTPS 請求狀態檢查(2xx 或 3xx)
          4.  容器中進程退出狀態碼檢查(0)   * 新特性
        2. 重點 容器中進程退出狀態碼檢查(0)
          1. 原理說明
            1. 定時執行一個shell命令
            2. 執行語句報錯,容器重新部署。
          2. 單節點執行
            1. 每個節點都會單獨執行
  2. POD定時任務
    1. 使用 Kubernetes組件-CronJob 

實踐指南:

 
實踐指南 -- 每天特定時間重啟
 
  • 設置
    1. 1.png
  • 設置腳本
    1. /bin/sh -c 'if [ "$(date +%H%M)" -eq "0130" ];then  cat /aa/a ; fi'
    2. 每天的01點30分鍾,重起一次。
    3. 2.png

實踐指南 --- 運行特定時間后重啟

 
  1. 設置
    1. 運行12個小時后重啟服務
    2. 檢查間隔 設置運行時間。
  2. 3.png

 

實踐指南 --- POD定時任務--指定運行時間

      1602487809555-913.png

 

注意事項:

  • 運行命令一定要寫對!他會自動轉換,設置完畢后,最好可以看一下YAML文件,命令是否正確。
  • 設置的時間要合理。需要考慮檢查運行的時間與頻率。

特別說明:

  • 目前來看,健康檢查設置一項(未驗證), 當前方式設置后,定時端口檢查將不會開啟(未驗證)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM