[Gitops--12]微服务项目发布

news2025/1/12 20:50:40

微服务项目发布

1. 微服务项目发布

[流水线] [创建]

请添加图片描述

请添加图片描述

[下一步]

请添加图片描述

[创建]

1.1 mall-gateway

确认项目中的路由配置都正确

mall-gateway/src/main/resources/application.yml

如果不一样就批量替换一下,一共7处

请添加图片描述

请添加图片描述

1.2 mall-auth-server

mall-auth-server

请添加图片描述

1.3 mall-cart

请添加图片描述

1.4 mall-coupon

请添加图片描述

1.5 mall-member

请添加图片描述

1.6 mall-order

请添加图片描述

1.7 mall-product

请添加图片描述

1.8 mall-search

请添加图片描述

1.9 mall-seckill

请添加图片描述

1.10 mall-third-party

请添加图片描述

1.11 mall-ware

请添加图片描述

1.12 renren-fast-master

请添加图片描述

没有意外的话,renren-fast发布成功,可以看到没有报错信息.如果失败,检查数据库连接,数据库用户名密码,数据库是否关闭了ssl(配置文件中skip-sll)

请添加图片描述

1.13 renren-generator-master

请添加图片描述

1.14 服务发布验证

依次发布,等待全部完成

请添加图片描述

全部发布完成后可以在nacos上看到12个服务已经被注册

请添加图片描述

2. 前端代理服务部署

2.1 制作sangomall-proxy镜像

mkdir nginx-proxy/htmp -p
cd nginx-proxy

conf/default.conf

