当前位置: 首页 > news >正文

velero v1.14.1迁移kubernetes集群

1 概述

velero是vmware开源的一个备份和恢复工具,可作用于kubernetes集群下的任意对象和应用数据(PV上的数据)。github地址是https://github.com/vmware-tanzu/velero。

对于应用数据,可分文件级别的复制和块级别的复制。文件级别的复制是更加通用的。数据恢复时,pod会被打入一个init容器(velero-restore-helper)来准备数据目录(从远程对象存储中下载并解密),init容器完成后再启动业务容器。

1)文件级别的复制
将deployment、statefulset、pvc、pv等k8s对象以及容器中挂载的数据目录(会被加密),都备份到远程对象存储中。2)块设备的复制
将deployment、statefulset、pvc、pv等k8s对象备份到远程对象存储中,并且在pv底层的存储系统中创建快照。

在架构上,velero分为服务端和命令行。服务端是一个控制器,监听k8s自定义资源来做协调,自定义资源则是对备份和恢复这两个概念的抽象,名称就是backup和restore。

2 环境

两个kubernetes集群(v1.29),一个的对象存储桶(华为云OBS服务)。对象存储桶具体信息是:region为cn-north-1,端点为obs.cn-south-1.myhuaweicloud.com,桶名称为velerobackup。


3 部署velero

同时在两个kubernetes集群中,下载velero二进制命令行工具。

wget https://github.com/vmware-tanzu/velero/releases/download/v1.14.1/velero-v1.14.1-linux-amd64.tar.gz
tar -xf velero-v1.14.1-linux-amd64.tar.gz
mv velero-v1.14.1-linux-amd64/velero /usr/bin
velero version

准备对象存储桶的ak、sk,并将它们写入到一个固定文件/opt/credentials-velero。

export ak=*******yourak*******
export sk=*******yoursk*******cat > /opt/credentials-velero << EOF
[default]
aws_access_key_id = $ak
aws_secret_access_key = $sk
EOF

通过velero命令行工具同时在两个kubernetes集群中安装velero服务端。

# 对于华为云对象存储,协议必须是http,使用https协议velero会出现问题
velero install \--kubeconfig /root/.kube/config \--velero-pod-cpu-request 500m \--velero-pod-mem-request 0.5Gi \--velero-pod-cpu-limit 1000m \--velero-pod-mem-limit 1Gi \--use-node-agent \--node-agent-pod-cpu-request 500m \--node-agent-pod-mem-request 0.5Gi \--node-agent-pod-cpu-limit 1000m \--node-agent-pod-mem-limit 1Gi \--provider aws \--plugins velero/velero-plugin-for-aws:v1.9.1 \--bucket velerobackup \--secret-file /opt/credentials-velero \--use-volume-snapshots=false \--backup-location-config region=cn-north-1,s3ForcePathStyle="true",s3Url=http://obs.cn-south-1.myhuaweicloud.com

通过以下命令查看velero服务端的信息

kubectl get pod -n velero

在这里插入图片描述

通过以下命令查看对象存储的信息

kubectl get BackupStorageLocation -n velero default

在这里插入图片描述

4 备份

在一个kubernetes集群A中执行备份,备份的是default和demo这两个namespace下的所有k8s对象。

velero backup create second-backup --include-namespaces=default,demo --default-volumes-to-fs-backup

接着,在对象存储中可以看见备份文件上传了。
在这里插入图片描述

过一会,也会在另一个kubernetes集群B中看见一个新的backup对象,这个对象是velero控制器新创建的。
在这里插入图片描述


5 恢复

在kubernetes集群B中,执行以下命令,会将保存在对象存储中的k8s对象导入到该集群。

velero restore create --from-backup second-backup

6 小结

在本次操作过程中,最大的阻碍点是:如果在velero的安装参数指定了华为云对象存储的端点是https协议,会发生报错,velero服务端得到的响应是The x-amz-content-sha256 you specified did not match what we received。

相关文章:

velero v1.14.1迁移kubernetes集群

1 概述 velero是vmware开源的一个备份和恢复工具&#xff0c;可作用于kubernetes集群下的任意对象和应用数据&#xff08;PV上的数据&#xff09;。github地址是https://github.com/vmware-tanzu/velero。 对于应用数据&#xff0c;可分文件级别的复制和块级别的复制。文件级…...

Qt Model/View之Model

在检查如何处理选择之前&#xff0c;您可能会发现检查模型/视图框架中使用的概念很有用。 基本概念 在模型/视图架构中&#xff0c;模型提供了一个标准接口&#xff0c;用于视图和委托访问数据。在Qt中&#xff0c;标准接口由QAbstractItemModel类定义。无论数据项如何存储在…...

如何在 Vue 3 中使用 Element Plus

在 Vue 3 中使用 Element Plus 是一个相对直接的过程&#xff0c;因为 Element Plus 是为 Vue 3 设计的 UI 组件库。以下是在 Vue 3 项目中集成和使用 Element Plus 的基本步骤&#xff1a; 1. 安装 Element Plus 首先&#xff0c;你需要在你的 Vue 3 项目中安装 Element Plu…...

【TVM 教程】在 Relay 中使用 Pipeline Executor

Apache TVM 是一个端到端的深度学习编译框架&#xff0c;适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 → Apache TVM 中文站​tvm.hyper.ai/ 作者&#xff1a;Hua Jiang 本教程介绍如何将「Pipeline Executor」与 Relay 配合使用。 import tvm from t…...

使用mingw64 编译 QT开发流程

