利用 Velero 实现将应用跨云迁移到 百度CCE

容器引擎 CCE

  • 功能发布记录
  • 产品描述
    • 介绍
    • 优势
    • 使用限制
    • 应用场景
    • 核心概念
    • 特性
  • 开发指南
    • EFK日志采集系统部署指南
    • 创建LoadBalancer类型的Service
    • Prometheus监控系统部署指南
    • kubectl管理配置
    • 在CCE集群中使用-Network-Policy
  • 常用工具
    • 视图命令行场景示例
  • 产品公告
    • CCE 新版集群管理发布公告
    • CCE 控制台升级公告
    • Kubernetes 版本发布说明
      • CCE发布Kubernetes 1.18版本说明
      • CCE发布Kubernetes 1.30版本说明
      • CCE Kubernetes 版本更新说明
      • CCE发布Kubernetes 1.22版本说明
      • CCE发布Kubernetes 1.20版本说明
      • CCE发布Kubernetes 1.28版本说明
      • CCE发布Kubernetes 1.24版本说明
      • CCE发布Kubernetes 1.26版本说明
    • 安全漏洞修复公告
      • 漏洞CVE-2020-14386修复公告
      • 修复漏洞CVE-2021-30465公告
      • 漏洞CVE-2019-5736修复公告
      • 漏洞CVE-2025-1097、CVE-2025-1098等修复公告
      • 关于 runc 的安全问题(CVE-2024-21626)影响声明
  • 快速入门
    • 快速部署nginx应用
    • 使用CCE容器引擎流程概述
  • 典型实践
    • CCE集群网络说明及规划
    • CCE典型实践之容器网络模式选择
    • Pod异常问题排查
    • 通过 CCE Ingress 实现虚机和容器服务的统一接入
    • CCE集群使用Jenkins持续发布
    • CCE-访问公网实践
    • Linux系统配置常用参数说明
    • 用户使用自定义 CNI 插件方法
    • CCE典型实践之Guestbook搭建
    • 使用KMS对etcd数据加密
    • 添加CGroup V2节点
    • CCE容器运行时选择
    • CCE使用检查清单
    • VPC-ENI模式集群访问公网实践
    • 利用 Velero 实现将应用跨云迁移到 百度CCE
    • 使用 CNI 配置容器内网络参数
    • CCE Resource Recommender 用户文档
    • CCE集群中使用私有镜像实践
    • 云原生AI
      • 使用 CCE AITraining Operator 实现弹性容错训练
      • 部署 TensorFlow Serving 推理服务
      • GPU虚拟化之隔离性最优型的最佳实践
  • 操作指南
    • 多用户访问控制
    • 使用须知
    • 命名空间管理
      • 设置资源配额
      • 设置资源限制
      • 命名空间基本操作
    • 弹性伸缩
      • 使用 cce-autoscaling-placeholder 实现秒级弹性伸缩
      • CCE 集群节点自动伸缩
      • 容器定时水平伸缩(CronHPA)
      • 容器水平伸缩(HPA)
    • 存储管理
      • 使用云盘CDS
      • 使用并行文件存储PFS
      • 使用对象存储BOS
      • 使用并行文件存储PFS L2
      • 使用本地存储
      • 使用数据湖存储加速工具RapidFS
      • 使用文件存储CFS
      • 概述
    • 节点管理
      • 移出节点
      • kubelet容器监控只读端口风险提示
      • 管理污点
      • 设置GPU显存共享
      • 添加节点
      • 自定义Kubelet参数
      • 设置节点封锁
      • 节点排水
      • 管理节点标签
    • 组件管理
      • CCE CSI BOS Plugin 说明
      • Kube Scheduler 说明文档
      • CCE CSI PFS L2 Plugin
      • CCE NodeLocal DNSCache 说明
      • CCE Ingress NGINX Controller 说明
      • CCE RDMA Device Plugin 说明
      • CCE Node Problem Detector 说明
      • CCE Credential Controller 说明
      • Kube Controller Manager 说明
      • CCE Ingress Controller 说明
      • CCE GPU Manager 说明
      • CCE Backup Controller 说明
      • CCE QoS Agent 说明
      • CCE Descheduler 说明
      • 组件概述
      • CCE Image Accelerate 说明
      • CCE Network Plugin说明
      • Kube ApiServer 说明
      • CCE Log Operator 说明
      • CoreDNS 说明
      • CCE NPU Manager 说明
      • CCE AI Job Scheduler 说明
      • CCE LB Controller 说明
      • CCE P2P Accelerator 说明
      • CCE_Hybrid_Manager说明
      • CCE CSI PFS Plugin 说明
      • CCE Deep Learning Frameworks Operator 说明
      • CCE Node Remedier 说明
      • CCE CSI CDS Plugin 说明
      • CCE Ascend Mindx DL说明
      • CCE Calico Felix 说明
      • CCE Virtual Kubelet组件
      • CCE Fluid说明
      • CCE Onepilot 说明
      • CCE CronHPA Controller 说明
      • CCE 动态调度插件说明
    • 云原生AI
      • 云原生AI概述
      • GPU虚拟化
        • MPS 最佳实践&注意事项
        • GPU独占和共享说明
        • GPU在离线混部使用说明
        • GPU虚拟化适配表
        • 单GPU容器共享多卡使用说明
        • 共享GPU场景下的镜像构建注意事项
        • 关闭节点显存共享功能注意事项
      • 队列管理
        • 逻辑队列和物理队列使用说明
        • 修改队列
        • 删除队列
        • 新建队列
      • 任务管理
        • 基于 NCCL的RDMA分布式训练示例
        • 新建AITraining任务
        • 新建PaddlePaddle任务
        • 删除任务
        • 查看任务信息
        • 新建Mxnet任务
        • 新建TensorFlow任务
        • 新建Pytorch任务
      • 数据集管理
        • 删除数据集
        • 操作数据集
        • 查看数据集
        • 新建数据集
      • AI监控大盘
        • 接入监控实例并开启采集任务
        • NVIDIA芯片资源观测
          • AI Job Scheduler组件
          • GPUManager组件
          • GPU资源池总览
          • GPU节点资源
          • GPU工作负载资源
        • 昇腾芯片资源观测
          • 昇腾节点资源
          • 昇腾资源池总览
          • 昇腾工作负载资源
      • AI 加速套件
        • 使用AIAK-Inference 加速推理业务
        • 使用AIAK-Training Pytorch版
        • AIAK 简介
        • 使用 AIAK-Training 部署分布式训练任务
    • Helm管理
      • Helm模板
      • Helm实例
    • 应用管理
      • 部署
      • 保密字典
      • 服务
      • 配置字典
      • 容器组
      • 概述
    • 镜像仓库
      • 使用容器镜像构建服务
      • 镜像仓库基本操作
    • Serverless集群
      • 在Serverless集群中使用Service
      • 产品概述
      • 创建Serverless集群
    • 工作负载
      • 设置工作负载自动水平伸缩
      • Statefulset管理
      • 使用私有镜像创建工作负载
      • Job管理
      • 查看容器组
      • CronJob管理
      • Daemonset管理
      • 免密拉取容器镜像
      • Deployment管理
    • 节点组管理
      • 节点组管理
      • 节点组介绍
      • 升级节点组
      • 添加外部已有节点
      • 自定义节点组 Kubelet 配置
      • 添加备选机型
      • 节点组节点故障检测自愈
      • 配置扩缩容策略
    • 监控日志
      • 使用Prometheus监控集群
      • CCE 事件中心
      • 集群审计仪表盘
      • CCE 集群异常事件报警
      • Java应用监控
      • 集群服务画像
      • 日志管理
      • 集群审计
      • 日志中心
        • 在容器引擎控制台配置采集规则
        • 查看集群控制面日志
        • 日志概述
        • 查看业务日志
        • 使用CRD配置采集规则
    • 网络管理
      • CCE 集群内容器访问集群外服务
      • 容器网段空间耗尽如何继续扩容(VPC-ENI模式)
      • 容器网段空间耗尽如何继续扩容(VPC网络模式)
      • CCE IP Masquerade Agent 用户指南
      • 创建VPC-ENI模式集群
      • 对等连接场景下容器流量转发配置
      • 使用Network Policy网络策略
      • CCE 支持 IPv4 和 IPv6 双栈网络
      • 在CCE集群中使用NetworkPolicy
      • 网络编排
        • 集群 Pod 子网拓扑分布(容器网络 v2)
        • 容器网络 QoS 管理
        • VPC-ENI指定子网分配IP(容器网络 v2)
      • 网络连通性
        • 容器网络通过 NAT 网关访问公网
      • 网络维护
        • CCE容器网络常见错误码对应表
      • DNS
        • DNS 原理概述
        • DNS 问题排查指南
        • CoreDNS 组件手动升级指南
    • 虚拟节点
      • 管理虚拟节点
      • 配置BCIPod
      • 配置bci-profile
    • 备份中心
      • 备份概述
      • 恢复管理
      • 备份仓库
      • 备份管理
    • 巡检与诊断
      • GPU运行环境检查
      • 集群巡检
      • 故障诊断
    • 流量接入
      • NGINX Ingress 使用配置参考
      • CCE基于nginx-ingress实现灰度发布
      • BLB Ingress Annotation说明
      • 通过CCE使用K8S_Ingress
      • 通过YAML创建LoadBalancer_Service
      • 通过CCE使用K8S_Service
      • LoadBalancer Service Annotation说明
      • 使用直连 Pod 模式 LoadBalancer Service
      • Service复用已有负载均衡BLB
      • 通过YAML创建CCE_Ingress
      • 使用 NGINX Ingress
    • 权限管理
      • 配置集群OIDC认证
      • 配置IAM标签权限策略
      • 配置IAM自定义权限策略
      • 配置IAM预置权限策略
      • 权限概述
      • 配置预置RBAC权限策略
    • 配置管理
      • Secret管理
      • Configmap管理
    • 集群管理
      • 集群快照
      • CCE 安全组
      • 查看集群
      • 创建集群
      • 操作集群
      • 升级集群Kubernetes版本
      • 通过kubectl连接集群
      • 托管集群使用说明
      • CCE 支持 GPUSharing 集群
      • CCE节点资源预留说明
      • CCE 节点 CDS 扩容
  • 服务等级协议SLA
    • CCE服务等级协议SLA(V1.0)
  • Solution-Fabric
    • Fabric解决方案
  • API参考
    • 通用说明
    • 公共头和错误返回
    • 概述
  • 常见问题
    • windows下使用kubectl
    • 自动扩缩容常见问题
    • 通过kubectl创建简单的服务
    • 业务应用如何使用负载均衡?
    • 常见问题总览
    • 集群管理常见问题
  • API_V2参考
    • 通用说明
    • Instance相关接口
    • 附录
    • Autoscaler相关接口
    • 组件管理相关接口
    • 套餐适配相关接口
    • Task相关接口
    • 公共头和错误返回
    • Network相关接口
    • 服务域名
    • Cluster相关接口
    • Kubeconfig相关接口
    • InstanceGroup相关接口
    • RBAC相关接口
    • 概述
  • 产品定价
    • 产品定价
  • Solution-Xchain
    • 超级链解决方案
  • SDK
    • Go-SDK
      • 节点组管理
      • 节点管理
      • 集群管理
      • 初始化
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

