vlambda博客
学习文章列表

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

前置阅读:



目录:

(1).安装相关插件

(2).创建admin证书

1.安装证书工具

2.准备证书签名请求

3.创建证书和私钥

4.配置证书

(3).jenkins中配置kubernetes集群

(4).参考资料


(1).安装相关插件



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

然后重启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"

    }

  ]

}

证书请求中的指定该证书的 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


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


最终生成以下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集群


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

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


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

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

选择“Kubernetes Cloud Detail”:

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

配置如下部分:

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

kubernetes命名空间:default

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


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

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


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

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


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


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

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

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


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

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

点进去看到内容:


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%20Slave.html

3.Jenkins基于httpsk8s配置

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 - JenkinsK8S下的持续集成

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

6.jenkins-kubernetes-plugin 介绍

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