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

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

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

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

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】

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

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

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】 安装需要使用的插件

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

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

二、全局凭据 (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】

点击【(global)】

点击【Add Credentials】

填写相关信息,点击【Create】
- kind:Secret file
- File:导出.kube/config文件
- ID:kubernetes
- Description:kubernetes-config

填写相关信息,点击【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)】

点击【Add Credentials】

填写相关信息,点击【Create】
- kind:Username with password
- Username:admin
- Password:Harbor12345
- ID:Harbor-username
- Description:Harbor-username-password

2.3 配置GitLab Key¶
1.打开浏览器输入http://jenkins.zhang-qing.com/,输入账号root和密码123456登录Jenkins机器
依次点击 【Manage Jenkins】-【 Manage Credentials】-【(global)】

点击【Add Credentials】

填写相关信息,点击【Create】
- kind:Username with password
- ID:Gitlab-username
- Username:root
- Password:S6n5Y7b81wRrJnKv
- Description:Gitlab-username-password

三、在Jenkins上添加k8s¶
1.依次点击【Manage Jenkins】-【Manage Nodes and Clouds】

2.点击【Configure Clouds】

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

4.在名称字段,输入集群的名称,一般按照可识别的名称即可,这里定义为study-kubernetes。
填写kubernetes地址:https://kubernetes.default.svc.cluster.local
填写Jenkins地址:http://jenkins.devops.svc.cluster.local:8080
点击 Kubernetes Cloud details,在凭据处选择之前添加 Kubernetes 证书,选择后点击【连接测试】,最后在凭据下方即可看到能否正常连接的结果,即k8s集群的安装版本。最后,点击【Save】

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