24-周期性备份etcd数据

一、思路

  • 1.备份工具etcdctl
  • 2.使用cj控制器
  • 3.备份时需要使用证书

二、编写Dockerfile

[root@master231 backup]# cp /etc/kubernetes/pki/etcd/{ca.crt,peer.crt,peer.key} /usr/local/bin/etcdctl ./
[root@master231 backup]# 
[root@master231 backup]# ll
total 18016
drwxr-xr-x 2 root root     4096 Apr 10 15:16 ./
drwxr-xr-x 4 root root     4096 Apr 10 15:05 ../
-rw-r--r-- 1 root root     1086 Apr 10 15:09 ca.crt
-rw-r--r-- 1 root root      219 Apr 10 15:16 Dockerfile
-rwxr-xr-x 1 root root 18419864 Apr 10 15:15 etcdctl*
-rw-r--r-- 1 root root     1200 Apr 10 15:09 peer.crt
-rw------- 1 root root     1675 Apr 10 15:09 peer.key
[root@master231 backup]# 
[root@master231 backup]# cat Dockerfile 
FROM  harbor250.oldboyedu.com/oldboyedu-xiuxian/apps:v1

MAINTAINER JasonYin

LABEL school=oldboyedu \
      class=linux96 

COPY etcdctl /usr/local/bin/

COPY ca.crt peer.crt peer.key /


# CMD ["tail","-f","/etc/hosts"]
CMD ["/bin/sh","-c","etcdctl --endpoints=10.0.0.231:2379 --cacert=/ca.crt --cert=/peer.crt --key=/peer.key snapshot save /tmp/oldboyedu-etcd-`date +%F-%T`.backup"]
[root@master231 backup]# 

三、测试验证

[root@master231 backup]# docker build -t etcd-backup:v0.1 .
Sending build context to Docker daemon  18.43MB
Step 1/6 : FROM  harbor250.oldboyedu.com/oldboyedu-xiuxian/apps:v1
# Executing 1 build trigger
 ---> Using cache
 ---> 3702ed09067c
Step 2/6 : MAINTAINER JasonYin
 ---> Using cache
 ---> e45c3391c338
Step 3/6 : LABEL school=oldboyedu       class=linux96
 ---> Using cache
 ---> d713219b897c
Step 4/6 : COPY etcdctl /usr/local/bin/
 ---> Using cache
 ---> f7bdd47d599d
Step 5/6 : COPY ca.crt peer.crt peer.key /
 ---> Using cache
 ---> 0a998727add5
Step 6/6 : CMD ["/bin/sh","-c","etcdctl --endpoints=10.0.0.231:2379 --cacert=/ca.crt --cert=/peer.crt --key=/peer.key snapshot save /tmp/oldboyedu-etcd-`date +%F-%T`.backup"]
 ---> Using cache
 ---> fab91124fe23
Successfully built fab91124fe23
Successfully tagged etcd-backup:v0.1
[root@master231 backup]# 
[root@master231 backup]# docker run -d --name etcd-bak  -v /xixi:/tmp etcd-backup:v0.1
6e60db3b0d27620655343d91d24300e82b10bc43c8aebf07a6debc4fa5e63cfa
[root@master231 backup]# 
[root@master231 backup]# 
[root@master231 backup]# docker ps -l
CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS                      PORTS     NAMES
6e60db3b0d27   etcd-backup:v0.1   "/docker-entrypoint.…"   17 seconds ago   Exited (0) 16 seconds ago             etcd-bak
[root@master231 backup]# 
[root@master231 backup]# 
[root@master231 backup]# ll /xixi/
total 18288
drwxr-xr-x  2 root root    4096 Apr 10 15:24 ./
drwxr-xr-x 22 root root    4096 Apr 10 15:22 ../
-rw-------  1 root root 9355296 Apr 10 15:24 oldboyedu-etcd-2025-04-10-07:24:21.backup
[root@master231 backup]# 

四、使用资源清单改写

posted @ 2025-04-10 22:59  丁志岩  阅读(7)  评论(0)    收藏  举报