当前位置: 首页 > news >正文

wordpress 开启 gzip珠海网站优化

wordpress 开启 gzip,珠海网站优化,安卓编程软件app,硬件开发文档k8s jenkins 动态创建slave 简述使用jenkins动态slave的优势:配置jenkins动态slave配置 Pod Template配置容器模板挂载卷 测试 简述 持续构建与发布是我们日常工作中必不可少的一个步骤,目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程&am…

k8s jenkins 动态创建slave

  • 简述
    • 使用jenkins动态slave的优势:
    • 配置jenkins动态slave
      • 配置 Pod Template
      • 配置容器模板
      • 挂载卷
    • 测试

简述

持续构建与发布是我们日常工作中必不可少的一个步骤,目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程,然而传统的 Jenkins Slave 一主多从方式会存在一些痛点,比如:

  • 主 Master 发生单点故障时,整个流程都不可用了
  • 每个 Slave 的配置环境不一样,来完成不同语言的编译打包等操作,但是这些差异化的配置导致管理起来非常不方便,维护起来也是比较费劲
  • 资源分配不均衡,有的 Slave 要运行的 job 出现排队等待,而有的 Slave 处于空闲状态
  • 资源有浪费,每台 Slave 可能是物理机或者虚拟机,当 Slave 处于空闲状态时,也不会完全释放掉资源。

正因为上面的这些种种痛点,我们渴望一种更高效更可靠的方式来完成这个 CI/CD 流程,而 Docker 虚拟化容器技术能很好的解决这个痛点,又特别是在 Kubernetes 集群环境下面能够更好来解决上面的问题,下图是基于 Kubernetes 搭建 Jenkins 集群的简单示意图:

在这里插入图片描述

Jenkins Master 和 Jenkins Slave 以 Pod 形式运行在 Kubernetes 集群的 Node 上,Master 运行在其中一个节点,并且将其配置数据存储到一个 Volume 上去,Slave 运行在各个节点上,并且它不是一直处于运行状态,它会按照需求动态的创建并自动删除。

工作流程大致为:当 Jenkins Master 接受到 Build 请求时,会根据配置的 Label 动态创建一个运行在 Pod 中的 Jenkins Slave 并注册到 Master 上,当运行完 Job 后,这个 Slave 会被注销并且这个 Pod 也会自动删除,恢复到最初状态。

使用jenkins动态slave的优势:

  • 服务高可用,当 Jenkins Master 出现故障时,Kubernetes 会自动创建一个新的 Jenkins Master 容器,并且将 Volume 分配给新创建的容器,保证数据不丢失,从而达到集群服务高可用。
  • 动态伸缩,合理使用资源,每次运行 Job 时,会自动创建一个 Jenkins Slave,Job 完成后,Slave 自动注销并删除容器,资源自动释放,而且 Kubernetes 会根据每个资源的使用情况,动态分配 Slave 到空闲的节点上创建,降低出现因某节点资源利用率高,还排队等待在该节点的情况。
  • 扩展性好,当 Kubernetes 集群的资源严重不足而导致 Job 排队等待时,可以很容易的添加一个 Kubernetes Node 到集群中,从而实现扩展。

配置jenkins动态slave

填写 Kubernetes 和 Jenkins 配置信息。
在这里插入图片描述

kubernetes
https://192.168.40.120:6443
namespace:jenkins-k8s
Jenkins 地址: http://jenkins-service.jenkins-k8s.svc.cluster.local:8080

在这里插入图片描述
在这里插入图片描述

配置 Pod Template

其实就是配置 Jenkins Slave 运行的 Pod 模板,命名空间同样使用jenkins-k8s,Labels 这里也非常重要,对于后面执行 Job 的时候需要用到该值,这里使用的是 cnych/jenkins:jnlp 这个镜像,这个镜像是在官方的 jnlp 镜像基础上定制的,加入了 kubectl 等一些实用的工具。

名称:slave
命名空间:jenkins-k8s
标签列表:test1

在这里插入图片描述

配置容器模板

容器模板
名称:jnlp
容器镜像:cnych/jenkins:jnlp6

在这里插入图片描述

