一、插件管理

1.打开浏览器输入http://jenkins.zhang-qing.com/,输入账号root和密码root登录(这是我设置的账号和密码,实际需要根据你自己设计的账号和密码来定)

image-20231223191710671

2.登录后点击 【Manage Jenkins】 → 【Manage Plugins】 安装需要使用的插件

安装需要使用的插件-2

这里说明下如果在生产环境中,下载需要使用的插件要点击【Manage Jenkins】 → 【Manage Plugins】 → 【Installed plugins】

Jenkins插件安装-3

3.在安装之前首先配置国内的插件源,点击【 Advanced settings】,将插件源更改为国内插件源:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json后,点击【Submit】

Jenkins插件安装-4

4.点击【Available plugins】 安装需要使用的插件

插件描述 插件名称
Chinese localization-zh-cn
GitLab gitlab-plugin
Git Parameter git-parameter
Extended Choice Parameter extended-choice-parameter
Docker docker-plugin
Groovy groovy
Kubernetes kubernetes
Pipeline workflow-aggregator
Config File Provider config-file-provider
Active Choices uno-choice
Kubernetes Continuous Deploy kubernetes-cd(已停用)
HTTP Request http-request
Build User Vars build-user-vars-plugin
Description Setter description-setter
Describe With Params describe-with-params
Build Name and Description Setter build-name-setter
Pipeline Stage View pipeline-stage-view

选好之后,点击【Download now and install after restart】

Jenkins插件安装-5

勾选【Restart Jenkins when installtion is complete and no jobs are running】等待下载完成

Jenkins插件安装-6

自动重启Jenkins,依次点击【Manage Jenkins】 → 【Manage Plugins】→ 【Available plugins】查看已经安装的包

Jenkins插件安装-7

5、如果有下载失败的,可接着按下面操作(如果插件安装成功,则不需要进行下面操作)

正常来说,一般为如下插件安装失败

bouncycastle API
Trilead API
Jackson 2 API
Durable Task
Implementation for Blue Ocean
GitLab
Subversion
Delivery Pipeline
Image Tag Parameter
Kubernetes Client API
Personalization for Blue Ocean
Jersey 2 API
Pipeline implementation for Blue Ocean
REST Implementation for Blue Ocean
Bitbucket Pipeline for Blue Ocean
Blue Ocean Core JS
ECharts API
OkHttp
GitHub API
Git client
SCM API
JAXB
Branch API
Pipeline: Groovy Libraries
Durable Task

(1)打开官方插件下载地址,根据details信息下载指定插件,一般都是以.hpi结尾的。

(2)下载完成后,进行插件导入

登录后点击 【Manage Jenkins】 → 【Manage Plugins】 安装需要使用的插件

安装需要使用的插件-2

点击【Advanced settings】,点击【选择文件】,选择好本地导入的文件后,点击【Deploy】进行本地导入

image-20231120194817001

勾选【Restart Jenkins when installtion is complete and no jobs are running】等待下载完成

Jenkins插件安装-6

二、全局凭据 (unrestricted)

涉及到的全局凭据:

  • 1、gitlab-auth-passwd,类型:Username with password
  • 2、Harbor,类型:Username with password
  • 3、kubeconfig,类型: Secret file

2.1 配置kubernetes证书

1.在master01节点上找到集群中的 KUBECONFIG,一般是 kubectl 节点的~/.kube/config 文件,或者是 KUBECONFIG 环境变量所指向的文件

$ ls /root/.kube/config
.kube/config
$ env | grep KUBECONFIG

2.导出.kube/config文件

$ sz .kube/config

如果没有sz,执行以下命令进行安装

$ yum install lrzsz -y

3.接下来打开浏览器输入http://jenkins.zhang-qing.com/,输入账号root和密码root登录Jenkins机器后,只需要把证书文件放置于 Jenkins 的 Credentials 中即可。

依次点击 【Manage Jenkins】-【 Manage Credentials】

Jenkins凭证Credentials-1

点击【(global)】

Jenkins凭证Credentials-2

点击【Add Credentials】

Jenkins凭证Credentials-3

填写相关信息,点击【Create】

  • kind:Secret file
  • File:导出.kube/config文件
  • ID:kubernetes
  • Description:kubernetes-config

image-20231120104952997

填写相关信息,点击【Create】