upstream sangomall {
        server mall-gateway.sangomall.svc.cluster.local.:8072
}
server {
    listen       80;
    listen  [::]:80;
    server_name  *.intra.com;
    location /static/ {
        root   /usr/share/nginx/html;
    }
    location / {
       proxy_set_header Host $host;
       proxy_pass http://sangomall;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

html

root@ks-master:~/nginx-proxy# ls -l html/
total 4
drwxr-xr-x 2 root root 23 Dec 20 09:54 es
-rw-r--r-- 1 root root 22 Dec 20 09:54 index.html
drwxr-xr-x 9 root root 94 Dec 20 09:54 static

将html目录压缩

cd html
tar czf  html.tar.gz *
mv html.tar.gz ../

Dockerfile

FROM nginx

MAINTAINER nextgo@126.com

RUN rm -rf /etc/nginx/conf.d/*

COPY conf/* /etc/nginx/conf.d/


ADD html.tar.gz  /usr/share/nginx/html/

EXPOSE 80

ENTRYPOINT nginx -g "daemon off;"

镜像打包上传

docker build -t harbor.intra.com/sangomall/sangomall-proxy:v1.0 .
docker push  harbor.intra.com/sangomall/sangomall-proxy:v1.0

2.2 创建sangomall-proxy-nginx服务

[创建] [无状态服务]

请添加图片描述

sangomall-proxy-nginx
harbor.intra.com/sangomall/sangomall-proxy:v1.0

请添加图片描述

[下一步] [下一步] [创建]

2.3 创建路由

根据mall-gateway/src/main/resources/application.yml中关于HOST的配置添加路由.(一个7条)

- Host=mall.intra.com
- Host=item.intra.com
- Host=seckill.intra.com
- Host=search.intra.com
- Host=auth.intra.com
- Host=cart.intra.com
- Host=order.intra.com

[应用负载] [应用路由] [创建]

sangomall-proxy-nginx-route

[下一步] [添加路由规则]

mall.intra.com	sangomall-proxy-nginx	80
item.intra.com	sangomall-proxy-nginx	80
seckill.intra.com	sangomall-proxy-nginx	80
search.intra.com	sangomall-proxy-nginx	80
auth.intra.com	sangomall-proxy-nginx	80
cart.intra.com	sangomall-proxy-nginx	80
order.intra.com	sangomall-proxy-nginx	80

请添加图片描述

[下一步] [添加元数据]

kubernetes.io/ingress.class  apisix

[创建]

2.4 路由配置确认

创建后可以在apisix-dashboard中看到创建的路由

请添加图片描述

2.5 添加路由

因为所有路由都是通过apisix转发的,所以需要获取到apisix-gateway的地址,并将7条域名解析到apisix-gateway上.

root@ks-master:~# kubectl get svc -n apisix-system |grep apisix-gateway|awk '{print $4}'
192.168.31.211

添加域名解析
在dns服务器/var/named/intra.zone

[root@centos7-1 ~]# cat /var/named/intra.zone
$TTL 1d
@       IN      SOA     intra.com. admin.intra.com. (
                        0;
                        1H;
                        5M;
                        1W;
                        1D);
@ NS ns.intra.com.
ns A 192.168.31.17
harbor A 192.168.31.104
gitlab A 192.168.31.199
kibana A 192.168.31.212
rabbitmq A 192.168.31.211
web1 A 192.168.31.211
nacos-server A 192.168.31.211
zipkin-server A 192.168.31.211
sentinel A 192.168.31.211
skywalking-ui A 192.168.31.211
rocketmq-dashboard A 192.168.31.211
mall-gateway A 192.168.31.213
# 追加以下7条微服务解析
mall.intra.com A 192.168.31.211
item.intra.com A 192.168.31.211
seckill.intra.com A 192.168.31.211
search.intra.com A 192.168.31.211
auth.intra.com A 192.168.31.211
cart.intra.com A 192.168.31.211
order.intra.com A 192.168.31.211

重启named服务

[root@centos7-1 ~]# systemctl restart named

访问商场页面

请添加图片描述

访问查询页面

请添加图片描述

3. 管理后台发布

3.1 创建Service

[指定工作负载]

mall-gateway-external

请添加图片描述

选择[mall-gateway]

请添加图片描述

[外部访问]

lb.kubesphere.io/v1alpha1: openelb
protocol.openelb.kubesphere.io/v1alpha1: layer2
eip.openelb.kubesphere.io/v1alpha2: layer3-eip

请添加图片描述

[创建] 创建后获取到外部访问地址 [192.168.31.213]

请添加图片描述

3.2 修改mall-gateway连接

renren-fast-vue-master/static/config/index-prod.js

/**
 * 生产环境
 */
;(function () {
  window.SITE_CONFIG = {};

  // api接口请求地址
  window.SITE_CONFIG['baseUrl'] = 'http://mall-gateway.intra.com:8072/app';

  // cdn地址 = 域名 + 版本号
  window.SITE_CONFIG['domain']  = './'; // 域名
  window.SITE_CONFIG['version'] = '';   // 版本号(年月日时分)
  window.SITE_CONFIG['cdnUrl']  = window.SITE_CONFIG.domain + window.SITE_CONFIG.version;
})();

编译renren-fast项目

npm install node-sass@4.14
npm install
npm run build

完成之后会生成一个dist的目录

3.3 准备容器镜像

将文件夹上传到服务器

mkdir renren-fast
cd renren-fast
tar czf dist.tar.gz *
mv dist.tar.gz ../
cd ../

配置Dockerfile

FROM nginx
ADD dist.tar.gz /usr/share/nginx/html
EXPOSE 80
ENTRYPOINT nginx -g "daemon off;"

制作并上传镜像

docker build -t harbor.intra.com/sangomall/sangomall-admin:v1 .
docker push harbor.intra.com/sangomall/sangomall-admin:v1

3.4 项目部署

[应用负载] [服务] [创建]

sangomall-admin
harbor.intra.com/sangomall/sangomall-admin:v1

请添加图片描述

[下一步] [下一步] [创建]

3.5 编辑外部访问

编辑外部访问

lb.kubesphere.io/v1alpha1: openelb
protocol.openelb.kubesphere.io/v1alpha1: layer2
eip.openelb.kubesphere.io/v1alpha2: layer3-eip

请添加图片描述

标签追加后就可以看到eip被分配上

请添加图片描述

将此ip进行域名解析

$TTL 1d
@       IN      SOA     intra.com. admin.intra.com. (
                        0;
                        1H;
                        5M;
                        1W;
                        1D);
@ NS ns.intra.com.
ns A 192.168.31.17
harbor A 192.168.31.104
gitlab A 192.168.31.199
kibana A 192.168.31.212
rabbitmq A 192.168.31.211
web1 A 192.168.31.211
nacos-server A 192.168.31.211
zipkin-server A 192.168.31.211
sentinel A 192.168.31.211
skywalking-ui A 192.168.31.211
rocketmq-dashboard A 192.168.31.211
mall-gateway A 192.168.31.213
mall A 192.168.31.211
item A 192.168.31.211
seckill A 192.168.31.211
search A 192.168.31.211
auth A 192.168.31.211
cart A 192.168.31.211
order A 192.168.31.211
admin A 192.168.31.214

重启named服务

systemctl restart named

访问后台管理页

admin
admin

请添加图片描述

输入验证码后登陆,就可以在管理页面对商品进行上下架等处理.

请添加图片描述

至此基于KubeSphere的sangomall微服务商场项目发布完成.

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

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

相关文章

ChatGLM-LLaMA-chinese-insturct 学习记录(含LoRA的源码理解)

ChatGLM-LLaMA-chinese-insturct 前言一、实验记录1.1 环境配置1.2 代码理解1.2.1 LoRA 1.4 实验结果 二、总结 前言 介绍:探索中文instruct数据在ChatGLM, LLaMA等LLM上微调表现,结合PEFT等方法降低资源需求。 Github: https://github.com/27182812/Ch…

Win10任务栏透明,3个超好用解决方法!

案例:win10任务栏透明怎么办? 【我的电脑不知道为什么任务栏突然就变透明了,现在不知道该如何解决,遇到这种情况应该怎么办呀?】 Win10任务栏是Windows 10操作系统的一部分,通常默认为不透明。然而&#…

asp.net+sqlserver企业公司进销存管理系统

基于WEB的进销存管理系统主要企业内部提供服务,系统分为管理员,和员工2部分。 在本基于WEB的进销存管理系统中分为管理员,和普通用户2中模式,其中管理人员主要是对企业内商品类型。商品信息商品的出入库信息,以及员工…

堆栈溢出一般是什么原因?

堆栈是一个在计算机科学中经常使用的抽象数据类型。堆栈中的物体具有一个特性: 最后一个放入堆栈中的物体总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。 PUSH操作在堆栈的顶部加入一 个元素…

MySQL深度分页

1. 什么是深度分页 深度分页问题的本质是在 MySQL 数据库中,通过 LIMIT 和 OFFSET 关键字进行分页时,MySQL 需要在每次查询时扫描整张表,直到找到当前页的数据。这种查询方式需要进行大量的磁盘 I/O 和内存操作,导致查询效率非常…

Microsoft Edge新功能测评体验

Microsoft Edge使用体验 Microsoft Edge是一款现代化的浏览器,它拥有众多功能和强大的性能,为用户带来更加流畅的浏览体验。 Edge最近推出了分屏功能,支持一个窗口同时显示两个选项卡,这可以大大提高生产力和多任务处理能力。 一…

什么样的蓝牙耳机佩戴舒适?蓝牙耳机佩戴舒适度排名

越来越多的人开始使用运动蓝牙耳机了,不仅仅是因为蓝牙耳机的它无耳机线的束缚,日常还很便携,市面上的蓝牙耳机质量参差不齐,有些佩戴舒适度也比较差,下面整理了几款评分还不错的几款蓝牙耳机。 一、南卡小音舱Lite2蓝…

第四十四章 Unity 滑动条 (Slider) UI

本章节我们介绍滑动条 (Slider),它允许用户通过拖动鼠标从预定范围中选择数值。首先,我们点击菜单栏“GameObject”->“UI”->“Slider”,调整其位置,最终效果如下 我们发现滑动条 (Slider)下面有三个子游戏对象Background&…

如何使DocuWare成为所有部门的数据中心

如何使DocuWare成为所有部门的数据中心 自动化流程通常需要多个部门的数据,而各个部门通常使用不同的软件。 DocuWare可帮助您集中管理所有信息,并将信息应用于您的进程和工作流程当中。 您的公司使用不同的系统,但您又想将这些数据整合在一…

手敲Mybatis(十)-完善ORM框架支持增删改查

我们把基本的功能都完成了,解析xml、构建映射代理、执行sql,解析处理结果,目前这些只支持查询,我们还差添加下增删改的功能,本章节就来完善下增删改,其实本章节比较简单,因为之前的每个章节都已…

这一篇LiveData掉不掉价(使用->原理分析->粘性事件解决)

1. 简介 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 activity、fragment 或 service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周…

数据备份系列:Rsync 备份详解(二)

一、Rsync Cron 场景使用 在对数据备份要求实时性不高的情况下,可优先考虑该场景,选择一个合适的时间,对数据进行定时远程增量同步。 在《数据备份系列:Rsync 备份详解(一)》中我们已经对服务搭建以及远程…

【虚幻引擎】UE5数据表格导入

数据表 顾名思义,DataTable是一种表格,里面装着大量游戏相关的数据,这些数据会按照其含义和用途分类, 其中,数据字段可以是UObject的任意有效属性(包括资产的引用信息)。设计师若要将 CSV文件导…

c++类的静态变量、静态函数 笔记

正文&#xff1a; 1、看下面这个是一个常规的类 #include <iostream> #include <windows.h> using namespace std; class BOX{int callsNum1;public:BOX(){callsNum;};int fun(){return callsNum;}; }; // int BOX::callsNum1;// 程序的主函数 int main() {SetCo…

【某区护网】从外网打点到拿下域控

目录 web打点 反弹shell与权限维持 主机信息收集与反向代理 攻击域控 前端时间刚结束了攻防演练活动&#xff0c;其中一项成果为拿下某集团域控制器权限&#xff0c;直接控制域内主机5000多台。以下为攻击过程的粗略记录&#xff0c;整体来说还是比较容易。 web打点 接到…

N1Book-第一章Web入门-任意文件读取漏洞-afr_2

本题为Nu1L团队编著的《从0到1&#xff1a;CTFer成长之路》配套题目。来源网站&#xff1a;https://book.nu1l.com/ 经过多方查阅资料&#xff0c;发现题目是&#xff0c;由于Nginx配置不当产生了目录穿越漏洞。本题使用的是OpenResty&#xff0c;而OpenResty是基于Nginx与Lua实…

门诊自助打印机可以办理哪些业务呢?

自助打印机可以办理以下业务&#xff1a; 检验报告单打印&#xff1a;患者可以通过医院验单自助打印机自主打印检验报告单&#xff0c;避免了等待时间&#xff0c;提高了医院的服务效率&#xff1b;检验报告查询&#xff1a;患者可以通过医院验单自助打印机查询自己的检验报告…

HHDBCS便捷功能简介

1. 连接管理 使用数据库时&#xff0c;不可避免的要建立很多个连接。 如果单纯用命令执行切换用户的话&#xff0c;实在是一件麻烦事。 那么这种麻烦事就交给HHDECS好了。 点击连接管理&#xff0c;一键切换。 而且能在不同数据库之间随意切换 2. 使用高级模式&#xff…

Linux环境安装iperf3(网络性能测试工具)

[rootlocalhost ]# yum search iperf 已加载插件&#xff1a;fastestmirror Loading mirror speeds from cached hostfile* base: mirrors.tuna.tsinghua.edu.cn* extras: mirrors.huaweicloud.com* updates: mirrors.tuna.tsinghua.edu.cnN/S matched: iperf iperf3-devel.i6…

数据分析示例-python

数据分析示例-python 今天呢&#xff0c;博主把之前做过的一个小课题拿出来展示一下&#xff0c;当然这个课题呢做的工作量很大&#xff0c;也用到了很多可以参考的技术和代码&#xff0c;做数据分析工作的可以尝试学习学习。 这篇博客&#xff0c;我们先从数据集开始介绍。 对…