欢迎光临
我们一直在努力

jenkins打包制作Python镜像,并推送至docker仓库,部署到k8s

一、背景

随着AI大模型的应用越来越广泛,编程语言Python也更显得更加实用。 许多对接AI的库都是先在python中应用,才逐步推广至其他编程语言。

接下来,我们将介绍python编程的CI/CD流程及其实现。

包括以下几个部分:

  • jenkins pod template配置
  • jenkins jenkinsfile文件
  • jenkins job配置
  • docker私有仓库
  • k8s的deployment和service(略)

限于篇幅,将按CI/CD分为两部分,本文阐述CI部分,有了docker镜像,想要部署到k8s就容易了。(换句话说,k8s部署本身是不区分语言,java还是python,或者go等等)

二、pod template

在这里插入图片描述

1、新增pod template

在这里插入图片描述 在这里插入图片描述 输入Pod模板的名称和命名空间。

2、新增容器jnlp

jenkins集群是采用k8s动态扩展,每运行一个job,就是创建一个k8s pod节点,所以job之间互不干扰。

在这里插入图片描述 jnlp镜像是我自己私库的地址,你可以使用外网的,更倾向于使用私库的。

3、新增容器docker

制作docker镜像,推送至仓库

在这里插入图片描述

4、配置pod环境变量

在这里插入图片描述

5、添加卷

在这里插入图片描述 docker镜像必须要添加Host Path Volume,主机路径和挂载路径均为/var/run/docker.sock 在这里插入图片描述

6、拉取镜像的Secret

在这里插入图片描述

7、节点选择器

保证pod是在worker角色的节点上创建。node-role.kubernetes.io/worker=worker

在这里插入图片描述

三、jenkinsfile

docker构建并推送至私库,封装在类docker.groovy里

  • 版本号默认写在项目的根目录的.version文件里
  • 项目的根目录还需要编写自己的Dockerfile文件,用于构建docker镜像

因为编译打包的过程都在Dockerfile中,所以整个jenkinsfile的流程就三步:

  • 第一步,拉取git代码
  • 第二步,读取程序的版本号
  • 第三步,构建docker镜像,并推送

对项目的要求,见下图:

在这里插入图片描述

#!groovy

@Library(\’jenkinslib\’) _

// gitlab的ssh密钥,修改为你自己的
String gitlabCredentialsId = \”xxx\”

def tools = new com.xxx.devops.tools()
def docker = new com.xxx.devops.docker()

// 服务名称
String serviceName = \”${env.servi

赞(0)
未经允许不得转载:171主机测评 » jenkins打包制作Python镜像,并推送至docker仓库,部署到k8s
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址