Dapr学习(4)之eShopOnDapr部署(Rancher2.63&k3s)
本篇主要讲述一下github上基于Dapr实现的商城demo在(K8s or K3s)环境中的部署实践,本文环境基于k3s&rancher2.6.3
1、eShopOnDapr源代码及概述
源代码地址:
方案体系结构如下图:

说明:
1. 前后端分离项目,前端Blazor项目,系统入口,发送api请求到apigateway
2. API 网关从前端客户端抽象出后端核心微服务,为后端调用总入口。 它是使用 Envoy(一个高性能的开放源代码服务代理)实现的。 Envoy 将传入请求路由到后端微服务。 大多数请求都是简单的 CRUD 操作(例如,从目录中获取品牌列表),通过直接调用后端微服务进行处理。通过转换uri请求地址,通过Dapr的边车就行通信
3. 核心后端微服务:购物车,商品管理,订单管理,支付管理
4. 事件总线包装 Dapr 发布/订阅组件。 它实现了跨微服务异步发布/订阅消息传送。
ApiGateway Envoy重写uri截图如下:

2、环境准备(k3s&rancher2.6.3)
关于Dapr安装见前面文章:https://www.cnblogs.com/kunwn/p/16271944.html
3、eShopOnDapr部署
下载eShopOnDapr源代码,目录中有deploy文件夹,参考k8s部署模板文件

拷贝文件夹到k3s任意节点上(安装有helm)

方法1:命令行,进入到eShopOnDapr文件夹里,执行命令部署:
部署:sudo helm install --set hostName=eshop.local.com myeshop .
卸载:sudo helm uninstall myeshop
指定路径卸载:sudo helm uninstall myeshop /eShopOnDapr

方法2:命令行,本地chart压缩包,执行命令部署:
压缩包:sudo helm package eShopOnDapr
部署:sudo helm install eshop eshopondapr-1.0.0.tgz #注意:压缩包名称改为小写,否则会报错
卸载:sudo helm uninstall eshop eshopondapr-1.0.0.tgz

部署成功如下图:

通过rancher界面查看部署状态,等待一段时间,看所有的pod都已创建完毕

我们部署的域名为:eshop.local.com myeshop,我们通过修改hosts文件,指定地址;指定地址:192.168.231.133 eshop.local.com myeshop
sudo kubectl get ingress -n eshopondapr

因为k3s默认的ingress controller使用的traefik,所以我们需要变动template模板文件都设置为traefik;我本地部署集群不能安装nginx ingress controller,不知何故,应该是有冲突的;我想如果是k3s管理的k8s集群,安装nginx ingress controller应该是没问题的;资源有限,只能traefik了,况且如果卸载了traefik,就会导致rancher ui不能使用,慎卸
通过地址访问eshop:http://eshop.local.com/ ,发现报错

点击LOGIN,可以跳到登录界面,且可以登录;证明identity服务是可以访问的

只有通过apigateway调用后端各个微服务的api是报错的,一直没有解决,有traefik配置经验的大佬可以给与指点;如果通过nodeport暴露catalog api服务,是可以调通的,应该是还gateway的配置上出了问题


部署文件模板已上传到地址:https://gitee.com/xujk-27400861/eshopondapr-k3s-template
4、traefik dashboard配置
port-forward 直接端口映射到本地访问,生产环境推荐
sudo kubectl port-forward $(sudo kubectl get pods --selector "app.kubernetes.io/name=traefik" --output=name -n kube-system) 9000:9000 -n kube-system