容器引擎 CCE

  • 功能发布记录
  • 产品描述
    • 介绍
    • 优势
    • 使用限制
    • 应用场景
    • 核心概念
    • 特性
  • 开发指南
    • EFK日志采集系统部署指南
    • 创建LoadBalancer类型的Service
    • Prometheus监控系统部署指南
    • kubectl管理配置
    • 在CCE集群中使用-Network-Policy
  • 常用工具
    • 视图命令行场景示例
  • 产品公告
    • CCE 新版集群管理发布公告
    • CCE 控制台升级公告
    • Kubernetes 版本发布说明
      • CCE发布Kubernetes 1.18版本说明
      • CCE发布Kubernetes 1.30版本说明
      • CCE Kubernetes 版本更新说明
      • CCE发布Kubernetes 1.22版本说明
      • CCE发布Kubernetes 1.20版本说明
      • CCE发布Kubernetes 1.28版本说明
      • CCE发布Kubernetes 1.24版本说明
      • CCE发布Kubernetes 1.26版本说明
    • 安全漏洞修复公告
      • 漏洞CVE-2020-14386修复公告
      • 修复漏洞CVE-2021-30465公告
      • 漏洞CVE-2019-5736修复公告
      • 漏洞CVE-2025-1097、CVE-2025-1098等修复公告
      • 关于 runc 的安全问题(CVE-2024-21626)影响声明
  • 快速入门
    • 快速部署nginx应用
    • 使用CCE容器引擎流程概述
  • 典型实践
    • CCE集群网络说明及规划
    • CCE典型实践之容器网络模式选择
    • Pod异常问题排查
    • 通过 CCE Ingress 实现虚机和容器服务的统一接入
    • CCE集群使用Jenkins持续发布
    • CCE-访问公网实践
    • Linux系统配置常用参数说明
    • 用户使用自定义 CNI 插件方法
    • CCE典型实践之Guestbook搭建
    • 使用KMS对etcd数据加密
    • 添加CGroup V2节点
    • CCE容器运行时选择
    • CCE使用检查清单
    • VPC-ENI模式集群访问公网实践
    • 利用 Velero 实现将应用跨云迁移到 百度CCE
    • 使用 CNI 配置容器内网络参数
    • CCE Resource Recommender 用户文档
    • CCE集群中使用私有镜像实践
    • 云原生AI
      • 使用 CCE AITraining Operator 实现弹性容错训练
      • 部署 TensorFlow Serving 推理服务
      • GPU虚拟化之隔离性最优型的最佳实践
  • 操作指南
    • 多用户访问控制
    • 使用须知
    • 命名空间管理
      • 设置资源配额
      • 设置资源限制
      • 命名空间基本操作
    • 弹性伸缩
      • 使用 cce-autoscaling-placeholder 实现秒级弹性伸缩
      • CCE 集群节点自动伸缩
      • 容器定时水平伸缩(CronHPA)
      • 容器水平伸缩(HPA)
    • 存储管理
      • 使用云盘CDS
      • 使用并行文件存储PFS
      • 使用对象存储BOS
      • 使用并行文件存储PFS L2
      • 使用本地存储
      • 使用数据湖存储加速工具RapidFS
      • 使用文件存储CFS
      • 概述
    • 节点管理
      • 移出节点
      • kubelet容器监控只读端口风险提示
      • 管理污点
      • 设置GPU显存共享
      • 添加节点
      • 自定义Kubelet参数
      • 设置节点封锁
      • 节点排水
      • 管理节点标签
    • 组件管理
      • CCE CSI BOS Plugin 说明
      • Kube Scheduler 说明文档
      • CCE CSI PFS L2 Plugin
      • CCE NodeLocal DNSCache 说明
      • CCE Ingress NGINX Controller 说明
      • CCE RDMA Device Plugin 说明
      • CCE Node Problem Detector 说明
      • CCE Credential Controller 说明
      • Kube Controller Manager 说明
      • CCE Ingress Controller 说明
      • CCE GPU Manager 说明
      • CCE Backup Controller 说明
      • CCE QoS Agent 说明
      • CCE Descheduler 说明
      • 组件概述
      • CCE Image Accelerate 说明
      • CCE Network Plugin说明
      • Kube ApiServer 说明
      • CCE Log Operator 说明
      • CoreDNS 说明
      • CCE NPU Manager 说明
      • CCE AI Job Scheduler 说明
      • CCE LB Controller 说明
      • CCE P2P Accelerator 说明
      • CCE_Hybrid_Manager说明
      • CCE CSI PFS Plugin 说明
      • CCE Deep Learning Frameworks Operator 说明
      • CCE Node Remedier 说明
      • CCE CSI CDS Plugin 说明
      • CCE Ascend Mindx DL说明
      • CCE Calico Felix 说明
      • CCE Virtual Kubelet组件
      • CCE Fluid说明
      • CCE Onepilot 说明
      • CCE CronHPA Controller 说明
      • CCE 动态调度插件说明
    • 云原生AI
      • 云原生AI概述
      • GPU虚拟化
        • MPS 最佳实践&注意事项
        • GPU独占和共享说明
        • GPU在离线混部使用说明
        • GPU虚拟化适配表
        • 单GPU容器共享多卡使用说明
        • 共享GPU场景下的镜像构建注意事项
        • 关闭节点显存共享功能注意事项
      • 队列管理
        • 逻辑队列和物理队列使用说明
        • 修改队列
        • 删除队列
        • 新建队列
      • 任务管理
        • 基于 NCCL的RDMA分布式训练示例
        • 新建AITraining任务
        • 新建PaddlePaddle任务
        • 删除任务
        • 查看任务信息
        • 新建Mxnet任务
        • 新建TensorFlow任务
        • 新建Pytorch任务
      • 数据集管理
        • 删除数据集
        • 操作数据集
        • 查看数据集
        • 新建数据集
      • AI监控大盘
        • 接入监控实例并开启采集任务
        • NVIDIA芯片资源观测
          • AI Job Scheduler组件
          • GPUManager组件
          • GPU资源池总览
          • GPU节点资源
          • GPU工作负载资源
        • 昇腾芯片资源观测
          • 昇腾节点资源
          • 昇腾资源池总览
          • 昇腾工作负载资源
      • AI 加速套件
        • 使用AIAK-Inference 加速推理业务
        • 使用AIAK-Training Pytorch版
        • AIAK 简介
        • 使用 AIAK-Training 部署分布式训练任务
    • Helm管理
      • Helm模板
      • Helm实例
    • 应用管理
      • 部署
      • 保密字典
      • 服务
      • 配置字典
      • 容器组
      • 概述
    • 镜像仓库
      • 使用容器镜像构建服务
      • 镜像仓库基本操作
    • Serverless集群
      • 在Serverless集群中使用Service
      • 产品概述
      • 创建Serverless集群
    • 工作负载
      • 设置工作负载自动水平伸缩
      • Statefulset管理
      • 使用私有镜像创建工作负载
      • Job管理
      • 查看容器组
      • CronJob管理
      • Daemonset管理
      • 免密拉取容器镜像
      • Deployment管理
    • 节点组管理
      • 节点组管理
      • 节点组介绍
      • 升级节点组
      • 添加外部已有节点
      • 自定义节点组 Kubelet 配置
      • 添加备选机型
      • 节点组节点故障检测自愈
      • 配置扩缩容策略
    • 监控日志
      • 使用Prometheus监控集群
      • CCE 事件中心
      • 集群审计仪表盘
      • CCE 集群异常事件报警
      • Java应用监控
      • 集群服务画像
      • 日志管理
      • 集群审计
      • 日志中心
        • 在容器引擎控制台配置采集规则
        • 查看集群控制面日志
        • 日志概述
        • 查看业务日志
        • 使用CRD配置采集规则
    • 网络管理
      • CCE 集群内容器访问集群外服务
      • 容器网段空间耗尽如何继续扩容(VPC-ENI模式)
      • 容器网段空间耗尽如何继续扩容(VPC网络模式)
      • CCE IP Masquerade Agent 用户指南
      • 创建VPC-ENI模式集群
      • 对等连接场景下容器流量转发配置
      • 使用Network Policy网络策略
      • CCE 支持 IPv4 和 IPv6 双栈网络
      • 在CCE集群中使用NetworkPolicy
      • 网络编排
        • 集群 Pod 子网拓扑分布(容器网络 v2)
        • 容器网络 QoS 管理
        • VPC-ENI指定子网分配IP(容器网络 v2)
      • 网络连通性
        • 容器网络通过 NAT 网关访问公网
      • 网络维护
        • CCE容器网络常见错误码对应表
      • DNS
        • DNS 原理概述
        • DNS 问题排查指南
        • CoreDNS 组件手动升级指南
    • 虚拟节点
      • 管理虚拟节点
      • 配置BCIPod
      • 配置bci-profile
    • 备份中心
      • 备份概述
      • 恢复管理
      • 备份仓库
      • 备份管理
    • 巡检与诊断
      • GPU运行环境检查
      • 集群巡检
      • 故障诊断
    • 流量接入
      • NGINX Ingress 使用配置参考
      • CCE基于nginx-ingress实现灰度发布
      • BLB Ingress Annotation说明
      • 通过CCE使用K8S_Ingress
      • 通过YAML创建LoadBalancer_Service
      • 通过CCE使用K8S_Service
      • LoadBalancer Service Annotation说明
      • 使用直连 Pod 模式 LoadBalancer Service
      • Service复用已有负载均衡BLB
      • 通过YAML创建CCE_Ingress
      • 使用 NGINX Ingress
    • 权限管理
      • 配置集群OIDC认证
      • 配置IAM标签权限策略
      • 配置IAM自定义权限策略
      • 配置IAM预置权限策略
      • 权限概述
      • 配置预置RBAC权限策略
    • 配置管理
      • Secret管理
      • Configmap管理
    • 集群管理
      • 集群快照
      • CCE 安全组
      • 查看集群
      • 创建集群
      • 操作集群
      • 升级集群Kubernetes版本
      • 通过kubectl连接集群
      • 托管集群使用说明
      • CCE 支持 GPUSharing 集群
      • CCE节点资源预留说明
      • CCE 节点 CDS 扩容
  • 服务等级协议SLA
    • CCE服务等级协议SLA(V1.0)
  • Solution-Fabric
    • Fabric解决方案
  • API参考
    • 通用说明
    • 公共头和错误返回
    • 概述
  • 常见问题
    • windows下使用kubectl
    • 自动扩缩容常见问题
    • 通过kubectl创建简单的服务
    • 业务应用如何使用负载均衡?
    • 常见问题总览
    • 集群管理常见问题
  • API_V2参考
    • 通用说明
    • Instance相关接口
    • 附录
    • Autoscaler相关接口
    • 组件管理相关接口
    • 套餐适配相关接口
    • Task相关接口
    • 公共头和错误返回
    • Network相关接口
    • 服务域名
    • Cluster相关接口
    • Kubeconfig相关接口
    • InstanceGroup相关接口
    • RBAC相关接口
    • 概述
  • 产品定价
    • 产品定价
  • Solution-Xchain
    • 超级链解决方案
  • SDK
    • Go-SDK
      • 节点组管理
      • 节点管理
      • 集群管理
      • 初始化
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 容器引擎CCE
  • arrow
  • 典型实践
  • arrow
  • 利用 Velero 实现将应用跨云迁移到 百度CCE
