Jenkins上添加KubernetesPlugin插件
Kubernetes For Jenkins
前言
想要在Jenkins上实现k8s自动化部署,首先在Jenkins上安装一个插件Kubernetes Plugin
Kubernetes插件是一个很棒的工具,可以将Jenkins从属设备动态配置为Kubernetes集群上的pod。您需要做的就是添加和配置Kubernetes Cloud作为Jenkins配置的一部分。
插件如图
Kubernetes Plugin
安装插件的过程就不讲述了,安装完成后Kubernetes插件怎么配置呢?配置Jenkins Kubernetes插件需要的哪些东西
- 首先要有一个k8s集群,查看 /etc/kubernetes/admin.conf
- kubernetes url 一般还说地址就是:https://kubernetes:6443
- 连接Kubernetes证书。 哪里生成证书的证书,下面我会详细说
插件配置
在"Manage Jenkins" - "Manage Nodes and Clouds"打开Kubernetes的配置
Manage Nodes and Clouds
选择"Configure Clouds"
Configure Clouds
选择"Add a new cloud",添加一个"Kubernetes"配置
Add a new cloud
- 名称:自己定、后面流水线pipeline中会用的到
- Kubernetes 地址:就是~/.kube/config里面的server: https://192.168.81.173:6443 选项
- Kubernetes 服务证书 key
- Kubernetes 命名空间:命名空间,自己创建一个就可以
- 凭据
- Jenkins 地址:Jenkins 地址,就是当前Jenkins的访问地址
OK,这些都是必要参数,其它参数可选,根据自己的需求来配置
服务证书 key 和 凭据
下面重点说Kubernetes 服务证书 key 和 凭据
~/.kube/config文件中有三个值certificate-authority-data
client-certificate-data
client-key-data把这三个值搞出来,解密echo的值 | base64 -d > ca.crtecho的值 base64 -d | > client.crtecho的值 base64 -d | > client.key好,我生成了三个文件,其中ca.crt就是Kubernetes 服务证书 keyca.crt
client.crt
client.key
那么凭据怎么搞呢,请看下面操作,还用到刚生产的文件根据这三个文件生成一个PKCS12格式的客户端证书文件
opensslpkcs12-export-outcert.pfx-inkeyclient.key-inclient.crt-certfileca.crtEnterExportPassword:Verifying-EnterExportPassword:
记好自己设置的密码,下面要用到
再看凭据文件cert.pfx生成了
好了,我们现在在Jenkins里面添加凭据"Manage Jenkins"-"Manage Credentials"
Manage Credentials
Add Credentials
配置方法如下:Certificate,Global (Jenkins, nodes, items, all child items, etc),上传证书cert.pfx,设置密码,保存完成
配置完成后的效果
Global credentials
在Kubernetes Plugin配置里面"Kubernetes 服务证书 key"配置ca.crt的文件内容
凭据配置如下:
Kubernetes Plugin 凭据
点"连接测试"就可以看到k8s的版本,说明配置成功了。