此处添加的kubeconfig为后面构建JAVA应用准备,Kubernetes Continuous Deploy这个插件只支持类型为Kubernetes configuration(kubeconfig)的,不支持Secret file类型

  • kind:Kubernetes configuration (kubeconfig)

  • kubeconfig:这里选择【Enter diectly】,Content内容需要填写/root/.kube/config文件内容

yaml apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJV1JPZ00zV1UvNnN3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRBM01UZ3hNRE16TkRoYUZ3MHpOREEzTVRZeE1ETTRORGhhTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUURTU0tBd040MmhCd1JNakhnQ3phUE53dFhEZVJrZDVqT2JwQmUwYjBtUlV0ZFdxeWZIZnpJOHdaWVUKWExwREN1d29OcmZnd3dsc2xNa0luZkRETDRjR0FSUk1JVll0OERKUWtyVUZPU0RzS2lFemtTek9Hd3N0RnBEaQpwcUlzNFI0VXQzVDFEVFJHcmpTbXkvWmxPSjBxNUlvbDBQcU4vazBWSHlVeGZaZUhURWx5RUxvcVc4UGhiUlg3CmNWS2pCLzh4L2FBZlRRUTBVaURSNW5ncmRjWmJGaUVpKzRkcWdiZGhIQnlaQm5pdU9UNlVsbjZLdjI4eXVuaTYKZzM1VC96bm9UdEppakdJK0gxT2h2V2ZQOUFVWHptc0dtZ09CVmtSUjd5UFJiZCtkRGF3TDFKNGdOR1IzMzRoQwovamVTS2piMHdxZCtkenpTVCtEQkVFb0Q0RXdwQWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJTVlZYTXp0SG9nMWJoYlRlOFNucHRWRGNTQkZUQVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ1cwMTUxSkZidgpmeVZvNTJ5eGF3TDhnM0V0TDZDRk1nQjBvMzJBbWw2T0tnK1dIZ2NBZkk0UUVhaDNGL3RCWlNjWkdib0hrZlluCkxhNFBDU1JZZEVuNXBRZUdYQTJXVERHeGhIR0N4RmJxcmpnTlp4Wnh4YUUydXdrSU0rNjJkNWxKMnB0NFdaSncKcmc5RE1DanZsSG1BbkcyK0RNVDIvNE9talZ6clFHVjRwWVRaWkxNZXRSdXU2QWlEeGgxNWMwWjV5RkJuYnBDcwpsMGxxc1hlR0NmYmRMcG9HU1BEWDZaOHRMQ1BjU1VuVGlCVFdnMThKOFF1UXIxeWlOb3h1b3N1bURQbDdRMTZNCmJ2WldKQW54NFNla1FZZkpwaENJdHhzam9YTW0xUVk1eWRvTXlWUCtQS1hJVUFScDBudVozMWVZZUNnYitoaE4KNURyRlZJYW81TDdlCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K server: https://10.0.0.65:16443 name: kubernetes contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes kind: Config preferences: {} users: - name: kubernetes-admin user: client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJWTFFeGFVNEpvWGt3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRBM01UZ3hNRE16TkRoYUZ3MHlOVEEzTVRneE1ETTRORGxhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTFabWJQb0FsUXpuZzduaW8KYjlyNXJIUGl3U2RQNy91R0M1cytVQlJXeUZiYXdzOE5VK295bVlJMVRoVmY5K0RWTUFOQlNxM09XbEkyV2Yrdgp1aHc5Q1o2Lzh5NjZVMDZPQmN1eHd6SllFNzJrcTdJdmRqUWRKK0FSOFdxNjlaUmdRdzMyb1ZwZndjOUtKRG96CjhTalZZdkpLT3hiTVBnVEw1WkxSUDgyRWwvN2RBNjFWbGpXNVF4eWFTdjAzbEQvNW1wdk9RdXA0dVlBa0NWWHoKSVF1SG15SW92QUlqSmkvWm9WWWlaQmFqbE1Lb1FMUEtMejlDU0ZYdVFlNERwS3ZJdzVsQ09WaitTcmhENnU2ZQpIMmJ3L1FhMVNyaE5KL3J3ZlZIQzVxMm9ycnphaE12ZXZ0enhpNVZJN05mTkFsd3o1MlFJWkdtYWxaV0NhOFJxCkYzMS90d0lEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JTVlZYTXp0SG9nMWJoYlRlOFNucHRWRGNTQgpGVEFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBdy9iOG0wZjFDbEVQYm51OG5pZmlvTU1sOUJwOGowZkVUb05yCjlWYUs3Lzh5UjIybG5OSWV6TUo3SE9rY1BwNWdrcndNRDdIaUNIM0FCSEc1WlFWTXJDbktpcGNBbzdQMGs4VmYKWlJiTjFiaEFhNEtQS1NDQ1VOUEVxNlhzM0taQjlIYzhIaDcxcnpwS0U5RGhxWkJjVzg4UDI3Rmd6WHl5NUd5LwpBSm4rRmxWR3RZU0N0NnZDWkh0Q29TN1hFVGJwRlRPZ3RCcmY5VFZHcUhlWno1T2djWGErTnlaNTJrODdSN01ZCndkcENTMWd4T0VaMHJ2ODh1cmhUcEk5bWhsTE5pL3hUaWFJRXJCYmZNMnRBTXpjQUE5M1kwekE4ZWtMdEV2N1oKUWdOdWxBODZuQUtFam5xV3JjZW54YmFYajV2L2NoTFRVWXpLSVJLY0ptL0lpZGxoU0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBMVptYlBvQWxRem5nN25pb2I5cjVySFBpd1NkUDcvdUdDNXMrVUJSV3lGYmF3czhOClUrb3ltWUkxVGhWZjkrRFZNQU5CU3EzT1dsSTJXZit2dWh3OUNaNi84eTY2VTA2T0JjdXh3ekpZRTcya3E3SXYKZGpRZEorQVI4V3E2OVpSZ1F3MzJvVnBmd2M5S0pEb3o4U2pWWXZKS094Yk1QZ1RMNVpMUlA4MkVsLzdkQTYxVgpsalc1UXh5YVN2MDNsRC81bXB2T1F1cDR1WUFrQ1ZYeklRdUhteUlvdkFJakppL1pvVllpWkJhamxNS29RTFBLCkx6OUNTRlh1UWU0RHBLdkl3NWxDT1ZqK1NyaEQ2dTZlSDJidy9RYTFTcmhOSi9yd2ZWSEM1cTJvcnJ6YWhNdmUKdnR6eGk1Vkk3TmZOQWx3ejUyUUlaR21hbFpXQ2E4UnFGMzEvdHdJREFRQUJBb0lCQUJpTzY2RjQvRS9KWk1vbQpSejl0RHMyOEdUTWFBUC9Yakdiak4zdmZpc2JIN2FqK1Ewc0ZuMEcxRGNubmZUd3p0bThwd0tVRWJMaEh3WVlCCmRzUFFJVmhzenliM2xXYWtub0dlRk5jYmY3THRWL1NCclNGTEJwc2lFUTRQdG1VcjVSRndsbzJncFdmVUhITWoKMmZyOU5lT0ZkZkZyUXBwUzFOcVZVY2VqS242TEVqbUFsVTlIVmlxNU9CMXdDaGdEbTY3bUVOYW1VZUl5RFBlMAp5VThzdWxNdVlXRnpHNG42NUtOMFd4VjBFSVpheHN4WUYxLzBjT1hOTDg2TUFVdUgwUUNDOFY0dnp5RSt4Ykx2ClBHZVRIeWFWY2JaWHQrNG90Y0QyT2dxR0E4V1V4UGUvcW9WV2VOOUxxbmpQdGlXcTZZckxCcDVhYWQvVzJDSmkKV1JyaDRoRUNnWUVBN05VdnJGZFVVM3RVV2R1dWhQUVpKRmhvRFRpQ3Y4cjVYQitqc0c1UklETTdXQWc5RUd6QgpvcFEvUTBXNWI1VEZPeWYyQVZ6TTN0QW5Jbi8xeHpKbWJ6VUE0cHNwRTUzbzl5TVRmSk1NWitPaW1tSGlyVERNCmtyUk1BZjlia1pORmdPekt4SHdhbVYxU2plTU1XdUZGcTZmQU51N1BlUnF2SWNXMFpBUTZ4ejhDZ1lFQTV1TVMKeUdlNjdFalczY2lmTXk4eUZzZGJuWXZ5RldUQ3p3NUxwL3B5bVNYbURIZzZ1bXUvM3BHb3ZiR2p4UDEzTDhTZgpuOWpPYm1hdTA0TlRtWVRpb283RVYwb3BXVXVMRkppcXpyQ3dWTW03NHNwWUxrR1FhNmg1ck9hanAxZ1BFQTRDCjNEQlBvM0ZYczNJWFVCdU1VTS9QUWduNEI0UEc0a0UxZytqMllZa0NnWUVBMUxRemVPbUdCdVJCUWVNWHZya3MKeTRQTEQvU3RHV3hHd1FKNWxUKy9CTmgrZC9ZT1FlNHJpc1R5Zkl6bW10eFd0MmFRZjNERlgyZzdmYlRISFB5YgpHMDNUV2JKWkZoRkE1cFZPTHhneWtDdldJaW0vMkNSMzExcXUyU3hySlRmTHVKcnpFYjBVZHFGbVA2Q252QWVPCjl6aFdYZi9sdnJMRWorUnN1MWRCSXlrQ2dZQVozcEZwTU80cHNWT1p6L08rZVdoRVV4djV3QWRrekVCamtMZDcKWDcxZFdYaTRKdlIxbE1NUHZnUkpGTkZEcmg2ZmxJbEtFTEc0ZnZyUnFpSkF6am5TZXVxVzJURmUxdThEWk1PbQptdmQyMkkrYnJvNUl5SUhVL2pCNzVlK3FQVnlhc09jeklwcVp0b1pjRGNsODZVbEVlTFJCTXZxK1pNNXc1VnVJCnB4NkwrUUtCZ0NPUHJLS2FGemljRXA2VVZYZzhjVTBoUmhRWmluTGxFN3FJZTFFczFYTktDVm5CZlhENnR0OWUKa2JnWERKOGhIeWlpcFM4RUVWYUdyMG93NytwNWxQbkFab0JHRERLRmovZ3l3TTJIek1HaDNSWDNPdnRmSElVYgpyR2drWHNMTHpmVVpHZXE0c3lTNE90NzFIRUdaaXhUY2d4ZlMxZTNUN2R3ME5oMS9iaTVzCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==

  • ID:kubeconfig

