主题
velero 安装
bash
# 下载 velero CLI
wget https://github.com/vmware-tanzu/velero/releases/download/v1.15.2/velero-v1.15.2-linux-amd64.tar.gz
tar -xzf velero-v1.15.2-linux-amd64.tar.gz
mv velero-v1.15.2-linux-amd64/velero /usr/local/bin/
velero versionvelero 服务端部署
MinIO 作为备份存储
yaml
# minio.yaml
apiVersion: v1
kind: Namespace
metadata:
name: velero
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: minio
namespace: velero
spec:
replicas: 1
selector:
matchLabels:
app: minio
template:
metadata:
labels:
app: minio
spec:
containers:
- name: minio
image: minio/minio:latest
args:
- server
- /data
- --console-address
- ":9001"
env:
- name: MINIO_ROOT_USER
value: "<MINIO_USER>"
- name: MINIO_ROOT_PASSWORD
value: "<MINIO_PASSWORD>"
ports:
- containerPort: 9000
- containerPort: 9001
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
hostPath:
path: /data/minio
---
apiVersion: v1
kind: Service
metadata:
name: minio
namespace: velero
spec:
type: NodePort
ports:
- name: api
port: 9000
targetPort: 9000
nodePort: 30900
- name: console
port: 9001
targetPort: 9001
nodePort: 30901
selector:
app: minio启动 velero
bash
velero install \
--provider aws \
--bucket k8s-backup \
--plugins velero/velero-plugin-for-aws:v1.11.1 \
--secret-file ./credentials-velero \
--use-node-agent \
--backup-location-config region=minio,s3ForcePathStyle=true,s3Url=http://<MINIO_IP>:30900 \
--namespace velerocredentials-velero 文件内容:
ini
[default]
aws_access_key_id=<MINIO_USER>
aws_secret_access_key=<MINIO_PASSWORD>常用备份操作
备份
bash
# 备份所有资源
velero backup create full-backup
# 备份指定命名空间
velero backup create ns-backup --include-namespaces default,prod
# 备份排除特定资源
velero backup create app-backup --include-namespaces app --exclude-resources secrets
# 定时备份(每天凌晨 2 点)
velero schedule create daily-backup --schedule="0 2 * * *" --include-namespaces default,prod
# 查看备份列表
velero backup get
# 查看备份详情
velero backup describe full-backup --details恢复
bash
# 从备份恢复
velero restore create --from-backup full-backup
# 恢复指定命名空间
velero restore create ns-restore --from-backup full-backup --include-namespaces prod
# 查看恢复列表
velero restore get
# 查看恢复详情
velero restore describe ns-restore --details清理
bash
# 删除备份
velero backup delete full-backup
# 删除定时任务
velero schedule delete daily-backup