1. 安装QT5 QT5.12.12 安装时选择mingw的开发包 2. 使用qtdesigner 进行ui设计 生成ui文件 3. 将ui文件转换为.h 文件 uic mywindow.ui -o ui_mywindow.h代码中指向生成的 UI 对象的地方 要改成这个Form 4. 编译 创建mainwindow.cpp #include "mainwindow.h"…...

品读 Java 经典巨著《Effective Java》90条编程法则,第3条:用私有构造器或者枚举类型强化Singleton属性

《Effective Java》中的第3条编程法则主要是针对在开发过程如何实现单例模式&#xff0c;作者 Joshua Bloch 在书中给出了3种单例模式的实现方式&#xff1a;私有构造器和公有静态域、私有构造器和公有静态方法、枚举式。 什么是单例模式&#xff1f; 单例模式是一种设计模式…...

如何在Flask中处理表单数据

在Flask中处理表单数据是一个常见的任务&#xff0c;它涉及从客户端接收数据并在服务器端进行解析和处理。Flask本身不直接提供表单验证的功能&#xff0c;但它可以与WTForms等库结合使用来简化表单处理过程。不过&#xff0c;即使没有WTForms&#xff0c;你仍然可以直接通过Fl…...

9月12日的学习

练习 #include "widget.h" #include "ui_widget.h" QListWidgetItem *p; Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget),socket(new QTcpSocket(this))//给客户端指针实例化空间及关联父组件 {ui->setupUi(this);//初始化,ui-…...

Java架构师未来篇大模型

目录 1. 大模型的定义2 大模型相关概念区分3 大模型的发展历程4. 大模型的特点5 大模型的分类6 大模型的泛化与微调7 大模型岗位需求8 理解大模型8.1 生活中的比喻8.2 大模型的定义9 大模型工作9.1 数据的积累9.2 模型的训练9.3 预测和应用10 大模型的实际应用10.1 语言处理10.…...

11.5.软件系统分析与设计-面向对象的程序设计与实现

面向对象的程序设计与实现 设计模式 Java代码 C代码...

中电金信:金融级数字底座“源启”:打造新型数字基础设施 筑牢千行百业数字化转型发展基石

近期&#xff0c;金融级数字底座“源启”登录中国电子《最轻大国重器》融媒体报道。从数字底座到数智底座&#xff0c;从金融行业到千行百业&#xff0c;“源启”用数智化转型的中国电子解决方案&#xff0c;为全球企业转型及安全发展提供强大动能。 立足中国电子科技创新成果&…...

IDEA怎么让控制台自动换行

IDEA怎么让控制台自动换行 操作流程 菜单>File>Settings>Editor>General>Console>勾选Use soft wraps in console 换行效果...

大模型笔记02--基于fastgpt和oneapi构建大模型应用平台

大模型笔记02--基于fastgpt和oneapi构建大模型应用平台 介绍部署&测试部署fastgptoneapi服务部署向量模型m3e和nomic-embed-text测试大模型 注意事项说明 介绍 随着大模型的快速发展&#xff0c;众多IT科技厂商都开发训练了各自的大模型&#xff0c;并提供了各具特色的AI产…...

linux-用户与权限管理-组管理

在 Linux 系统中&#xff0c;用户、组与权限管理是保障系统安全的重要机制。用户和组的管理不仅涉及对系统资源的访问控制&#xff0c;还用于权限的分配和共享。组管理在 Linux 中尤其重要&#xff0c;它能够帮助管理员组织用户并为不同的组分配特定权限&#xff0c;从而控制用…...

Day23_0.1基础学习MATLAB学习小技巧总结(23)——句柄图形

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍&#xff0c;为了在这个过程中加深印象&#xff0c;也为了能够有所足迹&#xff0c;我会把自己的学习总结发在专栏中&#xff0c;以便学习交流。 参考书目&#xff1a;《MATLAB基础教程 (第三版) (薛山)》 之前的章节都是…...

同步io和异步io

同步 I/O 和异步 I/O 是处理输入输出操作的两种不同策略&#xff0c;它们各有优缺点&#xff0c;适用于不同的场景。下面是它们的主要区别&#xff1a; 同步 I/O 定义&#xff1a;在同步 I/O 模型中&#xff0c;发起 I/O 操作的线程会被阻塞&#xff0c;直到操作完成。换句话说…...

AI基础 L19 Quantifying Uncertainty and Reasoning with Probabilities I 量化不确定性和概率推理

Acting Under Uncertainty 1 Reasoning Under Uncertainty • Real world problems contain uncertainties due to: — partial observability, — nondeterminism, or — adversaries. • Example of dental diagnosis using propositional logic T oothache ⇒ C av ity • H…...

C++ 关于时间的轮子

时间字符串转chrono::system_clock std::chrono::system_clock::time_point parse_date(const std::string& date_str) {std::tm tm {};std::istringstream ss(date_str);ss >> std::get_time(&tm, "%Y-%m-%d"); // 假设日期字符串格式为YYYY-MM-DDr…...

阿里达摩院:FunASR - onnxruntime 部署

阿里达摩院:FunASR - onnxruntime 部署 git clone https://github.com/alibaba/FunASR.git 切换到 onnxruntime cd FunASR/runtime/onnxruntime1下载 onnxruntime wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/dep_libs/onnxruntime-linux-x64-1.14.0.t…...

SpringMvc注解

SpringMvc注解 1 SpringMcv基础环境搭建 注&#xff1a;如果已经有SpringMvc项目直接跳过这个就可以了 1 新建项目 2.修改文件为packaging 为war包 <packaging>war</packaging> <?xml version"1.0" encoding"UTF-8"?> <pr…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...