Kubernetes中gitlab的一次迁移

简介: kubernetes

背景:

早些时候集群规划不合理,跑了gitlab与Nexus3服务,正好集群要到期了....
middle_img_v2_4ef09801-b1bb-4ad6-94fd-b58240ada3dg.png
哈哈起码小版本升级一下kubernetes集群更新一下证书?但是为准备抛弃这个集群了。准备迁移服务!早些年将docker-compose搭建的gitlab 8版本的应用迁移到过kubernetes 集群:docker 搭建gitlab迁移到kubernetes集群(那还是2019年)。现在的集群是基于:Kubernetes 1.20.5 安装gitlab and Kubernetes1.20.5 gitlab13.6 update13.10的版本。具体版本为13.10.2。

迁移过程

1. 搭建gitlab集群

参照Kubernetes 1.20.5 安装gitlab 。当然了 将gitlab镜像的tag修改为了 13.10.2!
image.png

ubuntu@ap-shanghai-k8s-master-1:~$ kubectl get deployments gitlab -n kube-ops-o yaml|grep image

image.png

2. 备份原有gitlab应用

备份这里出了一点小插曲......

1. gitlab-rake or rake

首先 老版本的备份命令是gitlab-rake,新的版本忘了从哪个版本开始变成了rake 请自行脑补查阅

2. rake执行目录

然后就是rake命令应该在什么路径下执行:
middle_img_v2_47bcb2c3-679f-4f84-bcb7-14c38acfce4g.png
我特意切换到backups目录下执行发现就这样报错了......然后怀疑人生了很久.....
正确的方式:在/home/git/gitlab目录下执行,如果有和我一样报错的看一下自己执行命令的目录是不是不对

middle_img_v2_4502f636-2409-4777-b7e7-ccf18726eb2g.png
切换目录到backups目录,查看生成备份文件:
middle_img_v2_3fd3e666-8a5f-438a-a03a-66a9dce0e51g.png

3. kubectl copy文件到服务器

kubectl cp gitlab-b9d95f784-7h8dt:/home/git/data/backups/1647419277_2022_03_16_13.10.2_gitlab_backup.tar /root/12 -n kube-ops

3. 恢复备份文件到kubernetes集群gitlab应用

1. 将备份文件上传到kubernetes集群 中gitlab应用

当然了 这里看个人了 : 可以从备份服务器scp到 kubernetes操作节点,也可以rzsz上传到节点然后执行kuberclt cp命令:

kubectl cp 1647419277_2022_03_16_13.10.2_gitlab_backup.tar gitlab-84c7745d56-dsppz:/home/git/data/backups -n kube-ops

最终是要将备份文件上传到新的容器内!

2.restore备份文件到新环境

依然注意操作路径......

rake gitlab:backup:restore

yHFNenAsxB.png
根据报错升级了一下bundler gem也升级了一下!

bundle update --bundler  or   gem install bundler:2.1.4
gem update --system

ko160YUem5.png
jv46hjAzYG.png
继续restore......

rake gitlab:backup:restore

u0OvmqCbTY.png
连续输入两次yes
wfHf140eNI.png
abzbBUQkVQ.png
ok 还原完成!
注意:备份的时候为貌似也执行过bundle update --bundler gem update --system

3. 验证迁移是否成功:

原应用
image.png
新应用
image.png
测试了一下三没有问题的 直接切换域名了...
注意事项

  1. 基于https://github.com/sameersbn/docker-gitlab
  2. 比较坑,想升级版本还是没有太好方便的方式......
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
gitlab迁移后报错OpenL::cipher::CipherError
gitlab迁移后报错OpenL::cipher::CipherError
354 0
|
9月前
|
缓存 Kubernetes Docker
GitLab Runner 全面解析:Kubernetes 环境下的应用
GitLab Runner 是 GitLab CI/CD 的核心组件,负责执行由 `.gitlab-ci.yml` 定义的任务。它支持多种执行方式(如 Shell、Docker、Kubernetes),可在不同环境中运行作业。本文详细介绍了 GitLab Runner 的基本概念、功能特点及使用方法,重点探讨了流水线缓存(以 Python 项目为例)和构建镜像的应用,特别是在 Kubernetes 环境中的配置与优化。通过合理配置缓存和镜像构建,能够显著提升 CI/CD 流水线的效率和可靠性,助力开发团队实现持续集成与交付的目标。
|
运维 Java Devops
阿里云云效操作报错合集之在进行GitLab代码分支迁移时遇到报错,一般是什么原因
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
8月前
|
运维 分布式计算 Kubernetes
ACK One多集群Service帮助大批量应用跨集群无缝迁移
ACK One多集群Service可以帮助您,在无需关注服务间的依赖,和最小化迁移风险的前提下,完成跨集群无缝迁移大批量应用。
|
9月前
|
自然语言处理 安全 Devops
GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效
对于正在使用 GitLab 国际站托管代码的企业和研发团队,除迁移至极狐 GitLab 外,国内其他主流的 DevOps 平台也具有完备的产品能力,为开发者提供了更多的选择。其中,阿里云云效也提供了针对常见代码托管平台如 GitHub、GitLab 简单便捷的迁移方案,帮助用户快速完成核心代码数据的迁移,确保代码资产安全。
|
jenkins 持续交付 开发工具
【gitlab】旧的gitlab项目迁移新的gitlab
【gitlab】旧的gitlab项目迁移新的gitlab
2088 0
|
11月前
|
存储 运维 Kubernetes
K8s业务迁移最佳实践: 灵活管理资源备份与调整策略,实现高效简便的应用恢复
在当今快速变化的云原生领域,Kubernetes(K8s)集群的运维面临着诸多挑战,其中灾备与业务迁移尤为关键。ACK备份中心支持丰富的资源调整策略,在数据恢复阶段即可自动适配目标集群环境,确保业务无缝重启。
|
11月前
|
存储 运维 Kubernetes
云端迁移:备份中心助力企业跨云迁移K8s容器服务平台
本文将简要介绍阿里云容器服务ACK的备份中心,并以某科技公司在其实际的迁移过程中遇到具体挑战为例,阐述如何有效地利用备份中心来助力企业的容器服务平台迁移项目。
|
存储 Kubernetes 文件存储
Kubernetes跨StorageClass迁移,切换Rainbond默认SC
在原生的 Kubernetes 集群中,通过 StorageClass 创建的 PVC 是无法修改存储后端的,需要将 PV、PVC 删除后通过新的 StorageClass 创建新的 PVC,然后再将数据迁移,再重新挂载 PVC。当有很多个 PVC 时,需要多次重复的操作。 而 Rainbond 虽然也是通过 StorageClass 创建的 PVC,但相比原生 Kubernetes 省去了创建 PV、PVC 和重新挂载的步骤,以及重复性的操作。在 Rainbond 中只需要将底层存储类更换,然后迁移 Rainbond 所创建的一整个目录,最后重新在页面中修改挂载即可完成迁移。
Kubernetes跨StorageClass迁移,切换Rainbond默认SC
|
Kubernetes 关系型数据库 MySQL
k8s安装并迁移jumpserver
k8s安装并迁移jumpserver

热门文章

最新文章