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