跳过正文
  1. 博客文章/

Velero 备份迁移工具安装与配置

·252 字·2 分钟·
DevOps Kubernetes Velero Docker-Compose Backup
Zayn
作者
Zayn
专注 Kubernetes、CI/CD、可观测性等云原生技术栈,记录生产环境中的实战经验与踩坑复盘。
目录

环境准备
#

安装基础依赖
#

安装 Docker Compose:

yum install -y docker-compose

部署 MinIO 对象存储
#

创建工作目录并配置 MinIO:

mkdir -p /data/docker-compose/minio && cd /data/docker-compose/minio

cat > docker-compose.yaml << EOF
version: "2.0"
services:
  minio:
    image: minio/minio:RELEASE.2021-03-17T02-33-02Z  # 使用稳定版本镜像
    container_name: minio
    hostname: minio
    restart: always
    tty: true
    ports:
      - "9000:9000"
    volumes:
      - /application/minio/data:/data
      - /application/minio/config:/root/.minio
    environment:
      - "MINIO_ACCESS_KEY=admin"
      - "MINIO_SECRET_KEY=12345678"
    command: "server /data"
EOF

docker-compose up -d  # 启动容器

docker-compose logs -f  # 查看容器启动日志

更多环境变量配置请参考 MinIO 官方文档

安装 Velero
#

下载并安装 Velero 客户端
#

mkdir -p /data/velero && cd /data/velero

# 创建 AWS 凭证文件
cat > credentials-velero << EOF
[default]
aws_access_key_id = admin
aws_secret_access_key = 12345678
EOF

# 下载 Velero 二进制文件
wget https://github.com/vmware-tanzu/velero/releases/download/v1.6.0/velero-v1.6.0-linux-amd64.tar.gz

# 解压并安装
tar xf velero-v1.6.0-linux-amd64.tar.gz
cp -a velero-v1.6.0-linux-amd64/velero /usr/local/bin/

# 验证安装
velero version

预期输出

Client:
        Version: v1.6.0
        Git commit: 5bd70fd8eef316d220317245e46dc6016c348dce
<error getting server version: no matches for kind "ServerStatusRequest" in version "velero.io/v1">

注意:此时显示服务端错误是正常的,因为还未在集群中安装 Velero 服务端组件。

在 Kubernetes 集群中部署 Velero
#

创建命名空间
#

kubectl create ns velero

安装 Velero 服务端组件
#

velero install \
    --image velero/velero:v1.2.0 \
    --provider aws \
    --bucket velero \
    --namespace velero \
    --secret-file ./credentials-velero \
    --velero-pod-cpu-request 200m \
    --velero-pod-mem-request 200Mi \
    --velero-pod-cpu-limit 1000m \
    --velero-pod-mem-limit 1000Mi \
    --use-volume-snapshots=false \
    --use-restic \
    --restic-pod-cpu-request 200m \
    --restic-pod-mem-request 200Mi \
    --restic-pod-cpu-limit 1000m \
    --restic-pod-mem-limit 1000Mi \
    --plugins velero/velero-plugin-for-aws:v1.2.0 \
    --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://nps.treesir.pub:1181

参数说明

  • --image:指定 Velero 镜像版本
  • --provider:存储提供商(使用 AWS S3 兼容接口)
  • --bucket:存储桶名称
  • --secret-file:AWS 凭证文件路径
  • --use-volume-snapshots=false:禁用卷快照功能
  • --use-restic:启用 Restic 进行文件系统备份
  • --backup-location-config:配置备份存储位置

基本使用
#

创建备份
#

创建集群备份,排除系统命名空间:

velero backup create all-tidy --exclude-namespaces kube-system,ingress-nginx,cattle-system,velero

查看备份状态
#

velero backup get
velero backup describe all-tidy

参考资料使用 Velero 备份 Kubernetes 集群

相关文章

Kind 部署本地k8s集群的使用记录
·238 字·2 分钟
Kubernetes Docker DevOps Centos7 Kind
Kubernetes 部署企业级 Kafka 集群完整指南
·3156 字·15 分钟
Kubernetes Kafka Zookeeper Helm Kubernetes Streaming
GitLab Pre-receive 钩子的配置与使用指南
·968 字·5 分钟
DevOps Gitlab Webhook Shell