前后端分离架构+k8s+ingress(代码片段)

xiao987334176 xiao987334176     2023-04-26     753

关键词:

一、概述

在前面几篇文章中,已经讲到了前后端分离架构和ingress,链接如下:

https://www.cnblogs.com/xiao987334176/p/12195722.html

https://www.cnblogs.com/xiao987334176/p/12195797.html

接下来使用k8s进行发布应用

 

二、演示3.0

环境说明

k8s集群

系统dockerip主机名配置
centos 7.6 19.03.5 192.168.31.150 k8s-master 2核4G
centos 7.6 19.03.5 192.168.31.178 k8s-node01 2核4G
centos 7.6 19.03.5 192.168.31.164 k8s-node02 2核4G

 

 

 

 

 

 

harbor

系统dockerdocker-composeharborip主机名配置
centos 7.6 19.03.5 1.24.1 1.8.0 192.168.31.37 harbor 2核4G

 

 

 

 

关于k8s搭建,请参考链接:

https://www.cnblogs.com/xiao987334176/p/11899321.html

 

关于harbor搭建,请参考链接:

https://www.cnblogs.com/xiao987334176/p/11326467.html

 

推送镜像到harbor

在前面2.0的环境中,已经打包好了login和api镜像,直接推送到harbor仓库即可。

修改docker配置文件,增加harbor地址

vi /etc/docker/daemon.json

内容如下:


  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "insecure-registries": ["192.168.31.37"]

重启docker

systemctl restart docker

 

docker登录harbor,直接使用管理员账号登录

docker login 192.168.31.37 -u admin -p Harbor12345

 

打tag并推送

docker tag demo_api:v1 192.168.31.37/library/demo_api:v1
docker push 192.168.31.37/library/demo_api:v1

docker tag demo_login:v1 192.168.31.37/library/demo_login:v1
docker push 192.168.31.37/library/demo_login:v1

 

k8s集群登录harbor

登录到k8s集群中的master节点以及node节点。

修改docker配置文件,增加harbor地址

vi /etc/docker/daemon.json

内容如下:


  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "insecure-registries": ["192.168.31.37"]

重启docker

systemctl restart docker

 

k8s发布应用

yum install -y git
git clone https://github.com/py3study/django-login-example.git

 

前端

login.yaml是使用kuboard生成的,login-ingress.yaml是否手写的。因为kuboard生成的ingress有bug,外部无法访问。

cd django-login-example/3.0
kubectl apply -f login.yaml
kubectl apply -f login-ingress.yaml 

注意:请修改yaml文件中的仓库地址,改为实际环境中的harbor

 

api

cd django-login-example/3.0
kubectl apply -f api.yaml
kubectl apply -f api-ingress.yaml 

注意:请修改yaml文件中的仓库地址,改为实际环境中的harbor

 

查看pods

# kubectl get pods -o wide
NAME                          READY   STATUS    RESTARTS   AGE     IP              NODE         NOMINATED NODE   READINESS GATES
svc-api-6559bb7cb8-58fvj      1/1     Running   0          2m24s   10.244.58.197   k8s-node02   <none>           <none>
svc-login-66c8d579b5-94x6t    1/1     Running   0          2m30s   10.244.85.198   k8s-node01   <none>           <none>

确保处于`Running`状态,如果出现imagesoff,请确保node能下载镜像,镜像地址是否正确,是否登录了harbor

 

查看ingress

# kubectl get ingresses.extensions
NAME           HOSTS                ADDRESS   PORTS   AGE
svc-api        api.baidu.com                  80      4m37s
svc-login      h5.baidu.com                   80      4m43s

 

访问页面

在1.0和2.0中,都使用了nginx转发。在3.0就无需nginx转发了,直接使用ingress转发。

将域名解析到任意node节点的ip即可。如果没有dns,windows 10添加2条hosts记录

192.168.31.178 h5.baidu.com
192.168.31.178 api.baidu.com

 

访问登录页面

http://h5.baidu.com/

效果如下:

 技术图片

 

 

登录成功后,效果如下:

技术图片

 

企业管理系统前后端分离架构设计系列一权限模型篇(代码片段)

原文:企业管理系统前后端分离架构设计系列一权限模型篇前段时间分别用vue和react写了两个后台管理系统的模板vue-quasar-admin和3YAdmin。两个项目中都实现了基于RBAC的权限控制。因为本职工作是后端开发,比较清楚权限控制一个管... 查看详情

基于springboot架构的前后端完全分离项目api路径问题(代码片段)

