kubernetes与velero的第一次尝试

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储OSS,敏感数据保护2.0 200GB 1年
对象存储 OSS,内容安全 1000 次 1年
简介: kubernetes velero

背景

接上文:Kubernetes中gitlab的一次迁移。nexus也要迁移一下。这里更想体验一些velero。很多文章上面看到过:https://mp.weixin.qq.com/s/VC6kVfcBCUQfG6RwM6F1QA腾讯云TKE文档中也有类似的例子:https://cloud.tencent.com/document/product/457/50122。不想使用传统方式了想体验一下velero!
so velero迁移一下kube-ops namespace 到另外一个集群的kube-ops1 namespace

velero 迁移kubernetes体验

1. 下载安装 velero

注意: 1-3步骤在备份和还原集群上面都要操作安装
https://github.com/vmware-tanzu/velero看了一眼最新版本1.18.1.就下载了对应版本linux-amd64.tar.gz(墙裂,下载不下来。为是下载了放在自己的对象存储上面了!)

[root@sh-master-02 ~]# wget https://github.com/vmware-tanzu/velero/releases/download/v1.8.1/velero-v1.8.1-linux-amd64.tar.gz
[root@sh-master-02 ~]# tar zxvf velero-v1.8.1-linux-amd64.tar.gz 
[root@sh-master-02 ~]# cd velero-v1.8.1-linux-amd64/
[root@sh-master-02 velero-v1.8.1-linux-amd64]# cp velero /usr/local/bin && chmod +x /usr/local/bin/velero
[root@sh-master-02 velero-v1.8.1-linux-amd64]# velero version

image.png

2. 关于对象存储的开通

阳明大佬还有其他很多文章都是采用了minio.腾讯云的cos 还有 阿里云的oss也是可以的。偷懒了直接使用cos!
先创建一个对象存储桶
image.png

3. 配置安装velero服务端

配置密钥文件:
cat credentials-velero

[default]
aws_access_key_id=<access key id>
aws_secret_access_key=<secret access key>

按照如下命令安装 velero 服务端:

velero install  --provider aws --plugins velero/velero-plugin-for-aws:v1.1.0 --bucket  kubernetes-xxxx \
--secret-file credentials-velero \
--use-restic \
--default-volumes-to-restic \
--backup-location-config \
region=ap-guangzhou,s3ForcePathStyle="true",s3Url=https://cos.ap-guangzhou.myqcloud.com

注意:gion s3 url bucket为腾讯与oos对应参数基本要配置的就是bucket存储桶名词 还有地域!
image.png
image.png
等待velero命名空间下pod running!

[root@sh-master-02 velero]# kubectl get pods -n velero

image.png

4. 备份集群1 kube-ops集群内应用

1. velero backup create命令直接创建

[root@sh-master-02 velero]# velero backup create kube-ops --include-namespaces kube-ops --default-volumes-to-restic

PKokHyEcVj.png

2. yaml方式创建

cat migrate-kube-ops-2022-03-18-01-backup.yaml

apiVersion: velero.io/v1
kind: Backup
metadata: 
  name: migrate-kube-ops-2022-03-18-01-backup
  # 必须得是 velero 安装的命名空间
  namespace: velero
spec: 
  # 仅包含 nginx-example 命名空间的资源
  includedNamespaces: 
   - kube-ops
  # 包含不区分命名空间的资源
  includeClusterResources: false 
  # 备份数据存储位置指定
  storageLocation: default 
  # 卷快照存储位置指定
  volumeSnapshotLocations: 
    - default 
  # 使用 restic 备份卷
  defaultVolumesToRestic: true

注意:includeClusterResources: false 这个地方一定记得false看腾讯与官方文档写的true!我备份失败了......如果有失败看下这个参数!

[root@sh-master-02 velero]#kubectl apply -f migrate-kube-ops-2022-03-18-01-backup.yaml

image.png
注意: backup create 任务的命名要具有唯一性。建立新的命名任务要用不同的名称!

2. 登陆腾讯云cos管理后台查看备份文件创建

image.png

5. 将kube-ops命名空间下应用还原到集群2kube-ops1命名空间下

注:登陆集群2(要还原的集群)前提1-3已经操作
cat restore.yaml

apiVersion: velero.io/v1
kind: Restore
metadata: 
  name: migrate-kube-ops1-restore
  namespace: velero
spec: 
  backupName: kube-ops
  includedNamespaces: 
    - kube-ops
  
  # 按需填写需要恢复的资源类型,nginx-example 命名空间下没有想要排除的资源,所以这里直接写 '*'
  includedResources: 
    - '*'
  
  includeClusterResources: null
  
  # 还原时不包含的资源,这里额外排除 StorageClasses 资源类型。
  excludedResources: 
    - storageclasses.storage.k8s.io
 
  # 使用 labelSelector 选择器选择具有特定 label 的资源,由于此示例中无须再使用 label 选择器筛选,这里先注释。
  # labelSelector:
  #   matchLabels:
  #     app: nginx
  
  # 设置命名空间关系映射策略
  namespaceMapping: 
    kube-ops: kube-ops1
  restorePVs: true
