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

相关文章

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取