-
k8s 环境下的gitlab升级
如果使用了gitlab 的开源版本,那么gitlab 升级的是一个无法逃避的问题,官网虽然提供了升级方案,但是官方提供安装方式比较多,升级方案也只是提供了大概的过程,升级的细节并不是完善,很多小伙伴看完可能还是会比较迷茫。因此本文将特定场景下的升级过程详细展示出来供大家参考。
01学部署环境&部署方式
部署环境&部署方式
- 安装工具:helm(使用官方源)
- 部署环境:k8s
gitlab ack 部署
添加 helm repo
helm repo add gitlab https://charts.gitlab.io/ helm repo update
执行安装 gitlab
- 持久化配置文件
helm_gitlab_storageClass_option.yaml
gitlab: gitaly: persistence: storageClass: alicloud-disk-efficiency size: 100Gi postgresql: persistence: storageClass: alicloud-disk-efficiency size: 50Gi minio: persistence: storageClass: alicloud-disk-efficiency size: 50Gi redis: master: persistence: storageClass: alicloud-disk-efficiency size: 25Gi
- 执行安装
ns=gitlab gitlab_chart_version="4.7.1" helm install gitlab gitlab/gitlab \ --namespace ${ns} \ --version ${gitlab_chart_version} \ --set global.edition=ce \ --set global.hosts.domain=xxxxxxxxxx.cn \ --set certmanager.install=false \ --set global.hosts.https=false \ --set global.ingress.configureCertmanager=false \ --set upgradeCheck.enabled=false \ --set certmanager.createCustomResource=false \ --set nginx-ingress.enabled=false \ --set certmanager.install=false \ --set prometheus.install=false \ --set gitlab-runner.install=false \ --set gitlab.registry.enabled=false \ --set nginx-ingress.ingressClass=nginx \ -f helm_gitlab_storageClass_option.yaml
02升级方式选择
1:升级方案
方案1:在已有的命名空间直接执行upgrade。
方案2:创建新的命名空间,安装相同的版本然后进行数据迁移&升级
2:升级方案选择
- 如果对安装升级比较有自信,选择方案1,优点升级简单,不需要进行数据迁移等工作。相对来说可以节省不少时间
- 如果对升级不自信,那就果断选择方案2, 优点不用担心升级失败,升级成功切换,升级失败可以反复重试直到成功为止。
03基于当前版本查看升级路线
- Gitlab 升级路线图
- https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/?distro=docker&edition=ce
1 : 输入当前版本以及要升级到的版本
2: 升级路线如下图,显示的版本不能跳过。
- Helm version 对应gitlab 版本关系图
- https://docs.gitlab.com/charts/installation/version_mappings.html
3: 以上两个地址找到gitlab 版本与helm gitlab 版本的对应关系
04gitlab 原命名空间升级
1:执行升级
修改 gitlab_chart_version对应的版本值
gitlab_chart_version="xxxxx" ns=gitlab helm upgrade gitlab gitlab/gitlab \ --namespace ${ns} \ --version ${gitlab_chart_version} \ --set global.edition=ce \ --set certmanager.install=false \ --set global.hosts.https=true \ --set global.hosts.domain=xxxx.cn \ --set global.ingress.configureCertmanager=false \ --set upgradeCheck.enabled=false \ --set certmanager.installCRDs=false \ --set nginx-ingress.enabled=false \ --set certmanager.install=false \ --set prometheus.install=false \ --set gitlab-runner.install=false \ --set gitlab.registry.enabled=false \ --set nginx-ingress.ingressClass=nginx \ --set global.ingress.tls.secretName=xxxx.cn \ --set gitlab.sidekiq.resources.requests.cpu=4000m \ --set gitlab.sidekiq.resources.requests.memory=10240M \ -f helm_gitlab_storageClass_option.yaml
2:gitlab 状态查看
- 登录gitlab 控制台查看
05升级过程中的注意事项
- Gitlab 多版本升级一定要等所有后台任务都成功执行在继续,下一个版本升级
- 升级方案二,增加一步数据导入,其他过程一样。
如有相关问题,请在文章后面给小编留言,小编安排作者第一时间和您联系,为您答疑解惑。