挂载卷

  • 需要在下面挂载两个主机目录,一个是/var/run/docker.sock,该文件是用于 Pod 中的容器能够共享宿主机的 Docker,使用 docker in docker 的方式,Docker 二进制文件已经打包到上面的镜像中了
  • 另外一个目录下/root/.kube目录,将这个目录挂载到容器的/root/.kube目录下面这是为了能够在 Pod 的容器中能够使用 kubectl 工具来访问 Kubernetes 集群,方便后面在 Slave Pod 部署 Kubernetes 应用。
/var/run/docker.sock
/var/run/docker.sock
/root/.kube
/root/.kube

在这里插入图片描述

另外还有几个参数需要注意,如下图中的Time in minutes to retain slave when idle,这个参数表示的意思是当处于空闲状态的时候保留 Slave Pod 多长时间,这个参数最好保存默认就行了,如果你设置过大的话,Job 任务执行完成后,对应的 Slave Pod 就不会立即被销毁删除。(如没有,请忽略))

在这里插入图片描述

Jenkins Slave Pod 中没有配置权限,所以需要配置上 ServiceAccount,在 Slave Pod 配置的地方点击下面的高级,添加上对应的 ServiceAccount 即可:
这个sa就是我们最开始安装jenkins时的sa

jenkins-k8s-sa

在这里插入图片描述

还有一个问题在配置完成后发现启动 Jenkins Slave Pod 的时候,出现 Slave Pod 连接不上,然后尝试100次连接之后销毁 Pod,然后会再创建一个 Slave Pod 继续尝试连接,无限循环,类似于下面的信息:(如没有,请忽略)

在这里插入图片描述

如果出现这种情况的话就需要将 Slave Pod 中的运行命令和参数两个值给清空掉

在这里插入图片描述

测试

Kubernetes 插件的配置工作完成了,接下来添加一个 Job 任务,看是否能够在 Slave Pod 中执行,任务执行完成后看 Pod 是否会被销毁。

echo "测试 Kubernetes 动态生成 jenkins slave"
echo "==============docker in docker==========="
docker infoecho "=============kubectl============="
kubectl get pods

现在直接在页面点击做成的 Build now 触发构建即可,然后观察 Kubernetes 集群中 Pod 的变化

http://www.yayakq.cn/news/286904/

相关文章:

  • 京东联盟网站怎么做成都房地产官网
  • 郑州医疗网站开发惠州地区网站建设公司
  • 大型行业门户网站开发建设dedecms网站地图路径修改生成后 网站地图前台路径不变
  • 网站开发计入会计 什么科目有没有免费代理项目
  • 可以做外链的视频网站刷赞网站推广ks
  • 昆山智能网站开发网站建设备案和免备案的区别
  • 网站导航类型如何在线制作印章
  • 贵阳哪些公司建网站福州模板建站代理
  • 推荐常州网站建设开发官网
  • 西安电商网站开发做建筑材料的网站有哪些
  • 网站做快捷方式网站建设方案策划书
  • 如何做网站推广 求指点国内永久免费crm系统网站推荐有哪些
  • 网站建设迁移方案北京环球影城客流量统计从哪里看
  • 免费制作软件app的网站什么网站做家具外贸好呢
  • 栾城网站制作网站调用数据库
  • 怎样设计自己的网站flash网站建设技术是什么
  • 做行业门户网站注意什么网络营销推广方案怎么做
  • 哪里的网站建设服务预约网站怎么建设
  • 江苏省建设招标网站首页dw做的网站怎么放到服务器上
  • 企业网站建设公司网络京东网上购物商城
  • 自建平台郑州seo教程
  • wordpress写php页面跳转番禺seo
  • 可以为自己的小说建设网站太原做网站多少钱
  • 山东网站建设方案制作济南网站开发企业
  • 上每网站建设不是做有网站都叫jwth
  • 做设计的搜素材上什么网站三亚市住房和城乡建设局网站
  • v9做的网站被攻击链接吧跳转平台期是什么意思
  • 邯郸手机网站建设织梦网站上传数据库
  • 非响应式网站优点网站开发技术文章
  • 网站开发脚本解析器商务网站建设平台