本页目录
  • 1.简介
  • 2.安装及配置
  • 2.1 在百度云对象存储创建 BOS Bucket
  • 2.2 获取百度云用户的 AccessKey 和 SecretKey
  • 2.3 确认环境
  • 2.4 安装 Velero 命令工具及服务端
  • 2.4.1 安装 Velero 命令行工具
  • 2.4.2 在阿里ACK安装 CCE-Backup-Controller
  • 2.5 查看备份数据
  • 2.6 备份恢复

利用 Velero 实现将应用跨云迁移到 百度CCE

更新时间:2025-08-21

1.简介

CCE 支持用户使用开源工具 Velero 对云上及私有环境的 Kubernetes 集群进行备份、恢复。用于集群误操作、集群故障、集群迁移等场景。
velero的作用:

  • 灾备能力:提供备份恢复k8s集群的能力
  • 迁移能力:提供拷贝集群资源到其他集群的能力

和 etcd 备份的区别:**

  • etcd 的备份必须拥有 etcd 运维权限,CCE上托管型集群用户无法操作 etcd
  • etcd 更适合单集群内数据备份,不太适合集群迁移
  • etcd 是当前状态备份,velero 可以做到只备份集群内的一部分资源

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

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

image.png
另外当执行还原操作时,Velero 会将指定备份对象的数据从后端存储同步到 Kubernetes 集群完成还原工作。 更多关于 Velero 介绍,请参见Velero 官网文档。
本文将介绍如何使用 百度云对象存储 BOS 作为 Velero 后端存储实现从阿里云ACK到百度智能云CCE的集群备份。

