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

微服务项目发布

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微服务商场项目发布完成.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Notepad++配置C语言环境和C++环境

背景: Notepad是我们经常使用的编辑器,我们可以用它编译和运行各种类型的文档,其中就包括了C和C文档。但是编译和运行C或者C文档首先要配置编译环境,下面给大家分享一下如何在NotePad配置C/C编译环境。 工具: NoteP…

ADSP21489之CCES开发笔记(十一)

一、主模式固件加载: 1、激活SPICLK信号,并将SPI_FLG0_O引脚拉低。 2、将读取命令0x03和24位地址0x000000写入从设备。如图24-4所示。 图24-4 二、PCAG时钟选择与配置。 1、来源晶振 2、来源Pin脚 其中来源Pin脚配置PCAG时,需将PCG_CTLx1上加…

Golang每日一练(leetDay0059) 两数之和II、Excel表列名称

目录 167. 两数之和 II 输入有序数组 Two-sum-ii-input-array-is-sorted 🌟🌟 168. Excel表列名称 Excel Sheet Column Title 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练…

云渲染农场具有什么特点?

众所周知,渲染农场的出现是为了解决长时间的图像渲染问题。渲染农场的底层搭建原理是利用很多计算机、网络和操作系统来构建一个庞大的计算群组,把一个渲染任务从一台机器分发到这个计算群组,从而达到短时间内能够快速得到渲染结果。 到了20…

JavaWeb:Web 的基本概念、Tomcat 服务器、Http 详解、Maven 的下载安装步骤、模仿一个 Servlet

文章目录 JavaWeb - 01一、基本概念1、静态 Web2、动态 Web3、Web 应用程序4、三个技术 二、Web 服务器三、Tomcat 详解四、发布一个 Web 网站五、Http 详解1. Http 请求(1)请求行(2)消息头 2. Http 响应(1&#xff09…

Facebook 用户量十分庞大,为什么还使用 MySQL 数据库?

当谈到社交媒体巨头Facebook时,我们立刻想到的是其庞大的用户基础和每日海量的数据流。然而,您可能会惊讶地发现,尽管面对如此巨大的规模,Facebook 仍然选择使用 MySQL 数据库作为其核心的数据存储和管理系统。 为什么Facebook没…

一文讲透TCP/IP协议 | 图解+秒懂+史上最全

目录 🙋‍♂️ TCP/IP协议详解 🙋‍♂️ TCP/IP协议的分层模型 OSI模型的七层框架 TCP/IP协议与七层ISO模型的对应关系 (一)TCP/IP协议的应用层 (二)TCP/IP协议的传输层 (三)…

【计算机组成原理】第三章 多层次的存储器

系列文章目录 第一章 计算系统概论 第二章 运算方法和运算器 第三章 多层次的存储器 第四章 指令系统 第五章 中央处理器 第六章 总线系统 第七章 外围设备 第八章 输入输出系统 文章目录 系列文章目录前言第三章 多层次的存储器3.1 存储器概述3.1.1 存储器的分类3.1.2 存储器…

软件测试 - 缺陷管理

1. 缺陷的定义 产品不满足用户的需求或者测试执行时实际结果和预期结果不一致都属于缺陷。 2. 缺陷的判定标准及产生原因 软件不满足下述任何一种都算作是软件的缺陷,缺陷的概念是包括bug概念的。 未达到需求说明书指明的功能出现了需求说明书指明不应该出现的错…

Python+Selenium入门级自动化测试脚本编写

一、安装Selenium 安装selenium有三种方式,主要有python下的pip命令安装或者是直接下载安装包进行安装本地文件夹以及直接用pycharm直接安装相应的selenium版本。推荐使用pycharm直接配置安装相应selenium版本(此办法比pip更好用,且不用担心报…

8分钟的面试,我直呼太变态了......

干了两年外包,本来想出来正儿八经找个互联网公司上班,没想到算法死在另一家厂子。 自从加入这家外包公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到11月一纸通知,所有人不许加班,薪资…

【Linux】Job for network.service failed(网卡启动报错)

上图是Linux网卡启动报错的情况 这是由于cat/etc/sysconfig/network-scripts/ifcfg-xxx 中HWADDR的MAC地址和ifconfig中的MAC地址不一样,或者缺少cat/etc/sysconfig/network-scripts/ifcfg-xxx 中HWADDR的MAC地址 1.查看ifconfig中的MAC地址 图中00:0c…

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里?

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里? 版权声明: 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明文章内容,不得删减、修改、演绎相关学习资源见文末 一些人…

谈谈几种分布式锁实现

大家好,我是易安!今天我们呢谈一谈常见的分布式锁的几种实现方式。 什么是分布式锁 在JVM中,在多线程并发的情况下,我们可以使用同步锁或Lock锁,保证在同一时间内,只能有一个线程修改共享变量或执行代码块…

Java 基础进阶篇(十二)—— Stream 流常用方法总结

文章目录 一、Stream流概述二、获取Stream流2.1 集合获取 Stream 流2.2 数组获取 Stream 流 三、中间方法四、终结方法五、Stream流的综合应用六、收集Stream流 一、Stream流概述 Stream 流是在 Java8 中,得益于 Lambda 所带来的函数式编程, 引入了一个…

使用【SD-WEBUI】插件生成单张图包含多个人物:分区域的提示词

文章目录 (零)前言(一)潜变量成对(Latent Couple)(1.1)可自组LoRA(Composable LoRA) (二)分区扩散(Multi Diffusion&#…

深入理解二分类和多分类CrossEntropy Loss和Focal Loss

深入理解二分类和多分类CrossEntropy Loss和Focal Loss 二分类交叉熵 在二分的情况下,模型最后需要预测的结果只有两种情况,对于每个类别我们的预测得到的概率为 p p p和 1 − p 1-p 1−p,此时表达式为( 的 log ⁡ \log log底数…

Osek网络管理及ETAS实现

OSEK/VDX(Offene Systeme und deren Schnittstellen fr die Elektronik in Kraftfahrzeugen / Vehicle Distributed eXecutive)是一种用于嵌入式系统(尤其是汽车电子控制单元)的开放标准。它旨在提供一种统一、可互操作的软件架构…

Origin如何绘制三维图形?

文章目录 0.引言1.使用矩阵簿窗口2.三维数据转换3.三维绘图4.三维曲面图5.三维XYY图6.三维符号、条状、矢量图7.等高线图 0.引言 因科研等多场景需要,绘制专业的图表,笔者对Origin进行了学习,本文通过《Origin 2022科学绘图与数据》及其配套素…

三分钟教你如何定义自己的ChatGPT

三分钟教你如何定义自己的ChatGPT 成品预览材料准备MyChatGPT自定义AI 成品预览 材料准备 总共有两种方式: 一种是使用自己的OpenAI账号,这种方式是可控性比较强,同时也会有很多问题,比如你需要准备国外的手机号和Visa卡&#x…