RHEL8安裝Jenkins串接K8S為Agent3
1.先在Ubuntu機台建立Minikube Cluster(充當K8s Agent用)
參考之前Tekton筆記在Ubuntu建立簡單Minikube當作k8s環境
連結:依據前篇整理快速建立Ubuntu的Minikube環境
來提供給後面RHEL機台串接當成k8s Agent
基本就是照著那邊筆記整理的shell一個個慢慢跑(除了後半的Tekotn安裝)
Ubuntu機台最後拿到Cluster API Server的URL位置:
2.RHEL機建立Jenkins Container:
#先搞定三海豹:
sudo yum module list
sudo yum -y module install container-tools#起Jenkins Container:
sudo podman run -p 8080:8080 -p 50000:50000 -d \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts
3.安裝必要Plugin — Kubernetes及Blue Ocean及各自的設置:
依據之前寫的筆記 — RHEL8安裝Jenkins串接K8S為Agent — 實作
首先先裝Kubernetes及Blue Ocean的plugin:
下面勾下載重啟後安裝,然後勾起來:
(過程省略一些步驟,詳細可以回去看那一篇)
先設置一下K8s的agent串接:
其中一步是要給身分,這邊原本應該要另外做以下:
#參考YT影片整理的內容:
kubectl create namespace jenkinskubectl create serviceaccount jenkins --namespace=jenkins#拿到上述SA的Token,要拿來設置Jenkins的Secret TXT憑證:
kubectl describe secret $(kubectl describe serviceaccount jenkins --namespace=jenkins | grep Token | awk '{print $2}') --namespace=jenkins#給予上述SA權限:
kubectl create rolebinding jenkins-admin-binding --clusterrole=admin --serviceaccount=jenkins:jenkins --namespace=jenkins
但是我赫然發現
查一下發現:
因為現在1.24版的Kubernetes
建立serviceaccount後,預設不會在給Secret Token了
所以這邊研究一下怎麼搞...
參考以下文件(LINK):
改成我要用的版本:
#如以下:kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: jenkins-secret
namespace: jenkins
annotations:
kubernetes.io/service-account.name: jenkins
type: kubernetes.io/service-account-token
EOF
回過頭來執行:
#拿到上述SA的Token,要拿來設置Jenkins的Secret TXT憑證:
kubectl describe secret $(kubectl describe serviceaccount jenkins --namespace=jenkins | grep Token | awk '{print $2}') --namespace=jenkins#給予上述SA權限:
kubectl create rolebinding jenkins-admin-binding --clusterrole=admin --serviceaccount=jenkins:jenkins --namespace=jenkins
我又赫然發現minikube建起來的IP位置不會是該VM的Public IP位置
也就是隔壁不同台VM的Jenkins沒辦法直接連去minikube
所以比較快的方法就是直接在minikube那台重啟Jenkins Container!
#minikube機台另裝Jenkins:
sudo apt update
sudo apt install docker.iosudo docker run -p 8080:8080 -p 50000:50000 -d \
-v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
後面要裝docker發現會衝到CRI:
看起來還是要另外建完整的cluster會好一點!
這邊順便記錄到這邊