基于velero和minio实现k8s数据的备份

1.30部署minio

root@k8s-harbor:/etc/kubeasz/clusters/k8s-cluster1# docker run \

-d --restart=always

-p 9000:9000

-p 9090:9090

--name minio

-v /data/minio/data:/data -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=12345678" quay.io/minio/minio server /data --console-address "0.0.0.0:9090"

2a7094a739e28f5bb59eb9da5e3db0960ea002d611d732b822d3cce9af87b26f

在master部署velero

wget https://github.com/vmware-tanzu/velero/releases/download/v1.9.0/velero-v1.9.0-linux-amd64.tar.gz

tar xf velero-v1.9.0-linux-amd64.tar.gz

cd velero-v1.9.0-linux-amd64/

cp velero /usr/bin/

echo 'source <(velero completion bash)' >>~/.bashrc

source .bashrc

velero --help

bash 复制代码
mkdir -p /data/velero
cd /data/velero
vim velero-auth.txt
[default]
aws_access_key_id = admin
aws_secret_access_key = 12345678

部署velero

配置velero访问minio

mkdir -p /data/velero

cd /data/velero

vim velero-auth.txt

default

aws_access_key_id = admin

aws_secret_access_key = Passw0rd

配置velero访问k8s

openssl genrsa --out velero-user.key 2048

openssl req -new -key velero-user.key

-out velero-user.csr

-subj "/CN=velero-user/O=k8s"

openssl x509 -req -days 3650

-CA /etc/kubernetes/ssl/ca.pem

-CAkey /etc/kubernetes/ssl/ca-key.pem -CAcreateserial

-in velero-user.csr -out velero-user.crt

rm -f velero-user.csr

准备kubeconfig认证文件

kubectl config set-cluster k8s-cluster1 --embed-certs

--server=https://192.168.1.24:6443 -

-certificate-authority=/etc/kubernetes/ssl/ca.pem

--kubeconfig=/data/velero/velero-user.config

kubectl config set-credentials velero-user --embed-certs

--client-certificate=/data/velero/velero-user.crt

--client-key=/data/velero/velero-user.key

--kubeconfig=/data/velero/velero-user.config

kubectl config set-context velero-user@k8s-cluster1

--cluster=k8s-cluster1 --user=velero-user

--kubeconfig=/data/velero/velero-user.config

kubectl config use-context velero-user@k8s-cluster1 --kubeconfig=/data/velero/velero-user.config

为velero-user用户授权

kubectl create clusterrolebinding velero-user@clusteradmin --clusterrole=cluster-admin --user=velero-user

安装

kubectl create ns velero-system

velero install --kubeconfig /data/velero/velero-user.config

--provider aws

--plugins velero/velero-plugin-for-aws:v1.3.1

--bucket velero-data

--secret-file /data/velero/velero-auth.txt

--use-volume-snapshots=false

--namespace velero-system \

--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://192.168.1.30:9000

查看安装成功

备份默认名称空间

bash 复制代码
DATE=`date +%Y%m%d%H%M%S`
velero backup create default-ns-backup-${DATE} \
--include-cluster-resources=true \
--include-namespaces default \
--namespace velero-system \
--kubeconfig=/data/velero/velero-user.config

查看备份状态

velero backup get -n velero-system

velero backup create default-ns-backup-${DATE}

--include-cluster-resources=true

--include-namespaces monitoring

--namespace velero-system

--kubeconfig=/data/velero/velero-user.config

相关推荐
阿里云云原生2 小时前
理工科 MCP Server 神器,补足人工智能幻觉短板
云原生
人生偌只如初见2 小时前
Kubernetes学习笔记-配置Service对接第三方访问
kubernetes·k8s
阿里云云原生2 小时前
MCP Server 实践之旅第 1 站:MCP 协议解析与云上适配
云原生
liang89993 小时前
Docker(二):docker常用命令
spring cloud·docker·容器
启明真纳5 小时前
统信操作系统使用默认yum源安装 Docker 的踩坑
运维·docker·容器
云攀登者-望正茂5 小时前
Golang 遇见 Kubernetes:云原生开发的完美结合
云原生·golang·kubernetes
lee_yanyi5 小时前
《一键式江湖:Docker Compose中间件部署108式》开篇:告别“配置地狱”,从此笑傲云原生武林!》
docker·云原生·中间件
阿里云云原生6 小时前
Bolt.diy 一键部署,“一句话”实现全栈开发
云原生
weisian1516 小时前
云原生--核心组件-容器篇-1-Docker和云原生关系(Docker是云原生的基石)
docker·云原生·容器