jenkins+k8s


1.安裝java環境

jenkins是基於Java開發的持續集成工具,所以必須安裝java環境
移出舊版本JDK
yum remove -y `yum list installed | grep java | awk '{print $1}'` 
yum remove -y `yum list installed | grep jdk | awk '{print $1}'`

 

安裝JDK1.8所有相關依賴
yum install -y java-1.8.0-openjdk*
 
設置環境變量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
 

2.安裝maven

下載安裝包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz
解壓
tar xf apache-maven-3.8.1-bin.tar.gz -C /usr/local/mvn3
 
設置環境變量
export M2_HOME=/usr/local/maven3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
 

3.安裝jenkins

首先安裝yum-fastestmirror插件,它會自動選擇最快的yum源,節約漫長的下載時間
yum install yum-fastestmirror -y
 
添加jenkins源
 
wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum clean all && yum makecache
安裝jenkins
yum -y install jenkins
啟動jenkins
systemctl start jenkins

4.初次打開jenkins

如果到這里沒問題的話,就應該能打開jenkins頁面了,輸入http://(你的ip或者域名):8080就能看到如下

 

插件安裝選擇推薦插件
 
插件安裝完成以后將會創建管理員賬戶
安裝完成:

5.安裝常用插件

設置Jenkins,安裝插件:Pipeline Maven Integration、Maven Integration、Publish Over SSH、Gitee、Kubernetes、Kubernetes Continuous Deploy、Kubernetes Client API、 Kubernetes Credentials

 

 

6.全局工具配置

 
 
 
 
 

7.配置kubernetes

 
[root@master01 .kube]# ls
cache config http-cache
[root@master01 .kube]# pwd
/root/.kube
[root@master01 .kube]# cat config
kubectl create serviceaccount hansl -n hantest
kubectl create clusterrolebinding hansl --clusterrole=cluster-admin --serviceaccount=hantest:hansl
kubectl -n hantest describe secrets $(kubectl -n hantest get secret | grep hansl | awk '{print $1}')
kubectl -n hantest get secret | grep hansl | awk '{print $1}'
kubectl get secret hansl-token-7vqrc -oyaml -n hantest
 
添加憑據kubeconfig類型(pipeline中kubeconfigId使用)

8.創建構建任務

方法一
按照這個方法由於版本原因報錯(指定1.0.0版本可用)
pipeline {
  agent any
  stages {
    stage('重新部署cyl-erp-web') {
      steps('wget') {
        sh 'rm -rf nginx.yaml'
        sh 'wget  https://hansl.coding.net/p/hansl/d/hantest/git/raw/master/nginx.yaml'
        sh 'cat nginx.yaml'
      }
    }
    stage('部署nginx'){
      steps {
        kubernetesDeploy(kubeconfigId: 'k8s', configs: 'nginx.yaml')
      }
    }    
  }
}
高版本報錯

 這個插件的這個版本最好使!!!   Kubernetes CD to version 1.0

升級到高級 在使用中會報錯
原因不明,但是版本降低到1.0就可以執行成功

方法二
用證書去生成連接k8s的kubeconfig,如下圖
點擊下面的generate pieline script 就會生成部署的語句
pipeline {
  agent any
  stages {
    stage('重新部署cyl-erp-web') {
      steps('wget') {
        sh 'rm -rf nginx.yaml'
        sh 'wget  https://hansl.coding.net/p/hansl/d/hantest/git/raw/master/nginx.yaml'
        sh 'cat nginx.yaml'
      }
    }
    stage('部署nginx'){
      steps('wget') {  
        kubeconfig(caCertificate: '''-----BEGIN CERTIFICATE-----
MIICyDCCAbCgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl
cm5ldGVzMB4XDTIxMDMyNTAwNTM0NVoXDTMxMDMyMzAwNTM0NVowFTETMBEGA1UE
AxMKa3ViZXJuZXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANnz
L2nv5wofXJCeVRVRUFNKkBLEQkBl65ZMpcBmVNiaFSgdJ05E9VWLc7jGQVRMrnmV
QR298eQtQStfnbSF4mH4keXAjLR9d0RrJ1yXsrMwpao5k9r+3h9RbtNwsmPnYKCO
2bHy1dezC6BZgVyuR7F2CNSokklSA7x6ekmcqNvGjjq+XbDbepZyajnz9vRDDoIm
t+oLjSJ9S/VKyIOIXJEf1AkFjkGNPGIl6/GGPzlU8aO3bBQurzbxkO94quizwbjZ
SAGJSp8syp2Zsn58S732wN6S552U9wfF+aBV03LK+NiDD6nWT8hjqPE+QkOyIXcG
fstSkNMmz0vmLrWCP60CAwEAAaMjMCEwDgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB
/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACqOHgCn/7crvda1xHk2eoCqUWvK
Tj0ow0tF7+8UZWFmNXW/pHU0kK+rHr1kxPclOVe59+EUpVPPCtEIFMfEXnCXR1eJ
7MggmIq9CbN9MeZ4Eh3YYUA2AXKP5fHulM7VNcFdzcLHqFi4xvLyUWo4yhzDsIbp
pICoUkELotBfFb9RTZim3YbHdSwEOC8Qoma4ilZf7Pc5X8qPhGpkgoF3DT+yeuB8
hHmOdCRTdJm9T39J6Y+I4ylJRoZZAcishmU2n1DBX6pMIL0U7AAErsi/JjmL10It
/DC+0cZw6udNbzhMyEaGndrmhlUgi2pDYf3P9mqwMgpxEfxuOvtoI80dSKM=
-----END CERTIFICATE-----''', credentialsId: 'hansl-token-7vqrc', serverUrl: 'https://10.0.254.101:8443') {
    // some block
        sh 'kubectl apply -f nginx.yaml'
        }
      }
    }    
  }
}

 

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM