0


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

大纲

将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 any
    stages {
        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: 2
  selector:
    matchLabels:
      app: your-app
  template:
    metadata:
      labels:
        app: your-app
    spec:
      containers:
      - name: your-app
        image: your-docker-repo/your-app:${BUILD_ID}
        ports:
        - containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
  name: your-app-service
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 3000
  selector:
    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

标签: java jenkins docker

本文转载自: https://blog.csdn.net/qq_61414097/article/details/141611270
版权归原作者 3分云计算 所有, 如有侵权,请联系我们删除。

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

还没有评论