k8s環境下的gitlab升級

新鈦雲服已累計為您分享811篇技術乾貨
如果使用了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: 100Gipostgresql: persistence: storageClass: alicloud-disk-efficiency size: 50Giminio: persistence: storageClass: alicloud-disk-efficiency size: 50Giredis: master: persistence: storageClass: alicloud-disk-efficiency size: 25Gi
  • 執行安裝
ns=gitlabgitlab_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 版本的對應關係

04

gitlab 原名稱空間升級

1:執行升級

修改 gitlab_chart_version對應的版本值
gitlab_chart_version="xxxxx"ns=gitlabhelm 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 多版本升級一定要等所有後臺任務都成功執行在繼續,下一個版本升級
  • 升級方案二,增加一步資料匯入,其他過程一樣。
如有相關問題,請在文章後面給小編留言,小編安排作者第一時間和您聯絡,為您答疑解惑。

相關文章