本系列文章:
nginx
第一章:九析帶你玩轉 rancher - 安裝篇git
第二章:九析帶你玩轉 rancher - 導入集羣篇docker
第三章:九析帶你玩轉 rancher - 集成 gitlabapi
第四章:九析帶你玩轉 rancher - 集成 harbor緩存
第五章:九析帶你玩轉 rancher - 流水線發佈服務器
第六章:九析帶你玩轉 rancher - require 'docker login'微信
第七章:九析帶你玩轉 rancher - 流水線與自定義域名app
目錄gitlab
1 前言
2 建立 gitlab Oauth 應用程序
3 建立 secret
4 建立項目空間和命名空間
5 安裝 nfs 服務器
6 建立 pv
7 建立 pvc
8 應用商店添加 drone
1 前言
若是你對博客有疑問,請加羣告知!
rancher 的流水線功能比較弱,最讓人詬病是速度慢、沒法緩存、耗費資源等。相比 rancher,drone 具備佔有資源少、可緩存、速度奇快以及輕量化等衆多優勢。本文就介紹如何採用 rancher 的應用商店來安裝 drone,以及 drone 如何關聯 gitlab。
本文環境是 k8s v1.16.3,rancher v2.3.3。
2 建立 gitlab Oauth 應用程序
登陸 gitlab,選擇 setting:
選擇 "application", 填寫相關信息,Redirect URI 是回調 drone 服務器地址(下面會進行安裝,這裏先寫上不要緊。個人地址是 http://jiuxi.drone.org/login,注意 /login 是必須後綴,不要忘寫)。
保存後生成受權信息以下:
gitlab 配置結束。
3 建立 secret
首先經過 kubelet 建立 secret,其中 「clientSecret」 值就是上面 gitlab 建立 oauth 應用的 secret 值:
kubectl create secret generic drone-server-secrets \
--namespace=drone \
--from-literal=clientSecret="93e85934b165566125bdc313288d79fb446c486d18afaf07f7c97e36297b00bd"
4 建立項目空間和命名空間
登陸 rancher,選擇指定集羣:
點擊進入集羣(jiuxi),能夠看到集羣的 dashboard,選擇「項目/命名空間」:
選擇「添加項目」:
填寫項目名稱(drone)並建立:
在新增項目(drone)下選擇「添加命名空間」:
填寫命名空間名(drone)並建立:
項目空間和命名空間建立完畢。經過導航點擊進入,之後的操做都會在此項目空間下進行。
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 綁定成功:
8 應用商店添加 drone
進入項目空間(drone)下的應用商店,選擇「啓動」:
經過搜索找到 「drone」:
點擊後截圖以下:
「Drone settings」 配置內容:
說明以下:
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" 配置內容:
由於我安裝了 nginx-ingress,因此採用 load balance。有關如何安裝 nginx-ingress,你能夠查看個人相關文章,簡單到讓你分分鐘完爆。
配置完畢後點擊 「啓動」,下圖是啓動成功後的狀態,有時頁面響應不及時,能夠多刷新幾回看運行狀態:
點擊上圖中的 「80/http" 連接,直接會跳轉到 gitlab 倉庫受權頁面,選擇 「Authorize」:
頁面會從新回到 drone,此時頁面會同步你的 gitlab 倉庫狀態,同步完成後,會顯示你的 gitlab 倉庫代碼:
自此,輕鬆完爆 rancher 應用商店安裝 drone 並關聯 gitlab。