2.安装及配置

如果要将 ACK 上的应用迁移到 CCE 上,需要安装并配置 velero 和 velero-baiducloud-plugin。

  • 在百度云上创建你的 BOS bucket
  • 在百度云上获取你的 AccessKey 和 SecretKey
  • 获取百度云 CCE 发布的迁移组件 CCE-Backup-Controller,在阿里云配置容器镜像示例,并推送 CCE-Backup-Controller 相关镜像
  • 安装 Velero 命令工具及服务端
  • 根据实际情况修改Helm Values
  • 阿里云 ACK 集群安装部署 CCE-Backup-Controller

2.1 在百度云对象存储创建 BOS Bucket

Velero 需要对象存储来存放备份数据,在 百度云上创建你的BOS bucket。
创建 Bucket 的过程参考:对象存储 BOS - 创建 Bucket
示例:

  • bucket 名称:cce-bos-test

2.2 获取百度云用户的 AccessKey 和 SecretKey

关于 AK SK 的更多信息参考: 如何获取 AK 和 SK

2.3 确认环境

  • 源集群:

    • 地域:北京
    • 阿里 ACK 集群 ID
  • 备份到 BOS:

    • bucket:cce-bos-test(示例)
  • 目标集群:

    • 地域:北京
    • 百度 CCE 集群 ID

