基于helm的方式在k8s集群中部署gitlab - 升级(三)

接上一篇 基于helm的方式在k8s集群中部署gitlab - 部署(一),本篇重点对gitlab在k8s集群中进行升级

文章目录

    • 1. gitlab 升级
      • 1.1 获取release
      • 1.2 下载目前版本的gitlab charts
      • 1.3 获取当前的values文件
      • 1.4 升级
    • 2. gitlab数据库升级
      • 2.1 备份数据库
      • 2.2 删除已有的 PostgreSQL 数据
      • 2.3 升级数据库
      • 2.4验证

1. gitlab 升级

本次升级从15.8.0升级到15.11.10

1.1 获取release

helm list -n jihulab

1.2 下载目前版本的gitlab charts

helm repo update #更新repo源
helm search repo  gitlab-jh -l #查看对应版本的charts
helm fetch gitlab/gitlab --version 6.11.10 #拉取目标版本的charts
tar -xf gitlab-6.11.10.tgz
mv gitlab gitlab-15.11.10

1.3 获取当前的values文件

cd gitlab-15.11.10
helm get values gitlab -n jihulab > 15.8.0

1.4 升级

cd gitlab-15.11.10 #切换目录helm upgrade gitlab gitlab-jh/gitlab \
--version 6.11.10 \
--timeout 600s  \
--set certmanager.install=false \
--set global.ingress.configureCertmanager=false  \
--set global.ingress.tls.enabled=true \
--set gitlab.webservice.ingress.tls.secretName=gitlab-jihulab-cn-ssl \
--set registry.ingress.tls.secretName=registry-jihulab-cn-ssl \
--set minio.ingress.tls.secretName=minio-jihulab-cn-ssl \
--set nginx-ingress.service.type=NodePort \
--set global.shell.port=31475 \
--values values.yaml -n jihulab

2. gitlab数据库升级

gitlab15.11.10中数据库版本从12.7升级到14.7

参考链接 升级捆绑 PostgreSQL 的步骤

2.1 备份数据库

准备已有的数据库

pre 阶段将使用 Toolbox 中的备份实用程序脚本创建数据库备份,该脚本将保存到配置的 s3 存储桶(默认为 MinIO):

# GITLAB_RELEASE should be the version of the chart you are installing, starting with 'v': v6.0.0
curl -s "https://jihulab.com/gitlab-cn/charts/gitlab/-/raw/${GITLAB_RELEASE}/scripts/database-upgrade" | bash -s pre

这个脚本database-upgrade的中pre其实主要是备份数据库,但是由于toolbox容器中没有kubectl命令行工具,因为我这里还是使用的是原始的备份命令backup-utility来完成数据库的备份操作的。
在这里插入图片描述
备份

kubectl exec -it -n jihulab gitlab-toolbox-6dd5d8fc59-7nq52 -- backup-utility --skip registry,uploads,artifacts,lfs,packages,external_diffs,terraform_state,ci_secure_files,repositories

在这里插入图片描述
备份完后会自动上传到minio中
在这里插入图片描述

2.2 删除已有的 PostgreSQL 数据

由于 PostgreSQL 数据格式已更改,因此升级需要在升级版本之前删除现有的 PostgreSQL StatefulSet。 StatefulSet 将在下一步中重新创建。

删除已有的pg数据

kubectl delete statefulset gitlab-postgresql --namespace jihulab
kubectl delete pvc data-gitlab-postgresql-0 -n jihulab

在这里插入图片描述

2.3 升级数据库

恢复数据库

请注意以下事项:

  • 您需要使用 Bash 4.0 或更高版本才能成功运行脚本,因为它需要使用 bash 关联数组。
  1. 等待 Toolbox pod 的升级完成。 RELEASE_NAME 应该是 helm list 中 GitLab 版本的名称

    kubectl rollout status -w deployment/gitlab-toolbox -n jihulab
    
  2. Toolbox pod 部署成功后,运行 post 步骤:(这块和pre一样,可以通过原生自带命令处理)

    # GITLAB_RELEASE should be the version of the chart you are installing, starting with 'v': v6.0.0
    curl -s "https://jihulab.com/gitlab-cn/charts/gitlab/-/raw/${GITLAB_RELEASE}/scripts/database-upgrade" | bash -s post
    

