我們一起 K8s 環(huán)境下的 GitLab 升級(jí),你學(xué)會(huì)了嗎?
作者:郭鵬超
如果使用了gitlab 的開源版本,那么gitlab 升級(jí)的是一個(gè)無法逃避的問題,官網(wǎng)雖然提供了升級(jí)方案,但是官方提供安裝方式比較多,升級(jí)方案也只是提供了大概的過程,升級(jí)的細(xì)節(jié)并不是完善,很多小伙伴看完可能還是會(huì)比較迷茫。
如果使用了gitlab 的開源版本,那么gitlab 升級(jí)的是一個(gè)無法逃避的問題,官網(wǎng)雖然提供了升級(jí)方案,但是官方提供安裝方式比較多,升級(jí)方案也只是提供了大概的過程,升級(jí)的細(xì)節(jié)并不是完善,很多小伙伴看完可能還是會(huì)比較迷茫。因此本文將特定場景下的升級(jí)過程詳細(xì)展示出來供大家參考。
1、學(xué)部署環(huán)境&部署方式
部署環(huán)境&部署方式
- 安裝工具:helm(使用官方源)
- 部署環(huán)境:k8s
gitlab ack 部署
添加 helm repo
helm repo add gitlab https://charts.gitlab.io/
helm repo update
執(zhí)行安裝 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
- 執(zhí)行安裝
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
2、升級(jí)方式選擇
升級(jí)方案
方案1:在已有的命名空間直接執(zhí)行upgrade。
方案2:創(chuàng)建新的命名空間,安裝相同的版本然后進(jìn)行數(shù)據(jù)遷移&升級(jí)
升級(jí)方案選擇
- 如果對(duì)安裝升級(jí)比較有自信,選擇方案1,優(yōu)點(diǎn)升級(jí)簡單,不需要進(jìn)行數(shù)據(jù)遷移等工作。相對(duì)來說可以節(jié)省不少時(shí)間
- 如果對(duì)升級(jí)不自信,那就果斷選擇方案2, 優(yōu)點(diǎn)不用擔(dān)心升級(jí)失敗,升級(jí)成功切換,升級(jí)失敗可以反復(fù)重試直到成功為止。
3、基于當(dāng)前版本查看升級(jí)路線
輸入當(dāng)前版本以及要升級(jí)到的版本
圖片
升級(jí)路線如下圖,顯示的版本不能跳過。
圖片
- Helm version 對(duì)應(yīng)gitlab 版本關(guān)系圖
- https://docs.gitlab.com/charts/installation/version_mappings.html
圖片
以上兩個(gè)地址找到gitlab 版本與helm gitlab 版本的對(duì)應(yīng)關(guān)系
4、gitlab 原命名空間升級(jí)
執(zhí)行升級(jí)
修改 gitlab_chart_version對(duì)應(yīng)的版本值
gitlab_chart_versinotallow="xxxxx"
ns=gitlab
helm upgrade gitlab gitlab/gitlab \
--namespace ${ns} \
--version ${gitlab_chart_version} \
--set global.editinotallow=ce \
--set certmanager.install=false \
--set global.hosts.https=true \
--set global.hosts.domain=xxxx.cn \
--set global.ingress.cnotallow=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
gitlab 狀態(tài)查看
- 登錄gitlab 控制臺(tái)查看
5、升級(jí)過程中的注意事項(xiàng)
- Gitlab 多版本升級(jí)一定要等所有后臺(tái)任務(wù)都成功執(zhí)行在繼續(xù),下一個(gè)版本升級(jí)
圖片
- 升級(jí)方案二,增加一步數(shù)據(jù)導(dǎo)入,其他過程一樣。
責(zé)任編輯:武曉燕
來源:
新鈦云服