diff --git a/CloudNative/Kubernetes/Docs/cicd/k8s-containerd中部署jenkins方案 .md b/CloudNative/Kubernetes/Docs/cicd/k8s-containerd中部署jenkins方案 .md new file mode 100644 index 0000000..7122038 --- /dev/null +++ b/CloudNative/Kubernetes/Docs/cicd/k8s-containerd中部署jenkins方案 .md @@ -0,0 +1,87 @@ +## k8s中部署jenkins方案 + 小标题:容器运行时为containerd的k8s中部署jenkins或容器运行时由docker变更为containerd的方案说明 + +### 一、环境介绍 + 1、k8s版本:v1.23.0 + 2、k8s集群容器运行时:docker + 3、jenkins版本:2.414.1 +### 二、背景及方案说明 +背景: +- 因安全需要,k8s集群需要升级到1.24或以上版本,但1.24及以上版本的k8s已删除对docker的直接支持,因此需要变更容器运行时为containerd。而原有jenkins是基于docker做的项目部署方案。因此需要修改基础镜像,以支持containerd。 + +方案: +- 1、jenkins server只做调度,具体编译工作由agent节点完成,因此jenkins server不需要处理,切换runtime时会自动切换。 +- 2、agent镜像基于官方的inbound-agent镜像,并添加了kubectl,docker工具,用于构建推送镜像,并修改k8s中的负载的image,因此需要变更为添加kubectl,nerdctl,buildctl工具的镜像。 +- 3、因为项目使用的代码语言不同,因此需要基于基础agent的镜像,添加不同语言的编译环境。如:java,python,golang,nodejs等。 + +### 三、工具 +- 1. nerdctl: 与docker cli兼容的containerd工具。[访问链接](https://github.com/containerd/nerdctl) +- 2. buildctl: buildkitd客户端工具,用于构建镜像。若不需要构建镜像,可以不装。[访问链接](https://github.com/moby/buildkit) +- 3. kubectl: k8s客户端工具,用于管理k8s集群。[访问链接](https://kubernetes.io/docs/tasks/tools/) +- 4. 参考文档: [k8s中部署buildkit](https://github.com/moby/buildkit/tree/master/examples/kubernetes) + +### 四、jenkins agent镜像制作 +1、agent基础镜像制作 +```bash +# ibound-agent镜像已推送到镜像仓库,kubectl,nerdctl,buildctl工具已下载到本地 +cat > Dockerfile < Dockerfile < Dockerfile <