当前位置: 首页 > news >正文

kubernetes集群部署springcloud项目【AL】【未写完】

kubernetes集群部署springcloud项目【AL】 (先手工做,非自动化)
在这里插入图片描述

#环境:
192.168.73.138 master 
192.168.73.139 node1 
192.168.73.140 node2 
192.168.73.137 harbor、mysql
git clone https://github.com/lizhenliang/simple-microservice.git 地址:https://github.com/lizhenliang/simple-microservice/   
代码分支说明:
dev1交付代码
dev2 编写Dockerfile构建镜像
dev3 K8S资源编排
dev4 微服务链路监控
master 最终上线

在这里插入图片描述
整体逻辑架构图

1、代码文件解释

在这里插入图片描述

1、服务编排
2、在K8S平台部署Erueka集群
3、导入数据库文件到MySQL
4、部署网关(gateway)
5、部署业务程序(product、stock.order)
6、部署前端(portal)
部署须知
1、导入db目录下数据库文件到自己的MySQL服务器
2、修改配置环境(xxx-service/src/main/resources/application.yml,active值决定启用环境配置文件)
3、修改连接数据库配置(xxx-service/src/main/resources/application-fat.yml)
4、修改前端页面连接网关地址(portal-service/src/main/resources/static/js/productList.js和orderList.js)
5、服务启动顺序:eureka -> mysql -> product,stock,order -> gateway -> portal

2、代码编译构建,打包镜像

在这里插入图片描述

#上图的-P prod ,可指定对应的配置文件
mvn clean package -Dmaven.test.skip=true
#通过dockerfile ,打包镜像,上传至harbor镜像仓库

2.1 dev1分支的文件 (交付代码):

在这里插入图片描述

2.2 gateway-service 网关服务

在这里插入图片描述

tips:

不同环境配置文件怎么区分?
#1
java -jar -Dspring.profiles.active=dev xxx.jar#2 
使用配置中心,如Apollo、disconf

2.3 product-service 商品服务

看biz的目录即可, API目录里面是一些接口工具

在这里插入图片描述

2.4 eureka-service 注册中心服务

在这里插入图片描述
其他的文件夹要看的关键文件,以此类推。

3 、 dev2 编写Dockerfile构建镜像。 以及在最外层的目录pom.xml执行maven打包

#整体打包。 此时每个微服务的文件夹,会生成target。 target文件夹下会有对应的jar包。
mvn clean package -Dmaven.test.skip=true

在这里插入图片描述
在这里插入图片描述
target下的jar包
在这里插入图片描述

3.1 每个微服务都有个dockerfile

docker build -t product .

在这里插入图片描述

4 、启动harbor镜像仓库

docker-compose up -d

dev3 批量打包docker镜像脚本

docker_build.sh
tips:执行前需docker login 192.168.31.70
在这里插入图片描述

#执行操作
./docker_build.sh
#!/bin/bashdocker_registry=192.168.31.70
# 存储登录Harbor认证信息
kubectl create secret docker-registry registry-pull-secret --docker-server=$docker_registry --docker-username=admin --docker-password=Harbor12345 --docker-email=admin@ctnrs.com -n msservice_list="eureka-service gateway-service order-service product-service stock-service portal-service"
#参数1的值如果不存在,则使用-:后面的值,$1有值那就用$1的值 。 具体参考shell expansion
service_list=${1:-${service_list}}
work_dir=$(dirname $PWD)
current_dir=$PWDcd $work_dir
mvn clean package -Dmaven.test.skip=truefor service in $service_list; docd $work_dir/$service# 业务程序需进入biz目录里构建if ls |grep biz &>/dev/null; thencd ${service}-bizfi#取service的名字。eureka-service会变成eureka   ;      具体参考shell expansionservice=${service%-*}image_name=$docker_registry/microservice/${service}:$(date +%F-%H-%M-%S)docker build -t ${image_name} .docker push ${image_name} # 修改yaml中镜像地址为新推送的,并apply。 如果将下面两行注释,则不会部署到k8s中。 效果就是纯打包docker镜像,推送docker镜像。sed -i -r "s#(image: )(.*)#\1$image_name#" ${current_dir}/${service}.yamlkubectl apply -f ${current_dir}/${service}.yaml
done