最近的一个项目采用前后端完全分离的架构,前端组件:vue+vue-router+vuex+element-ui+axios,后端组件:SpringBoot+MyBatis。之所以这样做是为了考虑后端水平扩容的便利性,在部署的时候完全可以将前后端彼此独立部署,前端部署可以直... 查看详情

pythonweb开发:前后端分离的架构(代码片段)

前面,我们的数据展示在界面上是这样的:很不好看。因为我们返回的其实就是字符串,并不是HTML。要好看一些,我们可以使用HTML来展示数据。一、代码直接生成HTMLHTML本身其实也是字符串,只是这个字符串里面的内容是符合HT... 查看详情

企业管理系统前后端分离架构设计系列一权限模型篇(代码片段)

...心功能,而且是可以做到通用的。打算写写关于管理系统前后端分离方面的文章,也是做一个知识的总结,其中会涉及到vue,react,node,.netcore等方面的知识。术语描述用户(S 查看详情

面试官问:前后端分离项目,有什么优缺点?(代码片段)

1、背景前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多... 查看详情

面试官问:前后端分离项目,有什么优缺点?(代码片段)

1、背景前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多... 查看详情

k8s集群ingresshttps实践(代码片段)

前文介绍使用ingress结合traefik实现了入口的动静分离,本文将在前文基础上实现ingress的https配置。为了简单且高效,建议应用容器化部署之后,https卸载在ingress这一级实现。通俗一点来说就是用户到ingress的连接走https协议,ingress... 查看详情

springboot前后端分离vue个人博客系统(代码片段)

...目简介本项目使用springboot+mybatis+前端vue,使用前后端分离架构实现的个人博客系 查看详情

婴儿检测管理系统springboot+mybatis前后端分离项目(代码片段)

婴儿检测管理系统springboot+mybatis前后端分离项目前言一、技术架构二、项目结构三、项目演示四、代码实现代码结构pom.xml文件结果集封装五、gitee地址前言一个简单的前后端分离项目,没有难的技术点,适合新手初学... 查看详情

婴儿检测管理系统springboot+mybatis前后端分离项目(代码片段)

婴儿检测管理系统springboot+mybatis前后端分离项目前言一、技术架构二、项目结构三、项目演示四、代码实现代码结构pom.xml文件结果集封装五、gitee地址前言一个简单的前后端分离项目,没有难的技术点,适合新手初学... 查看详情

k8s集群使用ingress实现网站入口动静分离实践(代码片段)

今年3月份在公司的内部k8s培训会上,和研发同事详细探讨了应用部署容器化部署的几个问题,问题简要如下:1、java应用容器化部署首先通过自动化部署工具编译出全量的war包,将war包直接编译到docker镜像后推送到私用仓库并版... 查看详情

5_前后端分离

前后端分离属于软件架构的一种。其核心思想是把前端项目(Node.js实现的)和后端项目独立部署到不同的服务器上,前端项目在通过Ajax请求服务器端项目Restful接口实现数据交互。使用前后端分离架构的项目在项目组中往往配备... 查看详情

5_前后端分离

前后端分离属于软件架构的一种。其核心思想是把前端项目(Node.js实现的)和后端项目独立部署到不同的服务器上,前端项目在通过Ajax请求服务器端项目Restful接口实现数据交互。使用前后端分离架构的项目在项目组中往往配备... 查看详情

springcloudalibaba前后端分离多租户saas企业开发架构技术选型和设计方案(代码片段)

        基于SpringCloudAlibaba分布式微服务高并发数据平台化(中台)思想+多租户saas设计的企业开发架构,支持源码二次开发、支持其他业务系统集成、集中式应用权限管理、支持拓展其他任意子项目。一、架构技术选型... 查看详情

一款小清新的springboot+mybatis前后端分离后台管理系统项目(代码片段)

...为“星标”,和你一起掌握更多数据库知识项目介绍前后端分离架构,分离开发,分离部署,前后端互不影响。前端技术采用vue+antdvPro+axios。后端采用springboot+mybatis-plus+hutool等,开源可靠。基于spri... 查看详情

前后端分离架构:web实现前后端分离,前后端解耦

...net/fuzhongmin05推荐:https://www.xttblog.com/?p=51781、背景前后端分离已成为互联网项 查看详情

前后端分离架构:web实现前后端分离,前后端解耦

...net/fuzhongmin05推荐:https://www.xttblog.com/?p=51781、背景前后端分离已成为互联网项 查看详情

django前后端不分离&前后端分离&模板引擎(代码片段)

一、前后端不分离与前后端分离的比较前后端不分离特点:后端需控制数据的展示前后端不分家,耦合严重返回的是HTML页面,适应性、拓展性差只能用于浏览器,其它终端不匹配前后端分离的特点:当前主流后端只对数据进行... 查看详情