jenkins-1:kubernetes中部署的jenkins配置k8s集群连接

2022-04-28 16:23:43 浏览数 (1)

前置阅读:

kubesphere-8:kubesphere部署jenkins

目录:

(1).安装相关插件

(2).创建admin证书

1.安装证书工具

2.准备证书签名请求

3.创建证书和私钥

4.配置证书

(3).jenkins中配置kubernetes集群

(4).参考资料

(1).安装相关插件

然后重启jenkins,选中重启即可。

(2).创建admin证书

1.安装证书工具

安装cfssl 此工具生成证书非常方便, pem证书与crt证书,编码一致可直接使用

登录k8s master节点执行

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64

chmod x cfssl_linux-amd64

mv cfssl_linux-amd64 /usr/local/bin/cfssl

wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

chmod x cfssljson_linux-amd64

mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64

chmod x cfssl-certinfo_linux-amd64

mv cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo

2.准备证书签名请求

vim admin-csr.json

{

"CN": "admin",

"hosts": [],

"key": {

"algo": "rsa",

"size": 2048

},

"names": [

{

"C": "CN",

"ST": "HangZhou",

"L": "XS",

"O": "system:masters",

"OU": "System"

}

]

}

证书请求中的O 指定该证书的 Group 为 system:masters

而 RBAC 预定义的 ClusterRoleBinding 将 Group system:masters 与 ClusterRole cluster-admin 绑定,这就赋予了该证书具有所有集群权限 。

3.创建证书和私钥

cfssl gencert -ca=/etc/kubernetes/pki/ca.crt -ca-key=/etc/kubernetes/pki/ca.key --profile=kubernetes admin-csr.json | cfssljson -bare admin

最终生成以下3个文件:

admin.csr

admin-key.pem

admin.pem

4.配置证书

生成pkc格式证书

我们可以通过openssl来转换成pkc格式:

openssl pkcs12 -export -out ./jenkins-admin.pfx -inkey ./admin-key.pem -in ./admin.pem -passout pass:secret

将jenkins-admin.pfx 下载至桌面,备后续使用。

(3).jenkins中配置kubernetes集群

点击系统管理-> 系统配置,在系统配置页面拉到最下方:

进入配置集群页面,选择“Kubernetes”:

选择“Kubernetes Cloud Detail”:

配置如下部分:

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

kubernetes服务证书key:cat /etc/kubernetes/pki/ca.crt的内容

kubernetes命名空间:default

然后点击添加凭据,上传之前下载的jenkins-admin.pfx文件,并输入密码:secret。

最后点击添加,返回前边页面选中刚才添加的这个凭据,点击链接测试,可以发现,jenkins和kubernetes连通了:Connected to Kubernetes v1.20.2。

最后保存,完成jenkins配置kubernetes的连通。

刚才创建的凭据在这里可以看到:

系统管理 -> Manage Credentials -> 点击jenkins

可以看到之前创建的全局凭据:

点进去看到内容:

Jenkins 地址:

http://jenkins.jenkins.svc.cluster.local:8080

Jenkins 通道:jnlp-pod会通过这个svc和jenkins进行交互通信。

jenkins-agent.jenkins.svc.cluster.local:50000

修改jenkins-pod的标签:

(4).参考资料

1.Kubernetes plugin for Jenkins

https://plugins.jenkins.io/kubernetes/#documentation

2.基于 Jenkins 的 CI/CD (一)

https://www.qikqiak.com/k8s-book/docs/36.Jenkins Slave.html

3.Jenkins基于https的k8s配置

https://www.cnblogs.com/xiao987334176/p/11338827.html

4.jenkins基于k8s动态增减jnlp-slave节点进行构建

https://blog.csdn.net/you227/article/details/81079167

5.Jenkins 和 Kubernetes -云上的神秘代理

https://www.jenkins.io/zh/blog/2018/09/14/kubernetes-and-secret-agents/

5.K8S - Jenkins在K8S下的持续集成

https://www.jianshu.com/p/aaa16f1566d7

6.jenkins-kubernetes-plugin 介绍

https://www.jianshu.com/p/873b19350c4d

0 人点赞