zoukankan      html  css  js  c++  java
  • 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文件,命令是否正确。
    • 设置的时间要合理。需要考虑检查运行的时间与频率。

    特别说明:

    • 目前来看,健康检查设置一项(未验证), 当前方式设置后,定时端口检查将不会开启(未验证)。
  • 相关阅读:
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    ssh保持连接不断开
    如何查看linux是否打开虚拟化
    dd命令详解
  • 原文地址:https://www.cnblogs.com/atliwen/p/13802484.html
Copyright © 2011-2022 走看看