[root@k8s-master-01 velero]# kubectl apply -f  restore.yaml
[root@k8s-master-01 velero]# velero describe restore migrate-kube-ops1-restore

Om4ykpRDqA.png
等待状态 Pase completed......
image.png
注意:还原的任务也要具有唯一性
等待pod running发现ingress ingressroute没有备份过来
WG8EXoEHzT.png

6. 创建对应ingress ingressroute 登陆gitlab nexus,并修改host or dns解析进行测试:

image.png
image.png
目的基本实现 将一个namespace 下应用迁移到了另外一个集群的namespace下!

更进一步的想法

  1. 其实开始为想得是只备份还原nexus单个应用....下次体验一些备份还原单个应用
  2. 存储类的区别。开始本来想导入tke集群的。且按照腾讯云官方文档:https://cloud.tencent.com/document/product/457/52331.做了持久卷动态映射
apiVersion: v1
kind: ConfigMap
metadata: 
  name: change-storage-class-config
  namespace: velero
  labels: 
    velero.io/plugin-config: ""
    velero.io/change-storage-class: RestoreItemAction
data: 
  # 存储类名映射到腾讯云动态存储类 cbs
  cbs-csi: cbs

但是导入的时候没有生效还是找cbs-csi存储类!。所以就先导入到有cbs-csi存储类的集群了。具体替换存储类要好好研究一下!

  1. ingress ingress为什么没有备份....有时间研究一下
  2. 特别感谢:https://velero.io/docs/v1.8/csi/

    https://mp.weixin.qq.com/s/VC6kVfcBCUQfG6RwM6F1QA https://cloud.tencent.com/document/product/457/52331

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5G 调度
灵活时隙符号配比 | 带你读《5G 空口设计与实践进阶 》之十八
通过不同时隙格式的选择或不同时隙格式的聚合,NR 可以动态适配当前场景下的业务需求。
灵活时隙符号配比 | 带你读《5G 空口设计与实践进阶 》之十八
|
对象存储 容器 Kubernetes
使用 Velero 进行集群备份与迁移
本文介绍了使用 Velero 来进行 k8s 集群资源进行备份和迁移。
6038 0
|
Apache 数据中心 微服务
构建可扩展的消息系统:Apache Pulsar和NATS的比较
消息系统在现代分布式应用程序中扮演着至关重要的角色,它们用于实现异步通信、事件驱动架构和可靠数据传输。在本篇文章中,我们将探讨两个流行的消息系统:Apache Pulsar和NATS,并比较它们的特点、性能和可扩展性。我们将研究它们的架构、部署方式以及如何使用它们来构建可靠和高性能的消息传递系统。
707 0
|
3月前
|
JSON 文件存储 数据安全/隐私保护
微博超话自动签到神器, 微博自动签到神器app,贴吧微博签到脚本工具助手
核心模块包含超话列表获取和签到功能‌2使用配置文件存储cookies避免硬编码‌1
|
3月前
|
机器学习/深度学习 人工智能 安全
DeepSeek-R1技术突破:纯RL训练竟能激发大模型"反思"能力?
仅通过强化学习(RL)训练,无需监督微调(SFT),就能让大模型自发产生带有反思的思维链(long CoT)。这一发现颠覆了此前行业对模型训练范式的认知。
177 3
|
10月前
|
人工智能 安全 算法
PAI负责任的AI解决方案: 安全、可信、隐私增强的企业级AI
在《PAI可信AI解决方案》会议中,分享了安全、可信、隐私增强的企业级AI。会议围绕三方面展开:首先通过三个案例介绍生活和技术层面的挑战;其次阐述构建AI的关键要素;最后介绍阿里云PAI的安全功能及未来展望,确保数据、算法和模型的安全与合规,提供全方位的可信AI解决方案。
|
缓存 应用服务中间件 Apache
缓存代理服务器的实现机制和技术选型
缓存代理服务器是一种特殊的代理服务器,其主要功能是缓存从目标服务器(通常是Web服务器)获取的数据,并在客户端再次请求相同数据时直接提供缓存的数据。通过缓存代理服务器可以加快访问速度并减轻目标服务器的负载。
523 109
|
存储 缓存 算法
高效编程:我们应该了解哪些编译器优化技术?如何做出成熟的优化行为,掌握C++编程中的编译器优化艺术。
高效编程:我们应该了解哪些编译器优化技术?如何做出成熟的优化行为,掌握C++编程中的编译器优化艺术。
656 5
|
存储 Kubernetes 对象存储
Velero 系列文章(四):使用 Velero 进行生产迁移实战
Velero 系列文章(四):使用 Velero 进行生产迁移实战
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
AI与法律行业:智能法律咨询
在科技飞速发展的今天,人工智能(AI)正逐渐渗透到法律行业,特别是在智能法律咨询领域。本文探讨了AI在智能法律咨询中的应用现状、优势及挑战,并展望了其未来发展前景。AI技术通过大数据、自然语言处理等手段,提供高效、便捷、低成本且个性化的法律服务,但同时也面临数据隐私、法律伦理等问题。未来,AI将在技术升级、政策推动和融合创新中,为用户提供更加优质、便捷的法律服务。