前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云TKE集群迁移之velero: 使用velero-plugin-for-tencent插件

腾讯云TKE集群迁移之velero: 使用velero-plugin-for-tencent插件

原创
作者头像
朱瑞卿
修改2021-01-14 14:36:00
1.5K0
修改2021-01-14 14:36:00
举报

背景

velero 是备份和还原kubernetes集群资源的和持久卷的工具, 主要提供了以下功能:

  • 备份还原集群
  • 不同集群间进行迁移
  • 集群复制

tke官方文档中以及有了velero的最佳实践(/document/product/457/50122),本篇文章是在原官方文档中内的补充,针对velero-plugin-for-tencent 插件的使用.

Velero 工作原理图如下图所示(来源于 Velero 官网),当用户执行备份命令时,备份过程说明如下:

  1. 调用自定义资源 API 创建备份对象(1)
  2. BackupController 控制器检测到生成的备份对象时(2)执行备份操作(3)。
  3. 将备份的集群资源和存储卷快照上传到 Velero 的后端存储(4)和(5)。
image.png
image.png

本次测试使用cos作为存储创建cos存储

  1. 打开腾讯云对象存储控制台, 创建存储桶(/document/product/436):
image.png
image.png
  1. 依次打开腾讯云控制台->访问管理--> 访问密钥--> AP密钥管理--> 新建密钥:SecretId: xxx SecretKey: xxx
  2. 创建credentials-velero 内容如下:
代码语言:txt
复制
TENCENT_CLOUD_SECRETID=<SecretId>
TENCENT_CLOUD_SECRETKEY=<SecretKey>

安装velero

  1. mac 下安装:
代码语言:txt
复制
brew install velero
  1. Linux下安装:
代码语言:txt
复制
1.  wget https://github.com/vmware-tanzu/velero/releases/download/v1.5.2/velero-v1.5.2-linux-amd64.tar.gz

2. tar -xvf velero-v1.5.2-linux-amd64.tar.gz

3. mv velero-v1.5.2-linux-amd64/velero /usr/bin/
  1. 部署velero到集群中

先设置环境变量:

代码语言:txt
复制
BUCKET=<YOUR_BUCKET>
REGION=<YOUR_REGION>

执行一下命令进行部署:

代码语言:txt
复制
 velero install \
--provider tencentcloud \
--plugins ccr.ccs.tencentyun.com/ruiqingzhu-tke/velero-plugin-for-tencentcloud:v1 \
--bucket  $BUCKET \
--secret-file  ./credentials-velero \
 --default-volumes-to-restic  --use-restic  --backup-location-config  region=$REGION,insecureSkipTLSVerify="true"

安装过程如下:

image.png
image.png

添加环境变量:

代码语言:txt
复制
kubectl set env deployment/velero TENCENT_CREDENTIALS_FILE=/credentials/cloud -n velero
  1. 检查组件状态, 执行以下命令, 状态为Available, 说明集群访问cos正常:velero backup-location get
image.png
image.png

备份

测试场景从A集群迁移到B集群

  1. 备份A集群
代码语言:txt
复制
velero backup create cluster-a --exclude-namespaces=velero,kube-system,kube-node-lease

查看备份状态:

代码语言:txt
复制
velero backup get cluster-a
image.png
image.png

Status为Completed 表明备份结束。

  1. 备份完成后执行以下命令,将备份存储位置临时更新为只读模式(非必须,可以防止在还原过程时, Velero 在备份存储位置中创建或删除备份对象)。示例如下:kubectl patch backupstoragelocation default --namespace velero \ --type merge \ --patch '{"spec":{"accessMode":"ReadOnly"}}' backupstoragelocation.velero.io/default patched

迁移数据

  1. 在B集群同样部署velero velero install \ --provider tencentcloud \ --plugins ccr.ccs.tencentyun.com/ruiqingzhu-tke/velero-plugin-for-tencentcloud:v1 \ --bucket \ --secret-file ./credentials-velero \ --default-volumes-to-restic --use-restic --backup-location-config region=$REGION,insecureSkipTLSVerify="true --kubeconfig kubeconf-b.config" 注意如果在同一台机器上执行,一定要注意指定集群的kubeconfig文件避免部署到原来的集群中(--kubeconfig 参数)
  2. 迁移命令: velero restore create cluster-b --from-backup cluster-a --kubeconfig kubeconf-b.config
代码语言:txt
复制

? velero_test velero restore create cluster-b --from-backup cluster-a --kubeconfig kubeconf-b.config

Restore request "cluster-b" submitted successfully.

Run velero restore describe cluster-b or velero restore logs cluster-b for more details.

代码语言:txt
复制
  1. 等待还原任务完成后查看还原日志,执行以下命令查看还原是否有报错和跳过信息。示例如下:
代码语言:txt
复制
# 查看迁移时是否有错误的还原信息
velero restore logs <BACKUP-NAME> | grep error 
# 查看迁移时跳过的还原操作
velero restore logs <BACKUP-NAME> | grep skip

验证

使用一下命令查看迁移过后的集群应用信息:

代码语言:txt
复制
kubectl get po --all-namespace

如果部分有问题,需要进步排查,可能需要手动调整。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 安装velero
  • 备份
  • 迁移数据
  • 验证
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com