kubeSphere DevOps部署vue项目

devops部署vue项目

  • 🌔环境说明
    • 🌏创建DevOps工程
    • 🌏填写流水线信息
    • 🌏创建流水线
  • 🌔部署应用所需脚本
    • Jenkinsfile
    • Dockerfile
  • 🌔脚本一些参数如何设置说明
    • 🌏deploy.yaml中的:imagePullSecrets:name属性
    • 🌏jenkinsfile中的kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID"
    • 🌏jenkinsfile中的git-code-auth属性

🌔环境说明


  • 已经安装kubesphere的devops组件
  • 安装教程可参考官方文档:https://v3-1.docs.kubesphere.io/zh/docs/pluggable-components/devops/

🌏创建DevOps工程


在这里插入图片描述
在这里插入图片描述

🌏填写流水线信息


在这里插入图片描述
在这里插入图片描述

🌏创建流水线


1 我们编写JenkinsFile
在这里插入图片描述

流水线的部署流程如下图

拉取代码
编译代码
打包镜像
推送镜像
部署应用

🌔部署应用所需脚本

Jenkinsfile

pipeline {agent {node {label 'nodejs'}}stages {stage('拉取代码') {agent nonesteps {git(url: '代码地址', credentialsId: 'git-code-auth', branch: 'pro', changelog: true, poll: false)}}stage('构建代码') {agent nonesteps {container('nodejs') {sh '''ls
npm install --force
npm run build:k8sprod'''}}}stage('构建镜像') {agent nonesteps {container('nodejs') {sh 'ls'sh 'docker build -t tingyuan-cloud-service-web-admin:latest .'}}}stage('推送镜像') {agent nonesteps {container('nodejs') {withCredentials([usernamePassword(credentialsId: 'aliyun-docker', passwordVariable: 'DOCKER_PASSWORD_VAR', usernameVariable: 'DOCKER_USER_VAR',)]) {sh 'echo "$DOCKER_PASSWORD_VAR" | docker login $REGISTRY -u "$DOCKER_USER_VAR" --password-stdin'sh 'docker tag admin:latest 镜像仓库地址:SNAPSHOT-$BUILD_NUMBER'sh 'docker push 镜像仓库地址:SNAPSHOT-$BUILD_NUMBER'}}}}stage('发布应用') {agent nonesteps {kubernetesDeploy(configs: 'deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")}}}environment {DOCKER_CREDENTIAL_ID = 'dockerhub-id'GITHUB_CREDENTIAL_ID = 'github-id'KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'REGISTRY = '镜像仓库地址'GITHUB_ACCOUNT = 'kubesphere'DOCKERHUB_NAMESPACE = '镜像仓库命名空间'}parameters {string(name: 'TAG_NAME', defaultValue: '', description: '')}
}

Dockerfile

FROM nginx
LABEL maintainer=hrd
COPY dist /usr/share/nginx/html/
EXPOSE 80

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: 我用的是前端项目,可以自行决定叫什么name: 我用的是前端项目,可以自行决定叫什么namespace: ty   #一定要写名称空间
spec:progressDeadlineSeconds: 600replicas: 1selector:matchLabels:app: 我用的是前端项目,可以自行决定叫什么strategy:rollingUpdate:maxSurge: 50%maxUnavailable: 50%type: RollingUpdatetemplate:metadata:labels:app: 我用的是前端项目,可以自行决定叫什么spec:imagePullSecrets:- name: aliyun-docker  #提前在项目下配置访问阿里云的账号密码containers:- image: 镜像仓库地址,我用阿里云镜像仓库imagePullPolicy: Alwaysname: appports:- name: http-80containerPort: 80protocol: TCPresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstrestartPolicy: AlwaysterminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:labels:app: 我用的是前端项目,可以自行决定叫什么name: 我用的是前端项目,可以自行决定叫什么namespace: ty
spec:ports:- name: httpport: 80protocol: TCPtargetPort: 80selector:app: 我用的是前端项目,可以自行决定叫什么sessionAffinity: Nonetype: ClusterIP

🌔脚本一些参数如何设置说明

🌏deploy.yaml中的:imagePullSecrets:name属性

imagePullSecrets:- name: aliyun-docker  #提前在项目下配置访问阿里云的账号密码 

在这里插入图片描述
在这里插入图片描述
选择刚才添加的,添加凭证设置变量
在这里插入图片描述

🌏jenkinsfile中的kubeconfigId: “$KUBECONFIG_CREDENTIAL_ID”

在这里插入图片描述
在这里插入图片描述

🌏jenkinsfile中的git-code-auth属性

在这里插入图片描述

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

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

相关文章

三、Qt Creator 使用

关于Qt的安装及环境配置,在我的上一篇《二、QT下载、安装及问题解决(windows系统)》已经讲过了。 本章节有一个重点,在新建 工程文件时,所在路径不要有中文,否则编译及运行程序不能正常运行。 在使用Qt Creator(以下…

【电源专题】案例:ADC有两个量程,为什么选小量程而不用大量程?

案例背景:早期其他产品设计使用大量程3V ADC,但是外部的分压配置最大电压分压后仅仅只到1.6V左右,无法用到3V ADC量程。其主要原因是供应商提供说越往大量程走误差值越大,但正常的设计应该是要达到接近满量程(如文章:【电子通识】案例:采用电阻分压式采样电压的设计注意…

[GN] nodejs16.13.0版本完美解决node-sass和sass-loader版本冲突问题

项目场景: npm install 运行vue项目时候 问题描述 项目场景:sass-loader ,node-sass出错 ! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: smoore-mes-web1.4.0 npm ERR! Found: webpack3.12.0 npm ER…

极简云源码已经开源

源码介绍 极简云已经开源 解绑卡密 查询卡密 总体来说还是很完善的 对接例子网盘里有 用户注册需要配置邮箱 上网页QQ邮箱标准版开启SMTP 然后生成授权码 后台发信邮箱里填就对了 实在不会配置邮箱的 可以下载网盘里的reg.php 把reg.php上传源码里的user目录 之后注册就不需要…

【操作系统】在阅读论文:OrcFS: Orchestrated file system for flash storage时需要补充的基础知

在阅读论文:OrcFS: Orchestrated file system for flash storage是需要补充的基础知识 这篇论文是为了解决软件层次之间的信息冗余问题 To minimize the disk traffic, the file system buffers the updates and then flushes them to the disk as a single unit, …

[脚本]油猴脚本简单入门

安装 科学上网后直接在谷歌商店安装 官方文档地址 文档地址 编写脚本 油猴自带的编译器非常不好用,不想麻烦配置编译器建议直接把内容拷贝到VSCode中进行编辑。 // UserScript // name New Userscript // namespace http://tampermonkey.net/ // v…

python爬虫02-requests库使用01

目录 1、requests库简介 2、requests库-安装 3、requests库-使用 3.1 导入模块 3.2 发送请求 3.3 requests库常用方法 3.4 访问控制参数kwargs 4、请求返回对象 Response 5、requests访问时的可能异常 1、requests库简介 requests是一个http的第三方请求库&#xff0…

Seata TC端协调全局事务

1、Seata server注册器 //来自RM分支事务注册 super.registerProcessor(MessageType.TYPE_BRANCH_REGISTER, onRequestProcessor, messageExecutor); //开启全局事务 super.registerProcessor(MessageType.TYPE_GLOBAL_BEGIN, onRequestProcessor, messageExecutor); //提交全…

QEMU源码全解析 —— PCI设备模拟(9)

接前一篇文章: 上一回介绍了虚拟机如何通过北桥的MMIO来读写PCI设备的配置空间。PCI设备的配置空间中有MMIO的地址,也就是BAR信息,里面存放有BAR的基址,虚拟机可以通过读写这些BAR来与设备通信。然而,QEMU在设备初始化…

crackmapexec工具详解

下载地址:https://github.com/Porchetta-Industries/CrackMapExec wiki:https://www.crackmapexec.wiki/ 1.安装(MAC) 1.1.python3.9 pipx 安装(运行软件有警告,推荐 python3.11 pipx 安装) …

记录下载安装rabbitmq(Linux) 并整合springboot--详细版(全)

下载rabbitmq(Linux): erlang压缩包: https://share.weiyun.com/TGhfV8eZ rabbitMq-server压缩包: https://share.weiyun.com/ZXbUwWHD (因为RabbitMQ采用 Erlang 实现的工业级的消息队列(MQ)服务器&#…

五、带登录窗体的demo

做了一个简单的带登录窗体的demo,有用户名和密码不能为空的验证,原理是在main.cpp的主函数入口处: 1、将默认的MainWindow主窗体注释。 2、新建一个formlogin登录窗体,在主函数中先运行登录窗体。 3、在登录窗体中引用MainWind…

Redis学习指南(7)-Redis的字符串类型介绍

字符串类型特点 Redis的字符串类型是一种简单而灵活的数据结构,其特点如下: 任意数据类型: 字符串类型可以存储任意数据,包括文本、二进制数据等。直接访问和修改: 可以直接通过键名访问和修改整个字符串,而不需要像其他数据结构…

C++ 并发编程 | 管理线程

一、管理线程 1、启动线程 线程是通过构造std::thread对象来开始的&#xff0c;该对象指定了线程上要运行的任务&#xff0c;std::thread可以与任何可调用类型一起工作&#xff0c;例如&#xff1a; #include <iostream> #include <thread> using namespace std;v…

LeetCode第152题 - 乘积最大子数组

题目 解答 public class Solution {public int maxProduct(int[] nums) {if (nums null || nums.length 0) {return 0;}if (nums.length 1) {return nums[0];}int max nums[0];int min nums[0];int res nums[0];for (int i 1; i < nums.length; i) {int tmp max;m…

【算法题】51. N 皇后

题目 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方案。 …

ZZULIOJ 1126: 布尔矩阵的奇偶性

题目描述 一个布尔方阵具有奇偶均势特性&#xff0c;当且仅当 每行、每列总和为偶数&#xff0c;即包含偶数个1。如下面这个4*4的矩阵就具有奇偶均势特性&#xff1a; 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 编写程序&#xff0c;读入一个n阶方阵并检查它是否具有奇偶均势特性。如果…

杨中科 .NETCORE EFCORE 第一部分 基本使用

一 、什么是EF Core 什么是ORM 1、说明: 本课程需要你有数据库、SOL等基础知识。 2、ORM: ObjectRelational Mapping。让开发者用对象操作的形式操作关系数据库 比如插入: User user new User(Name"admin"Password"123”; orm.Save(user);比如查询: Book b…

mac上部署单体hbase

1. 简介 HBase 是一个开源的、分布式的、版本化的典型非关系型数据库。它是 Google BigTable 的开源实现&#xff0c;并且是 Apache 基金会的 Hadoop 项目的一部分1。HBase 在 Hadoop Distributed File System (HDFS) 上运行&#xff0c;作为一个列式存储非关系数据库管理系统…

yolov8在进行目标追踪时,model.track()中persist参数的含义

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…