RHEL8安裝Jenkins串接K8S為Agent3

Jenkins串接Minikube為Agent (失敗,Minikube API Server位置無法給該VM之外)

ZONGRU Li
6 min readJul 6, 2022

1.先在Ubuntu機台建立Minikube Cluster(充當K8s Agent用)

參考之前Tekton筆記在Ubuntu建立簡單Minikube當作k8s環境

連結:依據前篇整理快速建立Ubuntu的Minikube環境

來提供給後面RHEL機台串接當成k8s Agent

基本就是照著那邊筆記整理的shell一個個慢慢跑(除了後半的Tekotn安裝)

Ubuntu機台最後拿到Cluster API ServerURL位置:

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 — KubernetesBlue Ocean及各自的設置:

依據之前寫的筆記 — RHEL8安裝Jenkins串接K8S為Agent — 實作

首先先裝KubernetesBlue Oceanplugin:

下面勾下載重啟後安裝,然後勾起來:

(過程省略一些步驟,詳細可以回去看那一篇)

先設置一下K8sagent串接:

其中一步是要給身分,這邊原本應該要另外做以下:

#參考YT影片整理的內容:
kubectl create namespace jenkins
kubectl 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位置

也就是隔壁不同台VMJenkins沒辦法直接連去minikube

所以比較快的方法就是直接在minikube那台重啟Jenkins Container!

#minikube機台另裝Jenkins:
sudo apt update
sudo apt install docker.io
sudo docker run -p 8080:8080 -p 50000:50000 -d \
-v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

後面要裝docker發現會衝到CRI:

看起來還是要另外建完整的cluster會好一點!

這邊順便記錄到這邊

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet