Jenkins+Docker | K8S虚拟化实现网站自动部署 简单流程 未完待续,,

本文主要是介绍Jenkins+Docker | K8S虚拟化实现网站自动部署 简单流程 未完待续,,,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

大纲

1.Jenkins 的设置与 Docker、Kubernetes 集成指南

1. 创建新的Pipeline项目或Freestyle项目

1.1 创建Pipeline项目

1.2 创建Freestyle项目

2. 配置源代码管理

2.1 配置Git作为源代码管理工具

3. 配置构建触发器

4. 配置构建步骤

4.1 对于Pipeline项目

4.2 对于Freestyle项目

5. 添加Docker构建步骤

5.1 Pipeline项目

5.2 Freestyle项目

6. 保存配置

7. 触发构建

总结

2. Docker 设置

2.1 准备 Dockerfile

2.2 确保Docker已安装

2.3 使用 Docker 插件

3. Kubernetes 设置

3.1 准备 Kubernetes 集群

3.2 创建 Kubernetes Deployment

3.3 使用 kubectl 部署应用

4. 自动化部署流程

总结:


大纲

将Jenkins与Docker和Kubernetes(K8S)结合使用可以实现网站的自动化部署和持续集成/持续部署(CI/CD)。以下是一个简单的流程,

注意:这是我以前用的开发文档,更详细的文档,因某些原因我和团队其他人共享,,所以只保留了这么多。。

后面的话,有时间,我会手动配置出一个属于我个人的,零起点,跟着做完就能用的详细教程。

Jenkins设置

在Jenkins中创建一个新的Pipeline项目或Freestyle项目。

在项目配置中设置源代码管理(如Git)和构建触发器。

配置构建步骤,例如编译代码、运行测试等。

添加Docker构建步骤,构建Docker镜像并推送到Docker仓库。

Docker设置:

在Docker中准备一个基础镜像,包含运行网站所需的环境。

在Jenkins中使用Docker插件构建镜像,并将其推送到Docker仓库。

Kubernetes设置:

在Kubernetes集群中部署一个Pod来运行网站容器。

创建Kubernetes Deployment或Service来管理网站的部署和访问。

自动化部署流程:

当代码提交到源代码仓库时,Jenkins会触发构建任务。

Jenkins将拉取代码、构建应用程序、构建Docker镜像并推送到Docker仓库。

Kubernetes会根据更新的镜像自动更新部署,确保网站始终运行最新版本。

通过这样的流程,您可以实现网站的自动化部署和持续集成/持续部署,提高部署效率并减少人为错误。请注意,具体的配置和步骤可能会根据您的实际需求和环境而有所不同,需要根据实际情况进行调整和优化。

1.Jenkins 的设置与 Docker、Kubernetes 集成指南

在现代软件开发中,Jenkins的灵活性与强大功能,成为持续集成和持续部署(CI/CD)不可或缺的工具。而在构建这一系统的过程中,Docker与Kubernetes的使用,无疑为自动化部署提供了强有力的支持。那么,如何在Jenkins中配置一个新的Pipeline项目或Freestyle项目呢?全方位一步步解析如下。

1. 创建新的Pipeline项目或Freestyle项目
1.1 创建Pipeline项目
  1. 打开Jenkins Dashboard,清晰的界面上,点击左侧菜单中的 “New Item”
  2. 在弹出的框中,输入项目名称,确保无误。
  3. 选择 “Pipeline” 选项,犹豫片刻后,点击 “OK” 。
1.2 创建Freestyle项目
  1. 再次回到Jenkins Dashboard,重复点击 “New Item”
  2. 输入项目名称,这次选择 “Freestyle project” ,同样点击 “OK”
2. 配置源代码管理
2.1 配置Git作为源代码管理工具

在项目配置页面,找到 “Source Code Management” 部分:

  • 选择 “Git” 作为源。
  • “Repository URL” 中,输入您的Git仓库地址。若有认证需求,别忘了点击 “Add” 按钮,完善凭据设置。
  • 根据实际情况,填写分支的规范,例如:*/main 或 */master。
3. 配置构建触发器

在项目的配置页面下方,寻找 “Build Triggers” 部分,选择最适合的触发器:

  • Poll SCM:定时检查源代码变化。
  • Build periodically:周期性触发构建任务。
  • GitHub hook trigger for GITScm polling:通过GitHub Webhook触发构建。
4. 配置构建步骤
4.1 对于Pipeline项目
  • 在配置页面上,找到 “Pipeline” 部分:
  • “Definition” 中选择 “Pipeline script”,并在 “Script” 框中输入类似于以下的Pipeline脚本:
pipeline {agent anystages {stage('Checkout') {steps {git 'https://github.com/your-repo.git'}}stage('Build') {steps {sh 'make build'}}stage('Test') {steps {sh 'make test'}}stage('Docker Build and Push') {steps {script {docker.withRegistry('https://index.docker.io/v1/', 'docker-credentials-id') {def app = docker.build("your-docker-repo/your-app:${env.BUILD_ID}")app.push()}}}}}
}
4.2 对于Freestyle项目
  1. 在配置页面的 “Build” 部分,点击 “Add build step”,选择合适的构建步骤,比如 “Execute shell” 或 “Invoke Ant” 。
  2. 此处,您可以根据需求选择执行Shell命令,调用Ant或Gradle脚本。
5. 添加Docker构建步骤
5.1 Pipeline项目

在你的Pipeline脚本中,按照上述示例,明确规定Docker构建与推送的步骤。

5.2 Freestyle项目
  • 同样在 “Build” 部分,点击 “Add build step”,选择 “Execute shell”
  • 输入用于构建Docker镜像与推送至Docker仓库的Shell命令,例如:
docker build -t your-docker-repo/your-app:${BUILD_ID} .
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push your-docker-repo/your-app:${BUILD_ID}

确保在Jenkins的凭据管理中,已根据Docker Hub的信息创建相应的凭据。

6. 保存配置

在完成所有重要配置之后,别忘了点击页面底部的 “Save” 按钮,将设置牢牢保存

7. 触发构建
  • 回到项目主页,点击 “Build Now” 按钮手动触发构建,或者,静待配置好的触发器自动启动构建。

总结

以上步骤展示了如何在Jenkins中从零开始创建一个新的Pipeline项目或Freestyle项目,包含源代码管理、构建触发器和构建步骤的配置。成功设置后,接下来的重点将是Docker和Kubernetes的配置,以便实现更高效的自动化部署。

Dockers安装如下,请看我的文章:

2. Docker 设置

要使用Docker构建并推送您的镜像,按照以下细节:

2.1 准备 Dockerfile

在项目根目录创建一个 Dockerfile,定义构建您的应用程序的Docker镜像,以下是Node.js应用的示例:

# 使用官方Node.js镜像作为基础镜像
FROM node:14# 设置工作目录
WORKDIR /usr/src/app# 复制依赖配置文件
COPY package*.json ./# 安装依赖请求
RUN npm install# 复制源代码
COPY . .# 暴露应用程序端口
EXPOSE 3000# 启动命令
CMD ["npm", "start"]
2.2 确保Docker已安装

确认Docker已在Jenkins服务器上运行并且可用,执行以下命令查看Docker版本:

docker --version
2.3 使用 Docker 插件

对于Pipeline项目,Docker构建和推送步骤已预设;而Freestyle项目需手动添加。以下是Freestyle项目的Docker构建步骤示例:

  1. 在Freestyle项目的配置页面,找到 “Build” ,再点击 “Add build step” 。
  2. 选择 “Execute shell”,输入构建与推送的命令:
docker build -t your-docker-repo/your-app:${BUILD_ID} .
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push your-docker-repo/your-app:${BUILD_ID}

确保您在Jenkins凭据中添加了Docker Hub的相关凭据,并将环境变量设定为 DOCKER_USERNAME 和 DOCKER_PASSWORD。

3. Kubernetes 设置

配置Kubernetes以支持自动部署应用程序容器需要以下步骤:

3.1 准备 Kubernetes 集群

确保您的Kubernetes集群已正常运行,您可以选择本地的Minikube,或在云提供商的服务(如GKE、EKS、AKS)中创建集群。

3.2 创建 Kubernetes Deployment

您需要编写一个Kubernetes配置文件(如 deployment.yaml),定义Deployment与Service。以下是示例:.yaml 格式

apiVersion: apps/v1
kind: Deployment
metadata:name: your-app
spec:replicas: 2selector:matchLabels:app: your-apptemplate:metadata:labels:app: your-appspec:containers:- name: your-appimage: your-docker-repo/your-app:${BUILD_ID}ports:- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:name: your-app-service
spec:type: LoadBalancerports:- port: 80targetPort: 3000selector:app: your-app
3.3 使用 kubectl 部署应用

在Pipeline的阶段中加入kubectl命令,以更新当前Docker镜像:

stage('Deploy to Kubernetes') {steps {script {def image = "your-docker-repo/your-app:${env.BUILD_ID}"sh "kubectl set image deployment/your-app your-app=${image} --record"sh "kubectl rollout status deployment/your-app"}}
}

确保在Jenkins中已配置好kubectl,以便与Kubernetes集群顺畅通信。这通常通过设置Kubeconfig文件实现。

4. 自动化部署流程

  1. 代码提交:当开发人员向Git提交代码,Jenkins便会依设置的触发器启动构建流程。
  2. 构建与推送镜像:Jenkins从版本库中获取代码,编译应用,生成Docker镜像,并将其推送至Docker仓库。
  3. 更新Kubernetes:借助kubectl的声明式更新操作,确保Kubernetes中运行的容器镜像始终为最新版本。

总结:

通过以上的步骤,您便能构建出一套完整的自动化部署体系,充分融合Jenkins、Docker和Kubernetes,实现高效的CI/CD流程。在实施中,如遇具体需求或问题,请细致调试和优化配置,确保最佳实践的实施。

 写文不易,给我点点关注  和点点赞   点点收藏吧

3分云计算-CSDN博客3分云计算擅长云计算及运维,大数据运维及大数据基础,MySQL,等方面的知识,3分云计算关注kubernetes,求职招聘,数据仓库,量子计算,ssh,redis,spring,java,apache,elasticsearch,devops,flume,mysql,vim,开源,空间计算,python,zabbix,github,oracle,nginx,ubuntu,elk,华为云,开源软件,自动化,缓存,数据结构,交友,gitee,flink,运维,pycharm,kafka,服务器,gitlab,搜索引擎,运维开发,大数据,centos,hive,容器,idea,金融,docker,sql,ansible,git,spark,linux,debian,jenkins,json,hadoop,sublime text,数据库,云计算,系统架构,程序人生,负载均衡,vscode,hdfs,bash,aws,etcd,低代码领域.https://blog.csdn.net/qq_61414097

这篇关于Jenkins+Docker | K8S虚拟化实现网站自动部署 简单流程 未完待续,,的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114391

相关文章

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

JAVA利用顺序表实现“杨辉三角”的思路及代码示例

《JAVA利用顺序表实现“杨辉三角”的思路及代码示例》杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,:本文主要介绍JAVA利用顺序表实现杨辉三角的思... 目录一:“杨辉三角”题目链接二:题解代码:三:题解思路:总结一:“杨辉三角”题目链接题目链接:点击这里

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.