第六章 helm 輕鬆完爆 gitlab

注意:可在我 百度網盤 直接下載 helm、minio 以及修改好的 gitlab 資源包node

本系列文章:git

第一章:helm 一分鐘輕鬆完爆redis

第二章:helm 輕鬆完爆公共倉庫sql

第三章:helm 輕鬆完爆私有倉庫vim

第四章:helm 輕鬆完爆 chartapi

第五章:helm 輕鬆完爆 release瀏覽器

第六章:helm 輕鬆完爆 gitlabapp

目錄ide

1 版本說明gitlab

2 下載 gitlab-ce

3 配置 gitlab-ce

4 建立 gitlab-ce 命名空間

5 安裝 gitlab-ce

    5.1 修改 deployment 版本

    5.2 修改 deployment 選擇符

6 建立 gitlab-ce 存儲

7 訪問 gitlab-ce


1 版本說明

本文使用 helm 3。helm 倉庫信息以下。

helm repo list

clipboard1.png


spacer.gif2 下載 gitlab-ce

mkdir -p /root/helm/charts

cd /root/helm/charts/

helm pull google/gitlab-cespacer.gif


3 配置 gitlab-ce

tar -zxvf gitlab-ce-0.2.2.tgz

vim gitlab-ce/values.yaml

        values.yaml 修改這四項:

image: gitlab/gitlab-ce:10.6.2-ce.0 (默認版本 9.4.1-ce.0 有問題 )

externalUrl: 給 gitlab 配置一個域名。【可選

gitlabRootPassword: 登陸密碼

serviceType: NodePort

clipboard3.png


4 建立 gitlab-ce 命名空間

kubectl create ns gitlab-ce

clipboard4.pngspacer.gif


5 安裝 gitlab-ce

cd /root/helm/charts/

## 第一個 gitlab-ce 是 release 名,第二個是命名空間,第三個是 chart 解壓後的目錄

helm install gitlab-ce --namespace gitlab-ce gitlab-ce

        若是你的 k8s 版本低於 16,那麼恭喜,你的安裝過程會很順利,你能夠放心大膽地跳過。若是很不幸,你跟我同樣有報錯,你有兩個選擇。A. 請接着往下看。B. 從本文頂部顯示的百度網盤中下載我修改好的 gitlab-ce 資源包。

5.1 修改 deployment 版本

clipboard5.pngspacer.gif        錯誤緣由是現有 k8s 不支持 gitlab-ce 的 deployment apiVersion。定位要修改的文件:

## 選項 i 表示大小寫不敏感;r 表示支持子目錄遞歸搜索;l 打印出匹配文件

grep -irl "extensions/v1beta1" gitlab-ce | grep deployment

clipboard6.png

        完爆語句以下:

## xargs 把管道符 ‘|’前面命令的輸出結果做爲後面 sed 命令的輸入。

## sed 命令是替換,替換內容是將 extensions/v1beta1 替換爲 apps/v1

grep -irl "extensions/v1beta1" gitlab-ce | grep deploy | xargs sed -i 's#extensions/v1beta1#apps/v1#g'

5.2 修改 deployment 選擇符(selector)

        再次安裝,執行結果依然報錯。

clipboard7.png        錯誤緣由是現有 k8s 不支持 gitlab-ce 的 deployment spec。定位要修改的文件:

## 注意:搜索內容變了,不是 extenstions/v1beta1

grep -irl "apps/v1" gitlab-ce | grep deployment

clipboard8.png        依次完爆上述文件:

vim gitlab-ce/templates/deployment.yaml

clipboard9.png

vim gitlab-ce/charts/postgresql/templates/deployment.yaml

clipboard10.png

vim gitlab-ce/charts/redis/templates/deployment.yam

clipboard11.png

        再次執行安裝:spacer.gifclipboard12.png

        gitlab-ce 安裝成功。可是安裝成功不表明運行成功。就跟你買了一個有快速震動功能的高科技生活用品,不安裝南孚,它照樣不能讓你爽是一個道理。


6 建立 gitlab-ce 存儲

kubectl get all -n gitlab-ce

clipboard13.png

        發現 pod 一直是 pending 狀態。緣由是 gitlab-ce 等你爲它建立存儲;專業地說,是 pvc 沒綁定 pv;再文藝一點就是 pvc 不操(c) pv 就不肯意幹活。懂了沒!clipboard14.png

        查看處於 pending 狀態的 pvc。發現它們的喜愛有 2 個規格。A 杯(1Gi) 和 C 杯(10Gi)。

kubectl edit pvc -n gitlab-ce gitlab-ce-gitlab-ce-etc

kubectl edit pvc -n gitlab-ce gitlab-ce-gitlab-ce-data

clipboard15.pngclipboard16.png

6.1 建立資源文件

mkdir -p /root/helm/charts/gitlab-ce/manifest/pv

cd /root/helm/charts/gitlab-ce/manifest/pv

touch pv-gitlab-etc.yaml

touch pv-gitlab-data1.yaml

touch pv-gitlab-data2.yaml

touch pv-gitlab-data3.yaml

        資源文件內容大同小異,就是指定規格和存儲目錄的。這裏舉一個 pv-gitlab-etc.yaml 的例子,其餘 3 個照抄便可。可是你千萬要注意 metadata 名稱、strorage 大小(一個 1 Gi、3個 10 Gi)hostPath 存儲目錄,不要重複了。切記,切記。

spacer.gifclipboard17.png

6.2 建立存儲目錄

        這裏爲了減小沒必要要的麻煩,使用了 hostPath 本地存儲類型。若是你 k8s 集羣有多個工做節點的話,記得每一個工做節點都須要建立目錄 /data/gitlab/etc、/data/gitlab/data一、/data/gitlab/data二、/data/gitlab/data3

spacer.gifclipboard18.png

6.3 建立 pv

cd /root/helm/charts/gitlab-ce/manifest/pv/

# 注意不要忘記「點號」

kubectl apply -f .

clipboard19.pngspacer.gif        建立完查看 pvc 和 pv。你會發現 pvc 各個都像脫繮的野狗同樣,瘋狂地奔向 pv。它們雲雨地很和諧。

kubectl get pvc -n gitlab-ce

kubectl get pvspacer.gif

clipboard20.png

        查看 gitlab-ce,發現一切歲月靜好。

1111.png


spacer.gif7 訪問 gitlab-ce

        安裝 gitlab-ce 時,咱們指定 service 類型是 nodeport。spacer.gifclipboard21.png

        選定集羣任意一臺主機,查看 service 暴露的外部端口號,我這裏是 31215(如上圖),發現端口已處於監聽狀態。

ss -ntlp | grep -i 31215spacer.gif

clipboard22.png

        打開瀏覽器,輸入集羣中任意一臺主機的 ip 地址和外部端口號,注意不是 80。我這裏是 31215。

spacer.gifclipboard23.png

        自此,咱們用 helm 輕鬆完爆了 gitlab 安裝。

相關文章
相關標籤/搜索