脚本执行完后,仓库结果,6个镜像:
在这里插入图片描述

准备mysql数据库

配置文件(写在最后):

全部微服务的dockerfile

全部微服务的yaml

全部微服务的配置文件

相关文章:

kubernetes集群部署springcloud项目【AL】【未写完】

kubernetes集群部署springcloud项目【AL】 (先手工做,非自动化) #环境: 192.168.73.138 master 192.168.73.139 node1 192.168.73.140 node2 192.168.73.137 harbor、mysqlgit clone https://github.com/lizhenliang/simple-…...

各种音频接口比较

时间 参考:https://www.bilibili.com/video/BV1SL4y1q7GZ/?spm_id_from333.337.search-card.all.click&vd_source00bd76f9d6dc090461cddd9f0deb2d51, https://blog.csdn.net/weixin_43794311/article/details/128941346 接口名字时间公司支持格式…...

软件测试面试理论(超详细)

【面试理论知识】1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己…...

c++学习笔记-二进制文件操作(哔站-黑马程序员c++教学视频)

一、基本概念 以二进制的方式对文件进行读写操作 打开方式指定为 ios::binary 优点:可以写入自己定义的数据类型 1、写文件 二进制方式写文件:流对象调用成员write 函数原型:ostream& write(const char * buffer,int len);参数解释…...

内网渗透(二十三)之Windows协议认证和密码抓取-Mimikatz介绍和各种模块使用方法

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…...

Nginx if的使用教程

if指令该指令用来支持条件判断,并根据条件判断结果选择不同的Nginx配置。语法if (condition){...}默认值—位置server、locationcondition为判定条件,可以支持以下写法:1. 变量名。如果变量名对应的值为空字符串或"0",i…...

备考蓝桥杯【快速排序和归并排序】

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...

Taro使用微信OCR插件无法调用onSuccess回调问题

Taro使用微信插件无法调用onSuccess回调问题小程序后台添加插件在开放社区购买相应的套餐详细步骤1.在app.config.js中添加如下代码2.在页面的page.config.js添加插件3.使用ocr-navigator识别身份证小程序后台添加插件 在开放社区购买相应的套餐 购买地址 详细步骤 1.在app.…...

【Java】代码块的细节你搞懂了吗(基础知识七)

希望像唠嗑一样,one step one futher。 目录 (1)代码块的应用场景 (2)代码块的细节 1.static 代码块只加载一次 2.当调用类的静态成员时,类会加载 3. 使用类的静态成员时,static代码块会被执…...

设计模式C++实现12:抽象工厂模式

参考大话设计模式; 详细内容参见大话设计模式一书第十五章,该书使用C#实现,本实验通过C语言实现。 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们…...

目标检测论文阅读:GraphFPN算法笔记

标题:GraphFPN: Graph Feature Pyramid Network for Object Detection 会议:ICCV2021 论文地址:https://ieeexplore.ieee.org/document/9710561/ Abstract 特征金字塔已经被证明在需要多尺度特征的图像理解任务中是强大的。SOTA的多尺度特征…...

实测2023款哪吒U-II,智驾功能对女司机很友好

最近,我们受邀试驾了2023款哪吒U-II。这是一款A级新能源SUV,是哪吒U的改款车型。哪吒U系列自2020年3月上市到2023年1月,累计销售数量达76688台,也因此被称为15万级智能天花板。2023款哪吒U-II的一大亮点是:针对以往哪吒…...

Python自动化测试【软件测试最全教程(附笔记、学习路线)】,看完即就业

最近看到很多粉丝在后台私信我,叫我做一期Python自动化测试的教程,其实关于这个问题,我也早就在着手准备了,我录制了一整套完整的Python自动化测试的教程,上传到网盘里了,大家有兴趣的可以去文末交流群免费…...

2023/2/13总结