2.4 安装 Velero 命令工具及服务端

2.4.1 安装 Velero 命令行工具

方法一:MacOS - Homebrew
在 macOS,您可以在终端使用Homebrew 完成 velero 客户端的安装:
brew install velero

方法二:Github release

  • 从 Velero release 页面 下载和使用平台匹配的压缩包
  • 解压压缩包
    tar -xvf <RELEASE-TARBALL-NAME>.tar.gz
    3.将解压得到的 velero 二进制移动到您的 $PATH 环境变量包含的路径下(如 /usr/local/bin)

方法三:Windows - Chocolatey
在 Windows 平台,您可以在终端使用 Chocolatey 完成 velero 客户端的安装。
choco install velero

2.4.2 在阿里ACK安装 CCE-Backup-Controller

我们主要利用 Helm 完成 Velero 服务端的安装。
步骤一:下载 CCE-Backup-Controller Helm Chart,并解压
步骤二:将 CCE-Backup-Controller Helm Chart 中的镜像推送到 阿里云镜像服务,下文统一以阿里云镜像作为示例。
镜像列表:

Plain Text
1registry.baidubce.com/cce-plugin-pro/velero:v1.13.5
2registry.baidubce.com/cce-plugin-pro/velero-plugin-baiducloud:0.6
3registry.baidubce.com/cce-plugin-pro/kubectl:1.24.9

