基于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 小时前
K8s Alloy 采集 Pod 控制台日志
云原生·容器·kubernetes
潮起鲸落入海6 小时前
Kubernetes Metric Server, Quota and Limits
容器·kubernetes
梦想的颜色7 小时前
Docker 容器化本地部署 Claude Code 完整硬核教程|隔离沙盒 + 国产模型直连 + 持久化 Skill
运维·容器·ai 工程化·沙盒隔离·docker 本地部署·claude code硬核实战·国内国产模型接入
摇滚侠7 小时前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 19-25
java·云原生·kubernetes
渣渣盟7 小时前
Docker 运维常用命令手册(含扩容与实战)
运维·docker·容器
我叫张小白。9 小时前
一个微服务电商+社区项目(瓷韵app)的技术深度复盘
docker·微服务·云原生·架构
咕噜咕噜的猪大侠9 小时前
《K8s 核心知识梳理:Deployment 滚动更新、JobCronJob、DaemonSet 和 Service》
云原生·容器·kubernetes
虚心的百褶裙9 小时前
远程调用服务架构设计及zookeeper技术详解(下篇)
分布式·zookeeper·云原生
Geek-Chow9 小时前
微服务认证与授权:08 — OPA(PDP)
微服务·云原生·架构
阿标在干嘛9 小时前
100+微服务的统一出入口:政策快报平台的API网关设计
微服务·云原生·架构