首页 > 服务配置 > jinja和jenkins结合做为kubernetes的服务发布平台
2018
03-10

jinja和jenkins结合做为kubernetes的服务发布平台

公司使用java开发语言,使用kubernetes集群运行这些java服务,为了试发布便捷,使用jenkins构建,利用jinja对模板渲染,利用Jenkins做一套kubernetes的发布平台。流程如下:

gitlab提交代码–jenkins构建(maven(jar包),Dockerfile(docker包))–镜像推送到harbor仓库–生成Deployment模板–kubectl create pod.yaml

jinja渲染模板配置,为生成deployment 配置文件

pip安装jinja2

kubernetes pod的jinja模板

简单说明一下上面deployment配置:

cpu不做限制是因为限制了cpu核数,服务启动会特别慢

各个变量都是通过jenkins传过来的,比如branch、name、port、memory

kubernetes内部各个服务中调用是通过{{name}}-com, 要全部小写,并且不能有特殊字符和 .,这是因为DNS的限制,因为实际DNS内部地址是

程序之间相互调用是{{ name }}-com:{{ port }}

python发布脚本

jenkins配置

安装Jenkins和插件

下载最新 Java SE Development Kit 8u161:

Jenkins启动后浏览器打开默认的8080端口,安装Build With Parameters Plugin插件,此插件可以设置自定义变量

Jenkins新建项目配置

jinja和jenkins结合做为kubernetes的服务发布平台 - 第1张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

设置如上变量,如果没有则为空,下面是python使用jinja渲染模板,kubernetes创建服务

 

下面是Jenkins添加Blue Ocean插件执行结果

jinja和jenkins结合做为kubernetes的服务发布平台 - 第2张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

上面配置即可完成Jenkins调用gitlab,通过maven打包后,发送给自建的docker仓库,并传送变量生成kubernetes deployment配置模板,从而创建服务的需要

最后编辑:
作者:bbotte

留下一个回复

你的email不会被公开。