此步骤将执行以下操作(强烈建议操作此步骤):

  1. webservicesidekiqgitlab-exporter deployment 的副本设置为 0。这将防止任何其它应用程序在恢复备份时更改数据库。

    kubectl scale deployment gitlab-sidekiq-all-in-1-v2 --replicas=0 -n jihulab
    kubectl scale deployment gitlab-webservice-default --replicas=0 -n jihulab
    kubectl scale deployment gitlab-gitlab-exporter --replicas=0 -n jihulab
    

    在这里插入图片描述

  2. 从前阶段创建的备份恢复数据库(将minio中的备份数据下载到本地,并拷贝到toolbox容器中,备份文件要在容器中的**/srv/gitlab/tmp/backups**目录下)。
    在这里插入图片描述
    在这里插入图片描述

  3. 修改values文件
    vim gitlab-15.8.yaml

     ......
    postgresql:existingSecret: bogusimage:tag: 14.8.0initdbScriptsConfigMap: bogusinstall: true
    ...
    ...
    

    在这里插入图片描述

  4. 升级数据库

    按照我们的标准程序 升级极狐GitLab,并添加以下内容:

    在升级命令中使用以下标志禁用迁移:--set gitlab.migrations.enabled=false

    helm upgrade gitlab gitlab-jh/gitlab \--version 6.11.10 \--timeout 600s  \--set certmanager.install=false \--set global.ingress.configureCertmanager=false  \--set global.ingress.tls.enabled=true \--set gitlab.webservice.ingress.tls.secretName=gitlab-jihulab-cn-ssl \--set registry.ingress.tls.secretName=registry-jihulab-cn-ssl \--set minio.ingress.tls.secretName=minio-jihulab-cn-ssl \--set global.shell.port=31475 \--set nginx-ingress.service.type=NodePort \--set gitlab.migrations.enabled=false  \ #gitlab.migrations.enabled=false必须要加上--values gitlab-15.8.yaml -n jihulab
    

    在这里插入图片描述

  5. 为新版本运行数据库恢复数据

    进入到toolbox容器中,执行恢复命令

    kubectl exec -it  gitlab-toolbox-6dd5d8fc59-7nq52 -n jihulab /bin/bash
    cd /srv/gitlab/tmp/backups
    backup-utility --restore -t 1688440164_2023_07_04_15.11.10-jh
    

    1688440164_2023_07_04_15.11.10-jh 是一种格式要求

    最下面的蓝框中的报错可以忽略 在这里插入图片描述
    在这里插入图片描述

  6. 恢复第一步中的所有 deployment

    kubectl scale deployment gitlab-gitlab-exporter --replicas=1 -n jihulab
    kubectl scale deployment gitlab-webservice-default --replicas=2 -n jihulab
    kubectl scale deployment gitlab-sidekiq-all-in-1-v2 --replicas=1 -n jihulab
    

2.4验证

在这里插入图片描述
可以创建issue
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSRF漏洞防御:黑白名单的编写

