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

相关推荐
Serverless社区18 小时前
函数计算的云上计费演进:从请求驱动到价值驱动,助力企业走向 AI 时代
阿里云·云原生·serverless
资源开发与学习2 天前
Kubernetes集群核心概念 Service
kubernetes
阿里云云原生2 天前
【云栖大会】AI原生、AI可观测、AI Serverless、AI中间件,4场论坛20+议题公布!
云原生
容器魔方2 天前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
muyun28002 天前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
Nazi62 天前
k8s的dashboard
云原生·容器·kubernetes
傻傻虎虎2 天前
【Docker】常用帮忙、镜像、容器、其他命令合集(2)
运维·docker·容器
是小崔啊2 天前
叩丁狼K8s - 概念篇
云原生·容器·kubernetes
AKAMAI3 天前
Sport Network 凭借 Akamai 实现卓越成就
人工智能·云原生·云计算
ajax_beijing3 天前
zookeeper是啥
分布式·zookeeper·云原生