2.2 配置Harbor账号密码

1.打开浏览器输入http://harbor.zhang-qing.com/,输入账号root和密码123456登录Jenkins机器

依次点击 【Manage Jenkins】-【 Manage Credentials】-【(global)】

配置Harbor账号密码-1

点击【Add Credentials】

配置Harbor账号密码-2

填写相关信息,点击【Create】

  • kind:Username with password
  • Username:admin
  • Password:Harbor12345
  • ID:Harbor-username
  • Description:Harbor-username-password

配置Harbor账号密码-3

2.3 配置GitLab Key

1.打开浏览器输入http://jenkins.zhang-qing.com/,输入账号root和密码123456登录Jenkins机器

依次点击 【Manage Jenkins】-【 Manage Credentials】-【(global)】

配置GitLab Key-1

点击【Add Credentials】

配置GitLab Key-2

填写相关信息,点击【Create】

  • kind:Username with password
  • ID:Gitlab-username
  • Username:root
  • Password:S6n5Y7b81wRrJnKv
  • Description:Gitlab-username-password

image-20231120104337843

三、在Jenkins上添加k8s

1.依次点击【Manage Jenkins】-【Manage Nodes and Clouds】

Jenkins 配置 Kubernetes 多集群-1

2.点击【Configure Clouds】

Jenkins 配置 Kubernetes 多集群-2

3.点击 【Add a new cloud】,选择 kubernetes

Jenkins 配置 Kubernetes 多集群-3

4.在名称字段,输入集群的名称,一般按照可识别的名称即可,这里定义为study-kubernetes。

填写kubernetes地址:https://kubernetes.default.svc.cluster.local

填写Jenkins地址:http://jenkins.devops.svc.cluster.local:8080

点击 Kubernetes Cloud details,在凭据处选择之前添加 Kubernetes 证书,选择后点击【连接测试】,最后在凭据下方即可看到能否正常连接的结果,即k8s集群的安装版本。最后,点击【Save】

image-20231120200337223

5.添加完 Kubernetes 后,在 Jenkinsfile 的 Agent 中,就可以选择该集群 作为创建 Slave 的集群。如果想要添加多个集群,重复上述的步骤即可。首先添加 Kubernetes 凭证,然后添加 Cloud 即可。