K8S日记备份脚本

打印 上一主题 下一主题

主题 634|帖子 634|积分 1902

需求阐明:
       如果你现在运维一个K8S平台,此平台由于各种原因最初架构筹划根本没有ELK之类的日记工具,然而研发部又每天向你要日记,实时日记也就算了,关键是要几个月以前哪天哪个点的,而生产环境大于天,没有领导批准绝对不乱动。
问题分析:
       鉴于以上原因,需要写一个脚本把应用日记导出进行长久备份。
       1、Pod日记最大保存70M左右,时限大概是2个小时
       2、根据应用个数,日记大小,每天产生量,保留时限盘算需要硬盘大小
       3、具体逻辑是:
             根据应用名称获取所有Pod具体名字,挨个导出Pod日记,保留在当天的日记目录内,
             而且不停不断的循环导出。
应用场景:
        生产环境未筹划日记长久保存机制的临时解决方案,谁成想竞临时三年之久并仍在继续。
  1. #!/bin/bash
  2. #AUTHOR       : Created by YaoButing
  3. #PLATFORM     : CentOS Linux release 7.8.2003(2003)
  4. #VERSION      : 3.0
  5. #DATE         : 2021-09-08
  6. #DESCRIPTION  : This script is used to Auto download the k8s logs .
  7. ###############################################################################
  8. #变量设置初始值
  9. NUMBER=100
  10. #/data/k8s-logs日志备份目录,根据需要提前规划计算好磁盘大小
  11. cd /data/k8s-logs
  12. while (($NUMBER>0))
  13. do   
  14. #检查当日的日志目录是否存在,不存在则创建  
  15.     if [ -e /data/k8s-logs/`date "+%Y-%m-%d"` ]
  16.     then
  17.             echo "...........................目录已存在..........................."
  18.     else
  19.         mkdir /data/k8s-logs/`date "+%Y-%m-%d"`
  20.         fi       
  21.         cd /data/k8s-logs/`date "+%Y-%m-%d"`/
  22.     #下面两个01是一个编号,一个完整应用日志导出模块,根据应用个数复制添加即可
  23.         ####---  01  ---#################  导出    ABC    日志  ##################
  24.         # CSDN为命名空间,其替换自己的namespace,ABC为应用名称
  25.         for pod in ` kubectl get pod -n CSDN | grep ABC | awk '{print $1}' `
  26.     do
  27.         #每个Pod日志输出15s后停止,这个需要实际测试自己的Pod日志完全输出需要的时间
  28.         timeout 15 kubectl logs -f $pod  -n CSDN > /data/k8s-logs/`date "+%Y-%m-%d"`/ABC-`date "+%Y-%m-%d-%H-%M-%S"`.log
  29.                    echo "                                      $pod                                           日志已导出......"
  30.         done
  31.     #将导出的应用所有Pod日志压缩打包
  32.         tar -zcPvf /data/k8s-logs/`date "+%Y-%m-%d"`/ABC-`date "+%Y-%m-%d-%H"`.tar.gz /data/k8s-logs/`date "+%Y-%m-%d"`/ABC-`date "+%Y-%m-%d-%H"`*.log
  33.     #删除导出的.log文件,只保留压缩包,节省空间
  34.         rm -rf /data/k8s-logs/`date "+%Y-%m-%d"`/*.log
  35.     ####---  01  ---#################  导出    ABC    日志  ##################
  36.         # sleep具体时间同样需要计算,要查看一个‘Pod保存日志的最长时限’,然后减去‘导出所有Pod日志消耗时间’,就是下面的时间,如果应用太多则可能不需要sleep
  37.         sleep 3600
  38. done
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表