第八章 九析帶你玩轉 rancher - drone 集成 gitlab

本系列文章:
nginx


第一章:九析帶你玩轉 rancher - 安裝篇git

第二章:九析帶你玩轉 rancher - 導入集羣篇docker

第三章:九析帶你玩轉 rancher - 集成 gitlabapi

第四章:九析帶你玩轉 rancher - 集成 harbor緩存

第五章:九析帶你玩轉 rancher - 流水線發佈服務器

第六章:九析帶你玩轉 rancher - require 'docker login'微信

第七章:九析帶你玩轉 rancher - 流水線與自定義域名app

第八章:九析帶你玩轉 rancher - drone 集成 gitlabide

目錄gitlab

1 前言

2 建立 gitlab Oauth 應用程序

3 建立 secret

4 建立項目空間和命名空間

5 安裝 nfs 服務器

6 建立 pv

7 建立 pvc

8 應用商店添加 drone


1 前言

        若是你對博客有疑問,請加羣告知!

微信圖片_20200116133714.jpg

        rancher 的流水線功能比較弱,最讓人詬病是速度慢、沒法緩存、耗費資源等。相比 rancher,drone 具備佔有資源少、可緩存、速度奇快以及輕量化等衆多優勢。本文就介紹如何採用 rancher 的應用商店來安裝 drone,以及 drone 如何關聯 gitlab。

        本文環境是 k8s v1.16.3,rancher v2.3.3。


2 建立 gitlab Oauth 應用程序

        登陸 gitlab,選擇 setting:

1.jpeg

        選擇 "application", 填寫相關信息,Redirect URI 是回調 drone 服務器地址(下面會進行安裝,這裏先寫上不要緊。個人地址是 http://jiuxi.drone.org/login,注意 /login 是必須後綴,不要忘寫)。

2.jpeg        保存後生成受權信息以下:3.jpeg

        gitlab 配置結束。


3 建立 secret

        首先經過 kubelet 建立 secret,其中 「clientSecret」 值就是上面 gitlab 建立 oauth 應用的 secret 值:

kubectl create secret generic drone-server-secrets \

--namespace=drone \

--from-literal=clientSecret="93e85934b165566125bdc313288d79fb446c486d18afaf07f7c97e36297b00bd"


4 建立項目空間和命名空間

        登陸 rancher,選擇指定集羣:4.png

        點擊進入集羣(jiuxi),能夠看到集羣的 dashboard,選擇「項目/命名空間」:5.png

        選擇「添加項目」:6.png

        填寫項目名稱(drone)並建立:7.png

        在新增項目(drone)下選擇「添加命名空間」:8.png

        填寫命名空間名(drone)並建立:9.png

        項目空間和命名空間建立完畢。經過導航點擊進入,之後的操做都會在此項目空間下進行。10.png


5 安裝 nfs 服務器

        安裝 nfs 服務器的緣由是 drone 須要存儲空間,這裏採用 nfs。如何安裝 nfs 服務器,請參考本人《輕鬆完爆 nfs 安裝》,不用擔憂,簡單容易,讓你分分鐘輕鬆完爆。

mkdir -p /data/nfs/drone/1g

chmod 777 -R /data/nfs/drone/1g

echo "/data/nfs/drone 10.110.0.0/16(rw,sync,no_root_squash)" >> /etc/exports

systemctl restart nfs


6 建立 pv

        編輯 pv-drone-1g.yaml 文件,其中 server 地址就是 nfs 服務器所在地址:

apiVersion: v1

kind: PersistentVolume

metadata:

    name: pv-drone-1g

spec:

    capacity:

        storage: 1Gi

    volumeMode: Filesystem

    accessModes:

    -  ReadWriteOnce

    persistentVolumeReclaimPolicy: Retain

    nfs:

        server: 10.110.101.106

        path: /data/nfs/drone/1g

        建立 pv:

kubectl apply -f pv-drone-1g.yaml


7 建立 pvc

        編輯 pvc-drone-1g.yaml 文件:

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

    name: pvc-drone-1g

    namespace: drone

spec:

    accessModes:

    - ReadWriteOnce

    resources:

        requests:

            storage: 1Gi

    volumeMode: Filesystem

        建立 pvc:

kubectl apply -f pvc-drone-1g.yaml

        因爲先建立 pv,而後再建立的 pvc,所以查詢 pvc 狀態,發現 pvc 已經跟 pv 綁定成功:11.png


8 應用商店添加 drone

        進入項目空間(drone)下的應用商店,選擇「啓動」:12.png

        經過搜索找到 「drone」:13.png

        點擊後截圖以下:14.png

        「Drone settings」 配置內容:15.png

        說明以下:

Drone Host Name: drone 主機名

Set Drone Admin User: 上面建立 gitlab oauth 時的 gitlab 用戶名

Drone integration Server: 代碼倉庫類型,本人是 gitlab

Select the Existing Drone Provider Secret; 上面用 kubectl 建立的 secret

GitLab OAuth2 Client ID : gitlab oauth 的 clientID

GitLab Server Address: gitlab 倉庫地址

        "Service and Load balance" 配置內容:

16.png

        由於我安裝了 nginx-ingress,因此採用 load balance。有關如何安裝 nginx-ingress,你能夠查看個人相關文章,簡單到讓你分分鐘完爆。

        配置完畢後點擊 「啓動」,下圖是啓動成功後的狀態,有時頁面響應不及時,能夠多刷新幾回看運行狀態:17.png

        點擊上圖中的 「80/http" 連接,直接會跳轉到 gitlab 倉庫受權頁面,選擇 「Authorize」:18.png

        頁面會從新回到 drone,此時頁面會同步你的 gitlab 倉庫狀態,同步完成後,會顯示你的 gitlab 倉庫代碼:19.png

        自此,輕鬆完爆 rancher 應用商店安裝 drone 並關聯 gitlab。

相關文章
相關標籤/搜索