备注:访问本地的 localhost:9000/dashboard/ 即可,dashboard 后边的 /一定要有,否则会报 404;且只能虚拟机内部(k3s节点)查看,不能使用IP地址访问
5、K8s删除无用镜像
sudo crictl images | awk '{print $3}' | xargs crictl rmi #参考命令
sudo crictl images | grep 'eshopdapr' | awk '{print $3}' | xargs sudo crictl rmi # 删除eshopdapr相关的镜像
Dapr学习(4)之eShopOnDapr部署(Rancher2.63&k3s)的更多相关文章
- Dapr学习(2)之Rancher2.63(k8s&k3s)环境安装Dapr
前言:前面写过一篇关于dapr入门安装的文章,self-host模式,使用docker安装的本地调试环境,并进行了测试:本篇介绍k8s方式安装dapr,此文主要基于的环境是k3s,通过rancher2 ...
- Java学习-032-JavaWeb_001 -- Tomcat环境部署及基本配置
首先到 Tomcat 官网,下载对应的版本,我本机的系统是 WIN7 64BIT 的,因而我选择的是64bit 的zip包,如下图所示:
- ActionBarSherlock学习笔记 第一篇——部署
ActionBarSherlock学习笔记 第一篇--部署 ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...
- OGG学习笔记04-OGG复制部署快速参考
OGG学习笔记04-OGG复制部署快速参考 源端:Oracle 10.2.0.5 RAC + ASM 节点1 Public IP地址:192.168.1.27 目标端:Oracle 10.2.0.5 ...
- Docker学习-Kubernetes - 集群部署
Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有Dock ...
- k8s学习笔记(2)- Rancher2.x部署springboot应用及高可用、扩容
前言:上一篇介绍基于k3s环境,使用kubectl部署springboot简单项目应用,本篇介绍基于rancher2.x部署应用程序 1.上篇已部署一个springboot应用,我们可以通过ranch ...
- dapr学习:dapr介绍
该部分主要是给出学习dapr的入门,描述dapr全貌告诉你dapr是啥以及介绍dapr的主要功能与组件 该部分分为两章: 第一章:介绍dapr 第二章:调试dapr的解决方案项目 1. 介绍dapr ...
- Activiti工作流学习(一)部署对象和流程定义
一.前言 前一段时间在工作中,使用了流程审批,对api的调用非常不熟悉,都是调用别人写好的接口在界面上进行显示,基本了解了流程审批的主要步骤,现对流程审批进行学习,主要是调用api进行CRUD操作,感 ...
- ThinkPHP 学习笔记 ( 一 ) 项目部署:应用部署方式与模块分组部署方式
/** * ThinkPHP version 3.1.3 */ ThinkPHP ( 官方网站:http://www.thinkphp.cn/ ) 目前最新版本是 3.2.2,它要求 PHP 的版本高 ...
随机推荐
- 140_Power BI&Power Pivot之降维展示同类型比较
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 最近一段时间比较忙,几乎没有时间更新网站内容,今天刚好周末,更新一个简单的需求. 上效果图: 在我们日常做对比分 ...
- spring-boot @Async注解 解决异步多线程入库的问题
前言在开发过程中,我们会遇到很多使用线程池的业务场景,例如定时任务使用的就是ScheduledThreadPoolExecutor.而有些时候使用线程池的场景就是会将一些可以进行异步操作的业务放在线程 ...
- Redis 中的原子操作(1)-Redis 中命令的原子性
Redis 如何应对并发访问 Redis 中处理并发的方案 原子性 Redis 的编程模型 Unix 中的 I/O 模型 thread-based architecture(基于线程的架构) even ...
- Solon 1.8.0 发布,云原生微服务开发框架
相对于 Spring Boot 和 Spring Cloud 的项目 启动快 5 - 10 倍 qps 高 2- 3 倍 运行时内存节省 1/3 ~ 1/2 打包可以缩小到 1/2 ~ 1/10(比如 ...
- 「ABC 249Ex」Dye Color
考虑停时定理. 初始势能为 \(\sum \Phi(cnt_i)\),末势能为 \(\Phi(n)\),我们希望构造这样一个 \(\Phi:Z\to Z\) 函数,使得每一次操作期望势能变化量为常数. ...
- 产品揭秘】来也Lead 2022产品亮点解读-RPA学习天地
2022年4月26日,来也举行新品发布会.作为技术人员,花里胡哨的我且不说,我且说技术相关.整体架构"概念"整个平台覆盖了智能自动化的全生命周期包含:业务理解.流程创建.随处运行. ...
- 拭目以待!JNPF .NET将更新.NET 6技术,同时上线 3.4.1 版本
2022年5月30日,福建引迈即将上线JNPF开发平台的.NET 6版本,在产品性能上做了深度优化,且极大的提升了工作效率,加强了对云服务的改进升级,全面提升用户的使用体验. JNPF是一个以PaaS ...
- MyBatis - MyBatis的层次结构
API接口层 规定了一系列接口,能够向外提供接口,对内进行操作. 数据处理层 负责SQL相关处理工作,如:SQL查找.SQL执行.SQL映射等工作. 基础支撑层 提供基础功能支撑,包括连接管理.事务管 ...
- CVPR2022 | 重新审视池化:你的感受野不是最理想的
前言 本文提出了一种简单而有效的动态优化池操作( Dynamically Optimized Pooling operation),称为DynOPool,它通过学习每一层感受野的最佳大小和形状来优化特 ...
- 前端1HTML
内容概要 前端简介 HTTP简介 HTTP协议 HTML简介 head内常见标签 body内基本标签 body内特殊符号 body内常见标签 列表标签 表格标签 内容详情 前端简介 # 1.什么是前端 ...