基于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

相关推荐
人鱼传说1 小时前
docker desktop是一个好东西
运维·docker·容器
小章UPUP2 小时前
Kubernetes (K8s) 与 Podman 的比较
容器·kubernetes·podman
忆~遂愿2 小时前
CANN metadef 核心解析:计算图原型定义、算子元数据抽象与异构系统互操作机制
docker·容器
说实话起个名字真难啊3 小时前
用docker来安装openclaw
docker·ai·容器
恬静的小魔龙4 小时前
【群晖Nas】群晖Nas中实现SVN Server功能、Docker/ContainerManager等
docker·svn·容器
Zfox_4 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
农民工老王5 小时前
K8s 1.31 私有化部署实战:从 Calico 崩溃到 NFS 挂载失败的排坑全记录
云原生·kubernetes
灰子学技术5 小时前
istio从0到1:如何解决分布式配置同步问题
分布式·云原生·istio
广州中轴线5 小时前
OpenStack on Kubernetes 生产部署实战(十四)
kubernetes·智能路由器·openstack
春日见5 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器