您好,登錄后才能下訂單哦!
本系列文章:
第一章:九析帶你玩轉 rancher - 安裝篇
第二章:九析帶你玩轉 rancher - 導入集群篇
第三章:九析帶你玩轉 rancher - 集成 gitlab
第四章:九析帶你玩轉 rancher - 集成 harbor
第五章:九析帶你玩轉 rancher - 流水線發布
第六章:九析帶你玩轉 rancher - require 'docker login'
第七章:九析帶你玩轉 rancher - 流水線與自定義域名
第八章:九析帶你玩轉 rancher - drone 集成 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 OAuth3 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。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。