Jenkins连接非自身所在的由二进制、Kubeadm、RKE等工具创建的Kubernetes 集群

适用于Jenkins连接二进制、kubeadm、rke等工具创建的K8S集群

1、点击系统管理->系统设置-添加一个云,在下拉菜单中选择kubernets并添加,如下图所示:

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_运维


Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_容器_02

2.、写云kubernetes配置内容

注:Name值任意添加;

Kubernetes URL值添加目标K8S apiserver连接地址和端口;

jenkins URL值添加jenkins UI访问地址和端口;

如下图所示:

(大部分内容须在需要连接的集群的:~/.kube/config中查看)

[rancher@rmaster01 ~]$ vim ~/.kube/config

(因为rke必须使用非root帐户建立的K8S集群,所以这里是rancher账户操作,其它工具建立的K8S集群,可直接在root账户下操作)

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_devops_03


1)名称:kubernetes:wh-rke-k8s

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_jenkins_04


2)Kubernetes 地址:https://192.168.31.73:6443(目标K8S apiserver连接地址)

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_容器_05


Jenkins 地址:http://192.168.31.62:30011

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_devops_06

3、获取验证文件

1)获取~/.kube/config中certificate-authority-data的内容并转化成base64 encoded文件,生成:ca.crt

命令:echo xxxxxxxxx | base64 -d >ca.crt

echo LS0tL**********tLS0K | base64 -d >ca.crt

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_jenkins_07

2)获取~/.kube/config中client-certificate-data的内容并转化成base64 encoded文件,生成:client.crt

命令:echo xxxxxxxxx | base64 -d >client.crt

echo LS0tL**********0tLQo= | base64 -d >client.crt

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_devops_08

3)获取~/.kube/config中client-key-data的内容并转化成base64 encoded文件,生成:client.key

命令:echo xxxxxxxxx | base64 -d >client.key

echo LS0tL**********S0tCg== | base64 -d >client.key

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_jenkins_09


Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_容器_10

4)生产Client P12认证文件cert.pfx,并下载至本地

[rancher@rmaster01 crt]$ sudo openssl pkcs12 -export -out /home/rancher/crt/cert.pfx -inkey /home/rancher/crt/client.key -in /home/rancher/crt/client.crt -certfile /home/rancher/crt/ca.crt

注:自定义一个password并牢记:123456

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_centos_11


并下载cert.pfx至本地:

[rancher@rmaster01 crt]$ sz /home/rancher/crt/cert.pfx

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_centos_12


5)在Jenkins云kubernetes中添加凭证,如下图所示:

添加凭证-》首先密码填写123456-》类型-》Certificate-》Upload PKCS#12 certificate-》上传证书-》选择文件-》cert-》打开-》上传-》添加-》选择凭证

注:Upload certificate上次刚生成并下载至本地的cert.pfx文件,Password值添加生成cert.pfx文件时输入的密钥

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_容器_13


Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_jenkins_14


Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_devops_15


Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_devops_16


ID:wh-rke-Certificate

描述:wh-rke集群Certificate

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_jenkins_17


Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_jenkins_18


4、配置kubernetes云

1)名称:kubernetes:wh-rke-k8s

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_jenkins_19


2)Kubernetes 地址:https://192.168.31.73:6443

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_jenkins_20


Jenkins 地址:http://192.168.31.62:300113)Kubernetes 服务证书 key:即复制ca.cert内容

[rancher@rmaster01 crt]$ cat ca.crt

-----BEGIN CERTIFICATE-----

MIICw**********SKYug=

-----END CERTIFICATE-----

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_容器_21


Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_容器_22


4)Kubernetes 命名空间:

rke创建的K8S集群可以不填或者随意填,并不影响Jenkins连接集群
其它工具创建的K8S集群,需填入 ~/.kube/config文件中:cluster所对应的名称

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_jenkins_23


5)凭据:

选择之前所创建的Certificate凭据:

ID:wh-rke-Certificate

描述:wh-rke集群Certificate

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_devops_24


4、连接测试提示:Connection test successful,即表示连接成功。

Jenkins in Kubernetes 在Kubernetes上动态运行Jenkins build agent jenkins kubernetes 配置集群_运维_25