今天主要学习了哈夫曼树。 哈夫曼树 哈夫曼树是二叉树的一种,它是一种WPL最优二叉树。 叶子结点(也称叶节点):指的是自己下面不再连接有节点的节点(即末端),称为叶子节点(又称为终…...

webSock前端

1.什么是webSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。允许服务端主动向客户端推送数据。 2.如何使用webSocket WebSocket 构造函数WebSocket 对象作为一个构造函数,用于新建 WebSocket 实例。 代码如下: let ws = new WebSocket(网址); 2.websock事件: …...

AcWing 3956. 截断数组(每日一题)

AcWing 3956. 截断数组 题目描述 给定一个长度为 nnn 的数组 a1,a2,…,ana_1, a_2, …, a_na1​,a2​,…,an​ 。 现在,要将该数组从中间截断,得到三个非空子数组。 要求,三个子数组内各元素之和都相等。 请问,共有多少种不同…...

Android 一体机研发之修改系统设置————屏幕亮度

Android 一体机研发之修改系统设置————屏幕亮度 Android 一体机研发之修改系统设置————声音 Android 一体机研发之修改系统设置————自动锁屏 前言 最近工作略微有点儿空闲,抽空给大家总结一下:近期一直搞得一体机app研发,适用…...

C++通用算法

1.概述根据名字就知道如何使用相关算法&#xff0c;比如copy函数&#xff0c;就是复制的意思&#xff0c;它需要一个范围&#xff0c;以及要复制的位置copy(begin, end, container_begin);#include <iostream> #include<vector> #include<algorithm> #includ…...

Springboot停机方式

1. 介绍 简单的说&#xff0c;就是向应用进程发出停止指令之后&#xff0c;能保证正在执行的业务操作不受影响&#xff0c;直到操作运行完毕之后再停止服务。应用程序接收到停止指令之后&#xff0c;会进行如下操作&#xff1a; 1.停止接收新的访问请求 2.正在处理的请求&…...

Linux perf_event_open 简介

文章目录前言一、简介二、struct perf_event_attr2.1 type2.2 size2.3 config2.3.1 PERF_TYPE_HARDWARE2.3.2 PERF_TYPE_SOFTWARE2.3.3 PERF_TYPE_TRACEPOINT2.3.4 PERF_TYPE_HW_CACHE2.3.5 其他类型三、sample相关参数3.1 sample_period3.2 sample_freq3.3 sample_type四、其他…...

Java给定两组起止日期,求交集

/*** 判断2个时间段是否有重叠&#xff08;交集&#xff09;* param startDate1 时间段1开始时间戳* param endDate1 时间段1结束时间戳* param startDate2 时间段2开始时间戳* param endDate2 时间段2结束时间戳* param isStrict 是否严格重叠&#xff0c;true 严格&#xff0…...

数组的复制与二维数组的用法

今天学习的主要内容有 数组的复制 数组的复制 利用循环进行数组的复制 import java.util.Arrays; public class Main3 {public static void main(String[] args) {int []arr new int[]{1,2,3,4,5,6};int []arr1 new int[arr.length];for (int i 0; i < arr.length; i…...

JS判断两个table数据是否完全相等(判断两个数组对象是否完全相等)

需求 现有的table为tableA&#xff0c;有多个要做对比的table为一个数组 CompareArray 涉及到的问题 外层是数组&#xff0c;但是内部数据都是对象&#xff0c;对象属性名的排序不一样外层数组也涉及到 顺序不一样的问题 思路 对compareArray做长度筛选 filter 得到 同长度…...

关于小程序,你想知道的这些

近年来&#xff0c;各大平台纷纷上架小程序&#xff0c;迎来了小程序的爆发式增长。今天就来跟大家简单分享一下小程序基本的运行机制和安全机制。 小程序的由来 在小程序没有出来之前&#xff0c;最初微信WebView逐渐成为移动web重要入口&#xff0c;微信发布了一整套网页开…...

WuThreat身份安全云-TVD每日漏洞情报-2023-02-13

漏洞名称:THORSTEN PHPMYFAQ 跨站点脚本 漏洞级别:高危 漏洞编号:CVE-2023-0791 相关涉及:THORSTEN PHPMYFAQ 3.1.10 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-03506 漏洞名称:TENDA AC23 越界写入 漏洞级别:高危 漏洞编号:CVE-2023-078…...

【Linux】软件安装(三分钟教会你如何在linux下安装软件)

&#x1f525;&#x1f525; 欢迎来到小林的博客&#xff01;&#xff01;       &#x1f6f0;️博客主页&#xff1a;✈️小林爱敲代码       &#x1f6f0;️博客专栏&#xff1a;✈️Linux之路       &#x1f6f0;️社区&#xff1a;✈️进步学堂 目录&…...

Fluent Python 笔记 第 10 章 序列的修改、散列和切片

本章将以第 9 章定义的二维向量 Vector2d 类为基础&#xff0c;向前迈出一大步&#xff0c;定义表示多维向量的 Vector 类。这个类的行为与 Python 中标准的不可变扁平序列一样。 10.3 协议和鸭子类型 在 Python 中创建功能完善的序列类型无需使用继承&#xff0c;只需实现符…...

在中国程序员工作是青春饭吗?

上个月公司告诉我毕业了。 我打开boss直聘&#xff0c;一溜溜的外包公司和我打招呼。 我寻思我说不定啥时候就离开深圳了&#xff0c;外包不外包也无所谓钱到位就行。&#xff08;大公司学历不够格也进不去&#xff09; 结果华为、平安的外包告诉我&#xff0c;不好意思呀&a…...

Linux tcpdump

tcpdump - 转储网络上的数据流 是不是感觉很懵&#xff1f;全方位描述tcpdump: 通俗&#xff1a;tcpdump是一个抓包工具&#xff0c;用于抓取网络中传输的数据包形象&#xff1a;tcpdump如同国家海关&#xff0c;凡是入境和出境的货物&#xff0c;海关都要抽样检查&#xff0…...

redis知识汇总(部署、高可用、集群)

文章目录一、redis知识汇总什么是redisredis的优缺点&#xff1a;为什么要用redis做缓存redis为什么这么快什么是持久化redis持久化机制是什么&#xff1f;各自优缺点&#xff1f;AOF和RDB怎么选择redis持久化数据和缓存怎么做扩容什么是事务redis事务的概念ACID概念主从复制re…...

做网站托管服务器/短视频推广引流

请关注本头条号&#xff0c;每天坚持更新原创干货技术文章。如需学习视频&#xff0c;请在微信搜索公众号“智传网优”直接开始自助视频学习1. 前言本文主要是讲解如何为Linux配置最佳的分区方案&#xff0c;Linux最佳的分区方案到底存不存在。linux最佳分区方案示例2. Linux通…...

做医疗类网站有什么需要审核的/网页开发需要学什么

geth是我们的go-ethereum最主要的一个命令行工具。 也是我们的各种网络的接入点(主网络main-net 测试网络test-net 和私有网络)。支持运行在全节点模式或者轻量级节点模式。 其他程序可以通过它暴露的JSON RPC调用来访问以太坊网络的功能。如果什么命令都不输入直接运行geth。 …...

个人网站名字取名怎么做/建立网站的几个步骤

最开始使用spring框架的时候&#xff0c;对于其配置文件xml&#xff0c;只是网上得知其使用方法&#xff0c;而不明其意。最近想着寻根问底的探究一下。以下是本文主要内容&#xff1a; 1、配置文件示例。 [html] view plaincopy print?<?xml version"1.0" enco…...

手机做网站对比路由器做网站/微信crm系统

网络提示错误720的解决方法之一参考文章&#xff1a; &#xff08;1&#xff09;网络提示错误720的解决方法之一 &#xff08;2&#xff09;https://www.cnblogs.com/lemon1991/p/5046868.html 备忘一下。...

网站 维护 费用/百度推广服务费一年多少钱

原文 http://www.cnblogs.com/ybgame/p/3588795.html 在最近&#xff0c;使用U3D开发的游戏核心部分功能即将完成&#xff0c;中间由于各种历史原因&#xff0c;导致项目存在比较大的问题&#xff0c;这些问题在最后&#xff0c;恐怕只能通过一次彻底的重构来解决 现在的游…...

厦门网站建设哪家不错/排名优化工具

Linux操作系统知识 1. Linux开机启动流程详细步骤是什么&#xff1f;忘记密码如何破解&#xff1f; 2. 企业中Linux数据库服务器做raid几&#xff0c;你们原来公司的数据库服务器大小&#xff1f;RAID 0 1 5 10区别&#xff0c;系统分区标准是什么&#xff1f; 3. 某一天突然…...