专业编程基础技术教程

网站首页 > 基础教程 正文

velero实现备份还原

ccvgpt 2024-08-04 12:21:52 基础教程 9 ℃

Velero 是一个开源的 Kubernetes 集群备份和恢复工具,它允许用户轻松安全地备份和恢复他们的 Kubernetes 资源和持久化卷。Velero 由 Kubernetes 的原生 API 驱动,并且与云服务提供商紧密集成,以支持不同的存储解决方案。

helm values文件地址:https://download.csdn.net/download/m0_59744084/89381635

velero实现备份还原

举个例子:

准备工作:

环境:K8S环境

工具:helm(可选)、velero、minio

比如我想备份这个mysql.yaml如下(默认安装一下openebs)或者自己的存储:

apiVersion: v1

kind: ReplicationController

metadata:

namespace: test

name: mysql

labels:

app: mysql

spec:

replicas: 1

selector:

app: mysql

template:

metadata:

labels:

app: mysql

spec:

containers:

- name: mysql

image: nacos/nacos-mysql:5.7

ports:

- containerPort: 3306

env:

- name: MYSQL_ROOT_PASSWORD

value: "root"

- name: MYSQL_DATABASE

value: "nacos_devtest"

- name: MYSQL_USER

value: "nacos"

- name: MYSQL_PASSWORD

value: "nacos"

volumeMounts:

- name: mysql-persistent-storage

mountPath: /var/lib/mysql

subPath: mysql

readOnly: false

volumes:

- name: mysql-persistent-storage

persistentVolumeClaim:

claimName: mysql-dynamic-pvc

---

apiVersion: v1

kind: Service

metadata:

namespace: test

name: mysql

labels:

name: mysql

spec:

type: NodePort

ports:

- port: 3306

targetPort: 3306

selector:

app: mysql

---

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

namespace: test

name: mysql-dynamic-pvc

spec:

accessModes:

- ReadWriteOnce

storageClassName: openebs-hostpath

resources:

requests:

storage: 5Gi

创建好后会看到test命名空间已经创建好了pv也有了。



2.安装一下minio对象存储(这里我用docker测试安装,有自己配置高可用需要的可以用K8S集群安装,这里不过多演示网上有很多教程)

docker run \
-p 19000:9000 \
-p 9090:9090 \
--net=host \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /opt/minio/data:/data \
-v /opt/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":19000"

3.helm安装velero

添加镜像:helm repo add vmware-tanzu https://vmware-tanzu.github.io/helm-charts/

拉取包:helm pull vmware-tanzu/velero --version 6.5.0 --untar

git地址:https://github.com/vmware-tanzu/helm-charts/tree/main/charts/velero

进入values编辑,有很多注释,需要改的地方比较少可以用我的上面改地址:

https://download.csdn.net/download/m0_59744084/89381635

主要要改的地方:


configuration里:

s3Url

s3ForcePathStyle

publicUrl


credentials里:

secretContents

[default]

aws_access_key_id= minio账号

aws_secret_access_key= 密码

定时任务

schedules字段可以自定义schedules时间我设置的每5分钟跑一次


然后就helm install安装:

helm install velero -f ./values ./velero

先删除ns : kubectl delete ns test



velero get backups查看备份


还原:velero restore create --from-backup 你的备份名 --restore-volumes


然后kubectl get ns查看

名字变了还原成功 但是这个测试不带PVC数据 更多集成可以看

https://openebs.io/docs/2.12.x/concepts/localpv

Tags:

最近发表
标签列表