当前位置: 首页 > news >正文

k8s备份etcd3.5

一、思路

1、创建nfs存储类,用作存储备份数据<略>

2、制作用于备份的镜像文件

3、指定cronjob

二、制作镜像


## dockerfile文件# cat Dockerfile 
FROM dhub.kubesre.xyz/centos:7
ADD etcdv359.tar /
RUN mkdir /snapshot# docker build -t registry.k8s.io/etcd:3.5.10-3 .## 测试是否能运行,容器空运行:
# docker run -dt --entrypoint sh registry.k8s.io/etcd:3.5.10-3

三、cronjob

# cat etcd_back.yaml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: etcdbacknamespace: crontabs
spec:storageClassName: "nfs-client"accessModes:- ReadWriteManyresources:requests:storage: 50Gi
---
apiVersion: batch/v1
kind: CronJob
metadata:name: etcddisasterrecoverynamespace: crontabs
spec:schedule: "0 */4 * * *"jobTemplate:spec:template:metadata:labels:app: etcddisasterrecoveryspec:#  affinity:#    nodeAffinity:#      requiredDuringSchedulingIgnoredDuringExecution:#        nodeSelectorTerms:#        - matchExpressions:#          - key: kubernetes.io/hostname#            operator: In#            values:#            - master01  # 选择特定的节点(这里是选择 hostname 为 master01 的节点)nodeName: yl2.dingzhi.comcontainers:  # 定义 Pod 中的容器- name: etcd  # 容器名称image: registry.k8s.io/etcd:3.5.10-3  # 使用的 etcd 镜像版本为 3.5.10-0,此容器经过了加工imagePullPolicy: "IfNotPresent"  # 镜像拉取策略,如果本地已存在该镜像,则不重新拉取command:  # 容器启动命令- sh- -c- "mkdir /snapshot/`date +%Y%m%d%H` \export ETCDCTL_API=3; \etcdv359/etcdctl --endpoints=$ENDPOINT \--cert=/etc/kubernetes/pki/etcd/server.crt \--key=/etc/kubernetes/pki/etcd/server.key \--cacert=/etc/kubernetes/pki/etcd/ca.crt \snapshot save /snapshot/`date +%Y%m%d%H`/snapshot.db; \echo etcd backup success"env:  # 环境变量配置,设置了一个名为 ENDPOINT 的环境变量,值为 "https://127.0.0.1:2379"- name: ENDPOINTvalue: "https://192.168.110.38:2379"volumeMounts:  # 挂载配置,指定了容器中需要挂载的卷和挂载路径- mountPath: "/etc/kubernetes/pki/etcd"  # 将主机上的 /etc/kubernetes/pki/etcd 目录挂载到容器的 /etc/kubernetes/pki/etcd 路径name: etcd-certs- mountPath: "/var/lib/etcd"  # 将主机上的 /var/lib/etcd 目录挂载到容器的 /var/lib/etcd 路径name: etcd-data- mountPath: "/snapshot"  # 将主机上的 /root/etcd/snapshot 目录挂载到容器的 /snapshot 路径name: snapshotsubPath: data/etcd-snapshot  # 在主机上的 /root/etcd/snapshot 目录下,将数据挂载到容器的 /snapshot/data/etcd-snapshot 路径下- mountPath: /etc/localtime  # 将主机上的 /etc/localtime 文件挂载到容器的 /etc/localtime 路径name: lt-configrestartPolicy: OnFailure  # 定义容器重启策略,当容器失败时才会重启volumes:  # 卷配置,定义了 Pod 中使用的卷- name: etcd-certshostPath:path: /etc/kubernetes/pki/etcd  # 使用主机上的 /etc/kubernetes/pki/etcd 目录作为卷- name: etcd-datahostPath:path: /var/lib/etcd  # 使用主机上的 /var/lib/etcd 目录作为卷#- name: snapshot#  hostPath:#    path: /root/etcd/snapshot  # 使用主机上的 /root/etcd/snapshot 目录作为卷- name: snapshotpersistentVolumeClaim:claimName: etcdback- name: lt-confighostPath:path: /etc/localtime  # 使用主机上的 /etc/localtime 文件作为卷#hostNetwork: true  # 使用主机网络模式,Pod 将共享主机的网络命名空间## 建命名空间
# kubectl create ns crontabs## 部署cronjob
# kubectl apply -f etcd_back.yaml

四、检查

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • jenkins任务中无法执行sudo,管理员操作
  • 分块矩阵的转置
  • Vue3源码调试-第二篇
  • 跨界融合:Scratch与硬件的创新集成
  • 网站上线3个多月了,还没有被百度收录怎么办?
  • 配置PXE预启动执行环境:Kickstart自动化无人值守安装
  • 玉米病害-目标检测数据集(包括VOC格式、YOLO格式)
  • ArrayList与顺序表
  • 基于Vue3和Node.js的完整增删改查项目实现教程:从后端封装到前端调用
  • 【Go - 每日一小问: 对未初始化的的 chan 进行读写,会怎么样?为什么?】
  • Android笔试面试题AI答之Kotlin常见考点总结
  • 【Android】Navigation动态设置Graph和Launch参数
  • Qt详解QPropertyAnimation创建属性动画
  • SQLserver中的日期时间
  • 牛津大学发布首篇《Transformer多模态学习》综述论文,23页pdf涵盖310篇文献全面阐述MMT的理论与应用
  • CEF与代理
  • ES10 特性的完整指南
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript 奇技淫巧
  • Laravel Mix运行时关于es2015报错解决方案
  • Object.assign方法不能实现深复制
  • October CMS - 快速入门 9 Images And Galleries
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • passportjs 源码分析
  • Phpstorm怎样批量删除空行?
  • React-redux的原理以及使用
  • use Google search engine
  • Vue UI框架库开发介绍
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 前嗅ForeSpider教程:创建模板
  • 使用Swoole加速Laravel(正式环境中)
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 消息队列系列二(IOT中消息队列的应用)
  • 用简单代码看卷积组块发展
  • 源码安装memcached和php memcache扩展
  • ​决定德拉瓦州地区版图的关键历史事件
  • #14vue3生成表单并跳转到外部地址的方式
  • #if #elif #endif
  • $.ajax中的eval及dataType
  • (+4)2.2UML建模图
  • (39)STM32——FLASH闪存
  • (6)设计一个TimeMap
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (JS基础)String 类型
  • (Note)C++中的继承方式
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (力扣题库)跳跃游戏II(c++)
  • (七)Activiti-modeler中文支持
  • (一)Neo4j下载安装以及初次使用
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • *上位机的定义
  • .bat批处理(二):%0 %1——给批处理脚本传递参数