推送到阿里云镜像服务后,镜像列表为:

Plain Text
1registry-vpc.cn-beijing.aliyuncs.com/velero-test/velero:v1.13.5
2registry-vpc.cn-beijing.aliyuncs.com/velero-test/velero-plugin-baiducloud:0.6
3registry-vpc.cn-beijing.aliyuncs.com/velero-test/kubectl:1.24.9

步骤三:配置 CCE-Backup-Controller Chart
安装执行部署 Velero 服务端之前,需要对 Velero 的 Helm Chart 进行正确的配置,即需要正确编辑 Chart 中的 values.yaml 文件。

  1. 替换核心镜像。为了在未开通外网的 CCE 环境中顺利拉取 Velero Helm Chart 中的核心镜像,需要修改 values.yaml 中的镜像地址
  • registry.baidubce.com/cce-plugin-pro/velero:v1.13.2 替换为 registry-vpc.cn-beijing.aliyuncs.com/velero-test/velero:v1.13.2
  • registry.baidubce.com/cce-plugin-pro/velero-plugin-baiducloud:0.6 替换为 registry-vpc.cn-beijing.aliyuncs.com/velero-test/velero-plugin-baiducloud:0.6
  • registry-vpc.cn-beijing.aliyuncs.com/velero-test/kubectl:1.24.9 替换为 registry-vpc.cn-beijing.aliyuncs.com/velero-test/kubectl:1.24.9 修改后,示例 yaml 如下:
Plain Text
1# Details of the container image to use in the Velero deployment & daemonset (if
2# enabling node-agent). Required.
3image:
4  repository: registry-vpc.cn-beijing.aliyuncs.com/velero-test/velero
5  tag: v1.13.2
6  # Digest value example: sha256:d238835e151cec91c6a811fe3a89a66d3231d9f64d09e5f3c49552672d271f38.
7  # If used, it will take precedence over the image.tag.
8  # digest:
9  pullPolicy: IfNotPresent
10  # One or more secrets to be used when pulling images
11  imagePullSecrets: []
12  # - registrySecretName
13  
14kubectl:
15  image:
16    repository: registry-vpc.cn-beijing.aliyuncs.com/velero-test/kubectl
17    tag: 1.24.9
18    # Digest value example: sha256:d238835e151cec91c6a811fe3a89a66d3231d9f64d09e5f3c49552672d271f38.
19    # If used, it will take precedence over the kubectl.image.tag.
20    # digest:
21    # kubectl image tag. If used, it will take precedence over the cluster Kubernetes version.
22    # tag: 1.16.15

2.添加 百度云 Velero 插件。为了能够顺利将集群备份文件保存到 百度云 BOS,CCE 提供了 Velero 插件。该配置需要添加到 initContainer 配置中。修改后示例 Yaml 如下:

Plain Text
1initContainers:
2  - name: velero-plugin-baiducloud
3    image: hub.baidubce.com/jpaas-public/velero-plugin-baiducloud:v0.3
4    imagePullPolicy: IfNotPresent
5    env:
6    - name: BAIDU_CLOUD_CREDENTIALS_FILE
7      value: "/credentials/cloud"
8    volumeMounts:
9      - mountPath: /target
10        name: plugins
11      - mountPath: /credentials
12        name: cloud-credentials
  1. 配置 百度云 BOS 访问凭证。注意:
  • 将 <BAIDU_CLOUD_ACCESS_KEY_ID> 和 <BAIDU_CLOUD_SECRET_ACCESS_KEY> 替换成您在 2.2 步骤获取的实际百度云上的 AccessKey 及 SecretAccessKey;
  • 将 <BAIDU_CLOUD_BOS_ENDPOINT> 替换成您所在地域的 BOS 服务域名,BOS 服务在各地域的域名见:对象存储 BOS - 获取访问域名
Plain Text
1credentials:
2  # Whether a secret should be used. Set to false if, for examples:
3  # - using kube2iam or kiam to provide AWS IAM credentials instead of providing the key file. (AWS only)
4  # - using workload identity instead of providing the key file. (Azure/GCP only)
5  useSecret: true
6  # Name of the secret to create if `useSecret` is true and `existingSecret` is empty
7  name: baidu-bos-credentials
8  # Name of a pre-existing secret (if any) in the Velero namespace
9  # that should be used to get IAM account credentials. Optional.
10  existingSecret:
11  # Data to be stored in the Velero secret, if `useSecret` is true and `existingSecret` is empty.
12  # As of the current Velero release, Velero only uses one secret key/value at a time.
13  # The key must be named `cloud`, and the value corresponds to the entire content of your IAM credentials file.
14  # Note that the format will be different for different providers, please check their documentation.
15  # Here is a list of documentation for plugins maintained by the Velero team:
16  # [AWS] https://github.com/vmware-tanzu/velero-plugin-for-aws/blob/main/README.md
17  # [GCP] https://github.com/vmware-tanzu/velero-plugin-for-gcp/blob/main/README.md
18  # [Azure] https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure/blob/main/README.md
19  secretContents: 
20   cloud: |
21      BAIDU_CLOUD_BOS_ENDPOINT=<BAIDU_CLOUD_BOS_ENDPOINT>
22      BAIDU_CLOUD_ACCESS_KEY_ID=<BAIDU_CLOUD_ACCESS_KEY_ID>
23      BAIDU_CLOUD_SECRET_ACCESS_KEY=<BAIDU_CLOUD_SECRET_ACCESS_KEY>
  1. 配置备份存储位置。该部分主要配置备份文件的存储位置,在使用 BOS 的场景下,实现将集群文件备份到 BOS 的指定 Bucket 及目录。注意:
  • 将 <BUCKET_NAME> 替换为您在 BOS 创建的 Bucket 名称
  • 将 <CLUSTER_ID> 替换为您的 ACK 集群 ID
