kubernetes 1.5安裝 jenkins 帶動態分配資源


kubernetes 1.5安裝 jenkins

配置kubernetes1.5 jenkins,自動創建節點,使用完后自動注銷節點的配置方法。
最后包括NFS的配置。

1. 配置要求

   在kubernetes中運行jenkins,並自動創建節點完成編譯任務。

2. 環境介紹

    k8s使用三台服務器配置
        192.168.7.206            centos-master
        192.168.7.207            centos-minion-1
        192.168.7.208            centos-minion-2
    kubernetes使用操作系統為: Centos 7

3. 配置過程

3.1  下載鏡像

    下載最新的jenkins鏡像,當前時間為2017年1月3日。
    在每一台服務器上面都下載,下載完成后,再進行下一步,這也不是必須,有時候網絡的問題,直接創建服務鏡像會下載不下來。
    docker pull  index.tenxcloud.com/loulan/docker-jenkins:latest

   

3.2  創建服務

jenkins-deployment.yaml  文件內容

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 2
maxUnavailable: 0
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: index.tenxcloud.com/loulan/docker-jenkins:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
name: web
protocol: TCP
- containerPort: 50000
name: agent
protocol: TCP
volumeMounts:
- name: jenkinshome
mountPath: /var/jenkins_home
env:
- name: JAVA_OPTS
value: "-Duser.timezone=Asia/Shanghai"
volumes:
- name: jenkinshome
nfs:
server: 192.168.7.206
path: "/opt/jenkins"

在文件jenkins-deployment.yaml 中,查看鏡像地址是否是剛才下載的地址。

注意最后使用的是nfs,nfs服務的安裝部署網上有很多的教程。我們在文章的最后會把nfs的配置寫上。最好在jenkins部署之前就將nfs配置好。


執行創建命令:

kubectl create -f jenkins-deployment.yaml 
[root@centos-master jenkins]# kubectl create -f jenkins-deployment.yaml deployment "jenkins" created

檢查:

kubectl get pod

NAME                                READY     STATUS              RESTARTS   AGE
jenkins-4182169461-jg8fc 1/1 Running 0 4m

查看日志:

kubectl logs jenkins-4182169461-jg8fc 

INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5e74728b: defining beans [filter,legacy]; root of factory hierarchy
Jan 04, 2017 11:18:19 AM jenkins.install.SetupWizard init
INFO:

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

819f56242a9140cfbdb8f9645ae00ecd

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

Jan 04, 2017 11:18:25 AM hudson.model.UpdateSite updateData
INFO: Obtained the latest update center data file for UpdateSource default
Jan 04, 2017 11:18:25 AM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running
--> setting agent port for jnlp
--> setting agent port for jnlp... done

紅色的部分在網頁登錄可用。



jenkins-service.yaml 文件內容

kind: Service
apiVersion: v1
metadata:
labels:
app: jenkins
name: jenkins
spec:
ports:
- port: 8080
targetPort: 8080
name: web
- port: 50000
targetPort: 50000
name: agent
selector:
app: jenkins

創建服務命令:

kubectl create -f jenkins-service.yaml 
[root@centos-master jenkins]# kubectl create -f jenkins-service.yaml service "jenkins" created

 kubectl get svc
[root@centos-master jenkins]# kubectl get svcNAME                      CLUSTER-IP       EXTERNAL-IP   PORT(S)              AGEjenkins                   10.108.27.146    <none>        8080/TCP,50000/TCP   7m





jenkins-ingress.yaml 文件內容

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: jenkins
spec:
rules:
- host: jenkins.xxx.lan
http:
paths:
- path: /
backend:
serviceName: jenkins
servicePort: 8080

創建ingress命令:

kubectl create -f jenkins-ingress.yaml 
[root@centos-master jenkins]# kubectl create -f jenkins-ingress.yaml ingress "jenkins" created

檢查:

kubectl get ing 

[root@centos-master jenkins]# kubectl get ing 
NAME HOSTS ADDRESS PORTS AGE
jenkins jenkins.xxx.lan 192.168.7.207 80 6m



通過網頁進去jenkins,安裝插件Kubernetes plugin.





4. 配置節點

4.1 配置系統

如下圖: Manage Jenkins

4.2 點擊Configure System



4.3 增加Kubernetes配置




4.5  配置Kubernetes


Kubernetes URL 為:  https://kubernetes.default

這個應該是在kubernetes中解析的。

Jenkins URL 為: http://jenkins.default:8080

也應該是自動解析的。




image配置中:

Docker Image 配置為:  jenkinsci/jnlp-slave

這個是一個鏡像,可以先下載到每個node中。其他的按照圖片上隨便填寫。


這樣,所有的配置基本完成。接下來就是測試。


測試如下圖:









測試效果圖:









NFS服務器配置

1. 服務安裝

yum -y install nfs-utils rpcbind

2. 服務配置

vi /etc/exports  

/opt/jenkins    *(rw,no_root_squash,no_all_squash,sync)

3. 使用配置生效

exportfs -r

4. 一般的操作

systemctl restart nfs rpcbind 
systemctl enable nfs
systemctl enable rpcbind

5. 節點操作

yum install nfs-utils -y

必須要在所有的節點安裝nfs-utils。



問題解決:

1 .Jan  3 22:02:49 centos-minion-2 kubelet: Output: mount: wrong fs type, bad option, bad superblock on 192.168.7.206:/opt/jenkins,


yum install nfs-utils -y

缺少nfs相關的命令



2. [root@centos-master jenkins]# kubectl logs jenkins-1859637992-554k0
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

nfs 目錄不可寫。











注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com