Kubernetes自动化配置部署

在新建工程中,使用k8s的devops服务,自动化部署项目

1、在搭建好k8s的集群中,确认已开启devops服务;

2、新建Maven项目之后,创建dockerfile、deploy和Jenkins文件

例如:

Dockerfile

FROM bairong.k8s.master1/br-sjzl/tomcat:9.0-jdk8-temurin-focalENV TZ=Asia/ShanghaiRUN mkdir /usr/local/tomcat/webapps/userfilesCOPY bairong-web/target/*.war /usr/local/tomcat/webapps/

Deploy.yaml

apiVersion: apps/v1kind: Deploymentmetadata:name: czdataease-javanamespace: br-demo-projectannotations:deployment.kubernetes.io/revision: '1'kubesphere.io/creator: br-project-regularspec:replicas: 1selector:matchLabels:app: czdataease-javatemplate:metadata:labels:app: czdataease-javaspec:imagePullSecrets:    #  如过使用harbor仓库得镜像,需要设置从secret处拉取镜像  查看 kubectl get secret- name: harbor-pullcontainers:- name: czdataease-javaimage:  bairong.k8s.master1/br-sjzl/czdataease-java:latestimagePullPolicy: Alwaysports:- containerPort: 8080name: nginxvolumeMounts:- name: czdataease-nfs-volumemountPath: /usr/local/tomcat/webapps/userfiles# command: ["sh", "-c"]# args:#   - |#     cp -R /usr/local/tomcat/webapps/1 /usr/local/tomcat/webapps/userfiles/volumes:- name: czdataease-nfs-volumepersistentVolumeClaim:claimName: br-czdataease-nfs-pvc           ---apiVersion: v1kind: Servicemetadata:name: czdataease-java-servicenamespace: br-demo-projectannotations:deployment.kubernetes.io/revision: '1'kubesphere.io/creator: br-project-regularspec:selector:app: czdataease-javaports:- protocol: TCPname: nginxport: 8080targetPort: 8080nodePort: 30261type: NodePort

Jenkins

pipeline {agent {node {label 'nodejs'}}stages {stage('拉取') {agent nonesteps {container('nodejs') {git(url: 'http://192.168.19.199:12589/org_dataapplication/czDataease_vue.git', credentialsId: 'zyq', branch: 'master', changelog: true, poll: false)}}}stage('编译') {agent nonesteps {container('nodejs') {sh 'npm install --registry=http://192.168.19.197:31081/repository/npm-group/'sh 'npm run build'}}}stage('打包') {agent nonesteps {container('nodejs') {sh 'docker build -t czdataease-vue:latest -f docker/Dockerfile  .'}}}stage('推送') {agent nonesteps {container('nodejs') {withCredentials([usernamePassword(credentialsId : 'br-dockerhub-id' ,usernameVariable : 'DOCKER_USER_VAR' ,passwordVariable : 'DOCKER_PWD_VAR' ,)]) {sh 'echo $DOCKER_PWD_VAR | docker login $BR_REGISTRY --username=$DOCKER_USER_VAR --password-stdin'sh 'docker tag czdataease-vue:latest $BR_REGISTRY/$BR_DOCKERHUB_NAMESPACE/czdataease-vue:latest'sh 'docker push $BR_REGISTRY/$BR_DOCKERHUB_NAMESPACE/czdataease-vue:latest'}}}}stage('镜像部署') {agent nonesteps {container('nodejs') {withCredentials([kubeconfigFile(credentialsId: env.KUBECONFIG_CREDENTIAL_ID, variable: 'KUBECONFIG')]) {sh '''envsubst < deploy/deploy.yaml | kubectl apply -f -kubectl rollout restart deploy/br-czdataease-vue -n br-demo-project'''}}}}}environment {DOCKER_CREDENTIAL_ID = 'dockerhub-id'GITHUB_CREDENTIAL_ID = 'github-id'KUBECONFIG_CREDENTIAL_ID = 'kubeconfig-demo'REGISTRY = 'docker.io'BR_REGISTRY = 'bairong.k8s.master1'DOCKERHUB_NAMESPACE = 'bwylove'BR_DOCKERHUB_NAMESPACE = 'br-sjzl'GITHUB_ACCOUNT = 'bwylove'APP_NAME = 'dataease-vue'}parameters {string(name: 'TAG_NAME', defaultValue: '', description: '')}}

3、编辑流水线

4、开git上的webhook服务

5、确认服务已经正常,提交代码进行测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/764403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【思维】第十四届蓝桥杯省赛C++ C组/研究生组 Python A组/C组《翻转》(C++)

【题目描述】 小蓝用黑白棋的 n 个棋子排成了一行&#xff0c;他在脑海里想象出了一个长度为 n 的 01 串 T&#xff0c;他发现如果把黑棋当做 1&#xff0c;白棋当做 0&#xff0c;这一行棋子也是一个长度为 n 的 01 串 S。 小蓝决定&#xff0c;如果在 S 中发现一个棋子和它…

突破编程_C++_面试(STL 编程 stack)

1 请简述 std::stack 在 C STL 中的基本功能和使用场景 std::stack在C STL&#xff08;标准模板库&#xff09;中是一个容器适配器&#xff0c;专门用于实现后进先出&#xff08;LIFO&#xff0c;Last-In-First-Out&#xff09;的数据结构。其基本功能和使用场景如下&#xff…

【WPF应用9】 基本控件-Grid的对其和属性详细说明及示例

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;Grid是一种强大的布局控件&#xff0c;它可以用来对齐和排列容器中的子元素。Grid控件允许您以行列的形式组织UI元素&#xff0c;并且可以指定行列的数量、大小和布局方式。在本文中&#xff0c;我…

C#,图论与图算法,有向图(Direct Graph)广度优先遍历(BFS,Breadth First Search)算法与源程序

1 图的广度优先遍历 图的广度优先遍历(或搜索)类似于树的广度优先遍历(参见本文的方法2)。这里唯一需要注意的是,与树不同,图可能包含循环,因此我们可能再次来到同一个节点。为了避免多次处理节点,我们使用布尔访问数组。为简单起见,假设所有顶点都可以从起始顶点到达…

ideaSSM 学员信息管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 学员信息管理系统是一套完善的信息管理系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff…

C语言基础知识复习(考研)

&#xff08;1&#xff09;C语言文件操作 1 什么是文件 文件有不同的类型&#xff0c;在程序设计中&#xff0c;主要用到两种文件&#xff1a; (1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行这种文件的内容是程序代码。 (2)数据文件。文件的内容不是…

软件测试相关内容第五弹 -- 自动化测试Selenium

写在前&#xff1a;hello这里是西西~ 这边博客主要学习关于自动化测试的相关内容&#xff0c;首先了解自动化测试的相关理论知识&#xff0c;其次学习web应用中基于UI的自动化测试框架 - selemium[需要重点掌握selenium工作原理]&#xff0c;实操selenium,最后学习Junit相关知识…

当我想用ChatGPT-Next-Web来套壳Azure OpenAI Service时

使用Cloudflare worker来代理Azure OpenAI API&#xff0c; 并将其转换为兼容OpenAI的API 一直没能搞定OpenAI的订阅&#xff0c; 就因为没有搞定国外的信用卡&#xff0c; 所以就一直使用GPT-3.5来处理日常的文字生成工作&#xff0c; 例如写文档&#xff0c; 生成一些简单的脚…

AI助力生产制造质检,基于轻量级YOLOv8n模型开发构建工业生产制造场景下的瓷砖瑕疵检测识别分析系统

瓷砖生产环节一般经过原材料混合研磨、脱水、压胚、喷墨印花、淋釉、烧制、抛光&#xff0c;最后进行质量检测和包装。得益于产业自动化的发展&#xff0c;目前生产环节已基本实现无人化。而质量检测环节仍大量依赖人工完成。一般来说&#xff0c;一条产线需要配数名质检工&…

论文阅读-MIPD:一种用于分布式深度神经网络训练的自适应梯度稀疏化框架

摘要—基于参数服务器架构的异步训练广泛应用于大规模数据集和深度神经网络模型的扩展训练。在大规模分布式深度学习系统中&#xff0c;通信一直被认为是主要瓶颈。最近的研究尝试通过梯度稀疏化和量化方法来减少通信流量。我们发现前期研究存在三个限制。首先&#xff0c;他们…

秋招企业面经

元戎启行 牛客 岁月如歌&#xff08;关注&#xff09; 算法&#xff1a;回文子串&#xff0c;二叉树寻找最小路径&#xff08;回溯比较简单&#xff09;。跳楼梯 八股&#xff1a; delete会把内存还给操作系统吗&#xff1f; 进程调用delete或者free释放资源后&#xff0c…

作为前端,如何利用机器学习

当涉及到前端开发与机器学习&#xff08;Machine Learning&#xff09;的结合时&#xff0c;我们进入了一个充满创新和前沿技术的领域。机器学习作为人工智能的一个重要分支&#xff0c;已经在各个领域展示了惊人的应用潜力&#xff0c;而将其融入前端开发则为我们带来了无限可…

YOLOv5-Y5周:yolo.py文件解读

本文为&#x1f517;365天深度学习训练营 中的学习记录博客 原作者&#xff1a;K同学啊|接辅导、项目定制 我的环境&#xff1a; 1.语言&#xff1a;python3.7 2.编译器&#xff1a;pycharm 3.深度学习框架Tensorflow/Pytorch 1.8.0cu111 一、代码解读 import argparse i…

python实现生成多种文件格式:excel、csv、pdf

python实现生成多种文件格式:excel、csv、pdf import data_util, time_util import pandas as pd import matplotlib.pyplot as plt from matplotlib.backends.backend_pdf import PdfPagesif __name__ __main__:data data_util.get_superset_data()df if (len(data) > …

【洛谷 P8715】[蓝桥杯 2020 省 AB2] 子串分值 题解(组合数学+乘法原理)

[蓝桥杯 2020 省 AB2] 子串分值 题目描述 对于一个字符串 S S S, 我们定义 S S S 的分值 f ( S ) f(S) f(S) 为 S S S 中恰好出现一次的字符个数。例如 f ( ′ ′ a b a ′ ′ ) 1 f\left({ }^{\prime \prime} \mathrm{aba}{ }^{\prime \prime}\right)1 f(′′aba′′)…

编写人脸检测程序

新建一个py文件&#xff0c;命名为facedetectionwithdlib.py。添加如下代码&#xff1a; 【代码 facedetectionwithdlib.py】 # -*- coding: utf-8 -*-使用dlib实现人脸检测 import face_recognition import cv2 import time# 超参数 detection_method hog # 参数值为hog/cn…

python之内存管理

前言 python中&#xff0c;万物皆对象。 因此&#xff0c;内存的管理&#xff0c;便是管理对象从创建到销毁的过程。有效地管理内存&#xff0c;既可以减少内存碎片&#xff0c;又可以避免内存泄漏等现象&#xff08;大概讲讲&#xff09;。 内存的分配 Python内部对于内存…

ChatGPT写作宝典:解锁论文创作新技能

ChatGPT无限次数:点击直达 ChatGPT写作宝典&#xff1a;解锁论文创作新技能 在当今信息爆炸的时代&#xff0c;写作已经成为人们必备的基本技能之一。无论是撰写论文、博客还是其他形式的文字内容&#xff0c;写作都扮演着重要的角色。在这样的背景下&#xff0c;ChatGPT为我们…

Vscode与Cmake搭配配置opencv使用

vscode与Cmake基本使用 下载插件 CtrlShiftp打开VSCode的指令面板&#xff0c;然后输入cmake:q&#xff0c;VSCode会根据输入自动提示&#xff0c;然后选择CMake: Quick Start选择编译器根据提示输入项目名称选择可执行文件编译项目 方式一&#xff1a;执行命令cd build cmake…

一键将自己网增加一个抖音小程序-源代码

把自己的网址链接&#xff0c;也就是你想要的一个页面转变为抖音小程序&#xff0c;让你轻松拥有一个自己的抖音小程序。 几分钟搞定。 跟着视频来操作就可以了&#xff0c;很简单。视频一定要完整看完啊&#xff0c;对于小白。 如果你的网址可能有不好过审核的页面&#xff0c…