Plain Text
1# Source: cce-backup-controller/templates/backupstoragelocation.yaml
2apiVersion: velero.io/v1
3kind: BackupStorageLocation
4metadata:
5  name: default
6  namespace: cce-backup
7  labels:
8    app.kubernetes.io/name: cce-backup-controller
9    app.kubernetes.io/instance: test-dhr
10    app.kubernetes.io/managed-by: Helm
11    helm.sh/chart: cce-backup-controller-1.1.3
12spec:
13  credential:
14    name: baidu-bos-credentials
15    key: cloud
16  provider: baiducloud
17  accessMode: ReadWrite
18  objectStorage:
19    bucket: "cce-bos-test"
20    prefix: "ceb93762c98b9496889487187c6423196"
21  config:
22    checksumAlgorithm: "SHA256"
23    region: "bj"
24    s3ForcePathStyle: "true"
25    s3Url: "https://s3.bj.bcebos.com"
26    signatureVersion: "AWS4-HMAC-SHA256"

执行命令:

Plain Text
1kubectl --kubeconfig={kubeconfig} apply -f bkp-location.yaml     

其他 Velero 相关配置请参考官方文档及 Helm Chart 中配置注释。

  • https://velero.io/docs/v1.14/backup-reference/
  • https://github.com/vmware-tanzu/helm-charts/blob/main/charts/velero/README.md
    步骤三:部署及更新 CCE-Backup-Controller
    使用 helm 命令完成 Velert 服务端的部署
Plain Text
1cd cce-backup-controller\nhelm --kubeconfig={kubeconfig} install cce-backup-controller . -n cce-backup --create-namespace

每次修改 values.yaml 文件后,执行以下命令完成更新:

Plain Text
1helm upgrade cce-backup-controller . -n velero

确认 velero 服务端正常运行:

Plain Text
1kubectl -n cce-backup get pods 
2# 结果
3NAME                      READY   STATUS    RESTARTS   AGE\nvelero-76b4d755f5-fzztr   1/1     Running   0          49m

步骤四:创建备份和恢复任务

  • 备份任务创建(命令行指令)
Plain Text
1velero --kubeconfig {{kubeconfig-path}} backup create nginx-backup --include-namespaces default -n cce-backup

image.png

  • 查看备份任务是否成功
Plain Text
1velero --kubeconfig {{kubeconfig-path}} -n cce-backup backup get

image.png

2.5 查看备份数据

登陆 BOS 控制台,并选择目标 bucket。示例的 bucket 名称为 cce-bos-test:

  • 查看 bucket 文件列表,其中每个集群的备份数据保存在单独的文件夹,如 cce-bos-test/ceb93762c98b9496889487187c6423196 image.png
  • 查看集群的备份信息: image.png

2.6 备份恢复

步骤一:迁移镜像,保证应用镜像在 CCE 可拉取

  • 方法一:使用 CCR 镜像迁移功能,将 ACK 镜像迁移至 百度云 CCR

    • 恢复迁移应用到 CCE 后,需要手工修改镜像为 CCR 地址;
  • 方法二:将 ACK 应用镜像修改为公网可访问,CCE 目标集群节点开通访问公网访问

步骤二:在目标恢复的 CCE 集群,通过组件中心安装 CCE-Backup-Controller image.png 步骤三:通过命令行创建备份仓库 image.png

Plain Text
1# Source: cce-backup-controller/templates/backupstoragelocation.yaml
2apiVersion: velero.io/v1
3kind: BackupStorageLocation
4metadata:
5  name: default
6  namespace: cce-backup
7  labels:
8    app.kubernetes.io/name: cce-backup-controller
9    app.kubernetes.io/instance: test-dhr
10    app.kubernetes.io/managed-by: Helm
11    helm.sh/chart: cce-backup-controller-1.1.3
12spec:
13  credential:
14    name: baidu-bos-credentials-bj
15    key: cloud
16  provider: baiducloud
17  accessMode: ReadWrite
18  objectStorage:
19    bucket: "cce-bos-test"
20    prefix: "ceb93762c98b9496889487187c6423196"
21  config:
22    checksumAlgorithm: "SHA256"
23    region: "bj"
24    s3ForcePathStyle: "true"
25    s3Url: "https://s3.bj.bcebos.com"
26    signatureVersion: "AWS4-HMAC-SHA256"

步骤四:执行备份恢复命令

Plain Text
1velero --kubeconfig {{restore-cluster-kubeconfig-path}} restore create --from-backup nginx-backup -n cce-backup

步骤五:确认应用正常运行,相关配置正确迁移 image.png

应用镜像:
image.png
配置项:

image.png

上一篇
VPC-ENI模式集群访问公网实践
下一篇
使用 CNI 配置容器内网络参数