文章目录 SSRF漏洞防御:黑白名单的编写黑名单的制作白名单的制作 SSRF漏洞防御:黑白名单的编写 以pikachu靶场中SSRF(crul)为例我们可以看到未做任何防御 我们查看源代码 黑名单的制作 思路: 什么内容不能访问 构造代码 $xyarray("file" > "",&q…

rdf-file:读写示例

<dependency><groupId>com.alipay.rdf.file</groupId><artifactId>rdf-file-core</artifactId><version>2.2.10</version> </dependency>一&#xff1a;读 一&#xff1a;写 写文件之正常写 协议布局模板 使用内置的布局文…

关于一个类中引用两外一个类中的变量和方法,一个技巧可以提高开发效率

import static com.xx.xx.util.ext.xx.toJson; import static com.xx.xx.util.ext.smf.Cert.certMgrClient; 第一个引用一个方法&#xff0c;第二个引用一个变量&#xff0c; 引用后就可以直接通过变量名或者方法名就行使用&#xff0c;很方便&#xff0c;不要通过class.方式调…

maven中scope和optional区别

文章目录 1. Scope&#xff08;作用范围&#xff09;&#xff1a;2. Optional&#xff08;可选项&#xff09;&#xff1a; 1. Scope&#xff08;作用范围&#xff09;&#xff1a; Maven的<scope>元素用于指定依赖项的作用范围&#xff0c;即依赖项在构建和运行时的可见…

【人工智能】它正在悄悄改变我的学习与生活,并试图改变我的全部!

前言 人工智能对我们的生活影响有多大&#xff1f;作为一名计算机研一的学生&#xff0c;一开学&#xff0c;学习使用ChatGTP便是我的第一个堂课。&#xff08;主要用于做作业&#x1f602;&#xff09; 我的本科毕业论文是在计算机视觉&#xff08;CV&#xff09;方向进行的…

bmp文件操作和详解

一 BMP文件格式 BMP&#xff08;Bitmap&#xff09;是Windows操作系统中的标准图像文件格式。 由于windows操作系统的发布时机远早于Linux、Android、IOS等操作系统&#xff0c;因此windows中很多数据格式和算法的标准也是当今所有操作系统必须要兼容的标准数据结构和算法。BM…

ubuntu下载vscode并运行程序

如有帮助点赞收藏关注&#xff01; 如需转载&#xff0c;请注明出处&#xff01; 好久没有在linux下编译c代码了&#xff0c;由于换了酷炫彩灯的电脑。又要重新安装一次喽。做个记录&#xff0c;可以帮助到有需要的人&#xff0c;接下来不要错过每一个步骤。 我们一起手把手运行…

虹科方案 | 如何破解CAN与车载以太网之间数据传输和协议转换的难题?

导读&#xff1a;在车辆网络时代&#xff0c;数据传输和协议转换在通信领域中扮演着至关重要的角色。它们不仅能够实现车辆内部系统之间的互联互通&#xff0c;还支持车辆与外部网络进行通信&#xff0c;从而为驾驶者带来更智能、便捷的驾驶体验。本文将介绍CAN总线与车载以太网…

3.数据结构

3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图&#xff0c;它们可以从“逻辑结构”和“物理结构”两个维度进行分类。 3.1.1逻辑结构&#xff1a;线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中&#xff0c;数据按照…

大公司为什么喜欢centos系统写爬虫?

CentOS是一个基于Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建的开源操作系统&#xff0c;它受到大企业喜欢大多数因为他系统的稳定性&#xff0c;安全性以及兼容性等。可以为企业提供更多的商业支持。以我个人为例&#xff0c;公司在做爬虫数据抓取多是采…

element-ui 中 el-select 组件选择后不会自动关闭

在使用 el-select 组件时&#xff0c;打开 select 选择框后选择或点击其他元素后不会自动关闭 el-select 框的问题。 我们只需要将在操作后手动让 el-select 失去焦点即可收起下拉框。 <el-select v-model"value1" ref"selectRef" multiple placehold…

位操作/位运算

常用操作一&#xff1a; n 的二进制表示中第 k 位&#xff08;从0位开始算&#xff09;是几 基本思路 先把 n 第 k 位数字移到最后一位&#xff0c;用右移运算 n>>k看个位数字是几&#xff0c;其实就是 x & 1 实际就是&#xff1a;n>>k&1 //最低为从0…

学位论文撰写-经验

记录个人在撰写学位论文过程中遇到的一些问题. 论文敲完Latex后&#xff0c;即初稿完成后&#xff0c;要打印一版出来 &#xff0c;看一下每个章节开头是否放在了奇数页&#xff0c;因此&#xff0c;把文章打印出来看&#xff0c;会方便一些。写完初稿之后&#xff0c;请同学帮…

王者小游戏作业

一、创建好文件、包、类、插入图片文件夹 二、beast包 1、Bear类 package beast; import sxt.GameFrame; public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("C:\\Users\\陆先生\\Desktop\\王者荣耀图片…

前置任务之安装jdk

已经安装过很多次了&#xff0c;但是每次安装都要搜好几次才能找到正确的&#xff0c;离大谱。 1.打开 oracle官网 https://www.oracle.com 然后切换到Java archive 下载192版本的&#xff0c;页面搜索ctrlF&#xff0c;【Java SE Development Kit】或者【jdk-8u192-windows-…

深入理解Transformer,兼谈MHSA(多头自注意力)、LayerNorm、FFN、位置编码

Attention Is All You Need——集中一下注意力 Transformer其实不是完全的Self-Attention结构&#xff0c;还带有残差连接、LayerNorm、类似1维卷积的Position-wise Feed-Forward Networks&#xff08;FFN&#xff09;、MLP和Positional Encoding&#xff08;位置编码&#xf…

ChatGPT进阶:提示工程的神秘面纱与实战指南

文章目录 一、提示工程的概念与原理二、提示工程的实践方法三、提示工程的挑战与展望四、实战案例分析总结《ChatGPT进阶&#xff1a;提示工程入门》内容简介作者简介陈颢鹏&#xff1a;李子菡&#xff1a; 目录获取方式 在人工智能领域&#xff0c;对话系统已经成为了一个热门…

C#工程中Form_xx.cs不能在设计器中查看

环境&#xff1a;VS2022 直接上图&#xff1a; 原因&#xff1a; 写了个类在Form_xx.cs中从For继承的部分类之前&#xff0c;移动到之后&#xff0c;保证窗体类是代码中的首个类即可&#xff0c;如图&#xff1a;

实战|信息泄露

0x01系统初探 通过fofa对大学进行搜索 fofa:host"edu.cn" &amp;&amp; status_code"200"在随意的翻阅查看时&#xff0c;发现访问xxx.edu.cn登录页面会优先访问登录后的页面&#xff0c;再跳转至登录页面。盲猜应该是前端校验&#xff0c;可以通过…

基于C#实现奇偶排序

这篇就从简单一点的一个“奇偶排序”说起吧&#xff0c;不过这个排序还是蛮有意思的&#xff0c;严格来说复杂度是 O(N2)&#xff0c;不过在多核的情况下&#xff0c;可以做到 N2 /(m/2)的效率&#xff0c;这里的 m 就是待排序的个数&#xff0c;当 m100&#xff0c;复杂度为 N…