Jenkins-配置K8S负载

Jenkins-配置K8S负载,第1张

随着Jenkins被大量使用,单台打包机完全无法应对打包慢,线程不够等一系列问题

这时候可以添加固定Node的方式去解决问题,但是慢慢你会发现固定Node也无法解决问题,如果并不是超级多的打包任务,或者根本没得使用K8S的这个条件请移步 Jenkins配置从节点 来解决单台打包机性能不够的问题

其中最主要的矛盾如下

1.不同的打包环境指定不同的打包机

2.集中在一个时间段打包,特别是在发版本的前夕,所有项目组都在打包,显得特别无力

3.大部分时间闲置的打包负载显得有点浪费

这时候就急需一个可以动态缩放的Node来解决这个问题。

将K8S作为Jenkins负载就是为了解决动态缩放,不同环境需要指定不同打包机的问题(Windows和Mac还是需要单独处理)。

官网文档 在 Kubernetes 上扩展 Jenkins

首先在Jenkins中搜索 Kubernetes 这个插件,安装

配置K8S荷载

其中这个Kubernetes地址就是K8S-Api-Server的地址,可以在kube.config中找到

然后点击连接测试,出现如下就对了,但是讲道理会出现一个

找不到 /var/lib/jenkins/.kube/config.json 的错误,出现这个错误就要将kubeConfig放到这个位置

(Tips:如果你是Rancher搭建的K8S集群就在这个位置找API-Server的地址和kubeConfig)

这里是比较重要的,Pod模板是为了方便打包的, jnlp 这个镜像是必须要的,没有这个镜像就无法连接上Jenkins,这个镜像是可以拓展的。

不建议再这个镜像中安装Docker,安装Dotnet,安装Java,安装NodeJs,因为这些都可以用多容器和Jenkins插件来解决

可以在这个镜像中安装例如解压缩这样的小工具。

重写的配置如下

这种K8S中的Node有一个很大的缺陷就是缓存的问题,如Nuget缓存,这时候就需要挂载一个盘去进行缓存了,有条件的建议挂载一个PVC,但是像我这样没条件的HostPath也香。

PS:这里用Dotnet打包为例子

Dotnet打包需要用到的镜像是dotnetsdk,所以需要在jnlp的基础上再加上一个其他镜像,使用的时候就

利用 container 这个指令去指定容器。后面的名称就是容器模板中定义的名称,需要唯一指定。

Dotnet打包要想快就要将Nuget的包全部缓存下来,所以需要将~/.nuget 这个文件夹里面的东西用PV缓存起来(鄙人没这个条件,用的HostPath)

使用 node 这个命令去指定节点

然后再NodeManager中查看就会看到出现了一个新的节点了,这个节点就是K8S中调度的,在打包完成后就会回收掉这个Pod。

到这里为Jenkins配置K8S的负载就全部完毕了。

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

一、安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

3、卸载旧版本(如果安装过旧版本的话)

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

5、设置yum源

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

7、安装docker

8、启动并加入开机启动

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速

相关软件安装

kubectl

docker (for Mac)

minikube

virtualbox

校验软件版本信息

启动 kubernetes 集群

一会后,会有如下输出

恭喜!Minikube 为你启动了一个虚拟机,并在该虚拟机中运行了 Kubernetes 集群。

查看集群节点信息

常见问题及解决办法

kubectl 安装失败

解决办法

https://www.runoob.com/docker/docker-install-mysql.html

https://blog.csdn.net/xsj34567/article/details/80940238


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11913444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存