您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“helm怎么安裝jenkins”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“helm怎么安裝jenkins”吧!
本次實(shí)戰(zhàn)使用名為helm-jenkins的namespace,執(zhí)行以下命令創(chuàng)建:
kubectl create namespace helm-jenkins
為了后面的jenkins服務(wù)順利啟動(dòng),需要預(yù)先部署好pv:
新建名為pv-helm-jenkins.yaml的文件,內(nèi)容如下:
apiVersion: v1 kind: PersistentVolume metadata: name: helm-jenkins namespace: helm-jenkins spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Recycle nfs: path: /usr/local/work/test/002 server: 192.168.133.142
執(zhí)行命令kubectl create -f pv-helm-jenkins.yaml,創(chuàng)建pv
查看pv是否已經(jīng)就緒:
[root@node1 helm-jenkins]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE helm-jenkins 10Gi RWO Recycle Available 5s 14h
確保helm2.16.1版本安裝完畢,并且可以正常工作:
[root@node1 helm-jenkins]# helm version Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
確保以下的helm repo準(zhǔn)備好(如果沒有可以通過helm repo add添加):
[root@node1 helm-jenkins]# helm repo list NAME URL stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
執(zhí)行以下命令,即可創(chuàng)建jenkins的deployment、service等資源:
helm install --namespace helm-jenkins --name my-jenkins stable/jenkins
執(zhí)行完畢后,控制臺(tái)輸出以下內(nèi)容:
NOTES: 1. Get your 'admin' user password by running: printf $(kubectl get secret --namespace helm-jenkins my-jenkins -o jsonpath="{.data.jenkins-admin-password}" | base64 --decode);echo 2. Get the Jenkins URL to visit by running these commands in the same shell: NOTE: It may take a few minutes for the LoadBalancer IP to be available. You can watch the status of by running 'kubectl get svc --namespace helm-jenkins -w my-jenkins' export SERVICE_IP=$(kubectl get svc --namespace helm-jenkins my-jenkins --template "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}") echo http://$SERVICE_IP:8080/login 3. Login with the password from step 1 and the username: admin
上述內(nèi)容的第一條給出了重要提示:獲取admin賬號(hào)密碼的方法,執(zhí)行命令即可:
printf $(kubectl get secret --namespace helm-jenkins my-jenkins -o jsonpath="{.data.jenkins-admin-password}" | base64 --decode);echo
如下圖紅框所示,我這里得到了admin密碼為Eq6WxHvJ2V:
檢查服務(wù),發(fā)現(xiàn)helm-jenkins這個(gè)namespace下有兩個(gè)服務(wù):my-jenkins和my-jenkins-agent,前者就是jenkins網(wǎng)站,后者用來接收?qǐng)?zhí)行任務(wù)的jenkins實(shí)例的注冊:
[root@node1 helm-jenkins]# kubectl get svc -n helm-jenkins NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE my-jenkins LoadBalancer 10.233.10.35 <pending> 8080:31763/TCP 31m my-jenkins-agent ClusterIP 10.233.35.20 <none> 50000/TCP 31m
my-jenkins這個(gè)服務(wù)的類型是LoadBalancer,8080端口被映射到宿主機(jī)的31763,因此,使用kubernetes集群中一臺(tái)宿主機(jī)的IP,再加上31763端口即可通過瀏覽器訪問,如下圖:
至此,jenkins安裝已完成,接下來要做必要的設(shè)置
為了讓jenkins在以下模式工作,還需要設(shè)置kubernetes插件
點(diǎn)擊下圖紅框中的"Manage Jenkins",進(jìn)入設(shè)置頁面
由于很多插件版本較久,頁面上會(huì)有升級(jí)提示,這里暫時(shí)用不到,因此直接點(diǎn)擊下圖紅框中的"Configure System"
點(diǎn)擊下圖紅框1中的"Test Connection”按鈕,您會(huì)見到紅框2中的錯(cuò)誤信息:
產(chǎn)生上述錯(cuò)誤的原因,是由于jenkins容器沒有權(quán)限訪問kubernetes的api server導(dǎo)致的,為了解決此問題,要先搞清楚容器的身份,我們知道容器在kubernetes環(huán)境中都有自己的serviceaccount,執(zhí)行命令kubectl get serviceaccount -n helm-jenkins查看當(dāng)前namespace下的serviceaccount:
[root@node1 helm-jenkins]# kubectl get serviceaccount -n helm-jenkins NAME SECRETS AGE default 1 3h65m
可見jenkins容器的serviceaccount是default
知道了容器的serviceaccount,上述問題就好解決了,我們用RBAC將訪問api server所需權(quán)限綁定給default即可,這里為了省事兒就不將權(quán)限一一列出了,接下來直接給default最高權(quán)限(生產(chǎn)環(huán)境千萬別這么做,必須按需分配);
新建名為rbac-helm-jenkins-default.yaml的文件,內(nèi)容如下:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: rbac-helm-jenkins-default namespace: helm-jenkins roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: default namespace: helm-jenkins
執(zhí)行命令kubectl create -f rbac-helm-jenkins-default.yaml使得RBAC生效
再次回到之前的頁面點(diǎn)擊"Test Connection"按鈕,如下圖,提示"Connection successful":
接下來設(shè)置Pod模板參數(shù),如下圖,namepsace要設(shè)置為helm-jenkins,另外要記下來Labels的值my-jenkins-jenkins-slave,后面會(huì)用到
點(diǎn)擊底部的"Save"按鈕,使設(shè)置生效:
設(shè)置完畢,接下來創(chuàng)建任務(wù)體驗(yàn)一下kubernetes上的jenkins功能
創(chuàng)建一個(gè)Freestyle project,如下圖:
如下圖,表單中Label Expression的值是前面記下來的my-jenkins-jenkins-slave
如下圖,本次任務(wù)的具體內(nèi)容很簡單,執(zhí)行一段shell,輸出"Hello World!":
點(diǎn)擊底部的"Save"按鈕保存
點(diǎn)擊下圖紅框中的"Build Now",即可開始構(gòu)建
此時(shí)去控制臺(tái)執(zhí)行命令kubectl get pods -n helm-jenkins查看pod,會(huì)發(fā)現(xiàn)有新的pod出現(xiàn),如下所示,這是執(zhí)行jenkins任務(wù)的pod:
[root@node1 helm-jenkins]# kubectl get pods -n helm-jenkins NAME READY STATUS RESTARTS AGE default-66vcq 0/1 ContainerCreating 0 1s my-jenkins-74bcdfc566-jbw28 1/1 Running 0 5h6m
返回jenkins頁面,可見任務(wù)已經(jīng)執(zhí)行完畢
到此,相信大家對(duì)“helm怎么安裝jenkins”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。