腾讯云EKS 上部署 eshopondapr
腾讯云容器服务(Tencent Kubernetes Engine,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩展了腾讯云的云硬盘、负载均衡等 kubernetes 插件,为容器化的应用提供高效部署、资源调度、服务发现和动态伸缩等一系列完整功能,解决用户开发、测试及运维过程的环境一致性问题,提高了大规模容器集群管理的便捷性,帮助用户降低成本,提高效率。容器服务提供免费使用,涉及的其他云产品另外单独计费。
对于中小规模的应用来说采用TKE的 弹性集群是比较经济的一个方案,弹性容器服务(Elastic Kubernetes Service,EKS)是腾讯云容器服务推出的无须用户购买节点即可部署工作负载的服务模式。弹性容器服务 EKS 完全兼容原生 Kubernetes,支持使用原生方式购买及管理资源,按照容器真实使用的资源量计费。弹性容器服务 EKS 还扩展支持腾讯云的存储及网络等产品,同时确保用户容器的安全隔离,开箱即用。
这篇文章主要向你介绍如何在EKS上面部署基于Dapr的应用程序,我们选择了Dapr 参考应用程序eshopondapr 作为示例。
几年前,Microsoft 与技术领先的社区专家合作发布了一本受欢迎的指导书,标题为适用于容器化 .NET 应用程序的 .NET 微服务。这本书深入探讨了构建分散式应用程序的原则、模式和最佳做法。 其中包括一个功能齐全的微服务参考应用程序,展示了体系结构概念。 名为 eShopOnContainers 的应用程序托管了一个电子商务店面,该店面销售各种商品,包括服装和咖啡杯。 该应用程序在 .NET 中构建,是跨平台的,可以在 Linux 或 Windows 容器中运行。随着Dapr的发布,eShop 的一个更新版本。 它就是 eShopOnDapr, 同时还配套了一本电子书:面向 .NET 开发人员的 Dapr。 此更新通过集成 Dapr 构建基块来改进早期 eShopOnContainers 应用程序。 下图 显示了新的解决方案体系结构:
虽然 eShopOnDapr 侧重于 Dapr,但体系结构也进行了简化。
Blazor WebAssembly 上运行的单页应用程序将用户请求发送到 API 网关。
API 网关从前端客户端抽象出后端核心微服务。 它是使用 Envoy(一个高性能的开放源代码服务代理)实现的。 Envoy 将传入请求路由到后端微服务。 大多数请求都是简单的 CRUD 操作(例如,从目录中获取品牌列表),通过直接调用后端微服务进行处理。
其他请求在逻辑上更加复杂,需要多个微服务调用协同工作。 对于这些情况,eShopOnDapr 实现了聚合器微服务,用于在完成操作所需的那些微服务之间编排工作流。
核心后端微服务实现了电子商务商店所需的功能。 每个微服务都是独立存在的。 按照广泛接受的域分解模式,每个微服务都隔离一个特定的业务功能:
- 购物篮服务管理客户的购物篮体验。
- 目录服务管理可供销售的产品项。
- 标识服务管理身份验证和标识。
- 订单处理服务处理下达订单和管理订单的所有方面。
- 付款服务处理客户的付款。
每个微服务都遵循最佳做法,维护其自己的持久性存储。 应用程序不共享单个数据存储。
最后,事件总线包装 Dapr 发布/订阅组件。 它实现了跨微服务异步发布/订阅消息传送。 开发人员可以插入任何 Dapr 支持的消息代理组件。
接下来我们参照 Run eShopOnDapr on an external Kubernetes cluster 在EKS 上部署eshopondapr 。当然您可以在任何外部 Kubernetes 集群上运行 eShopOnDapr,例如 Azure Kubernetes Service 或 腾讯云 EKS。以下步骤介绍如何将 eShopOnDapr 部署到 腾讯云EKS 集群:
1、创建一个EKS 集群,这部分可以参考腾讯云的文档 创建EKS 集群。
2、配置以连接到新集群,这部分可以参考腾讯云的文档 连接EKS 集群。
3、安装NGINX入口控制器,这部分可以参考腾讯云的文档 Nginx 类型 Ingress。 这里要注意的一点是 tke官方文档,使用annotation的方式,在metadata.annotation中声明kubernetes.io/ingress.class: "nginx",来指定您所使用的nginx ingress实例。ehsopondapr的 helm 包里面声明ingress实例,是使用的spec.ingressClassName这个字段进行的,这里后面要进行调整。
4、开通EKS 集群访问外网。默认的弹性容器服务(Elastic Kubernetes Service,EKS)访问不了外网,支持通过配置 NAT 网关 和 路由表 来实现集群内服务访问外网,具体文档参见 通过 NAT 网关访问外网。如果没有开通访问外网,在EKS 中拉取不了mcr.microsoft.com/azure-sql-edge:latest。 这个repo 不是 docker hub,腾讯云的TKE 默认对docker hub做了内部加速。
5、将 Dapr 部署到集群(有关详细信息,请参阅将 Dapr 安装到 Kubernetes 集群中操作方法):
6、获取集群负载均衡器的公共终端节点的 IP 地址
kubectl get services nginx-ingress-nginx-controller -n kube-system -o=jsonpath='{.status.loadBalancer.ingress[0].ip}'
7、配置 DNS :eshopondapr.weyhd.com ,使用该别名来访问 Kubernetes 集群, 这一步可以配置你自己的域名 。
8、eShopOnDapr 包括一个 Helm 图表,以便轻松部署到 Kubernetes 集群。这里我们要修改一下 Ingress 的特性声明:
保存后,到该文件夹deploy\k8s\helm下 运行以下命令:
helm install --set hostName=eshopondapr.weyhd.com myeshop .
过了一会儿,您应该能够在 http://eshopondapr.weyhd.com/status 访问eShopOnDapr健康UI。
当所有微服务都正常运行时,可以导航到 http://eshopondapr.weyhd.com/ 以查看 eShopOnDapr UI。
腾讯云EKS 上部署 eshopondapr的更多相关文章
- PHP--腾讯云服务器上部署LNMP环境
本文参考 云服务器上部署Laravel的实例教程 腾讯云 创建 Laravel5.4 项目 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PH ...
- 怎样将本地web数据库项目部署到腾讯云服务器上?
怎样将本地web数据库项目 部署到腾讯云服务器上? 1.本地计算机的工作: 1.1用eclipse或者myeclipse做好一个web项目,可以只做一个数据库的增删改查,本地部署到Tomcat服务器, ...
- 怎样将本地web项目部署到腾讯云服务器上?
怎样将本地web项目部署到腾讯云服务器上? 1.本地计算机的工作: (1).用eclipse新建一个web项目,然后在webcontent下新建一个index.html,然后在本地部署到Tomcat服 ...
- unigui在阿里云服务器上部署
unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...
- 在腾讯云服务器上体验Docker
版权声明:本文由姚俊刚原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/85 来源:腾云阁 https://www.qclou ...
- Navicat连接腾讯云服务器上的数据库
下面介绍Navicat连接腾讯云服务器上的数据库的两种方法: 方法一:[不需要修改相关远程客户端连接权限] 点击安装好的桌面navicat图标,进入后如下图: 连接方法:ssh中输入自己服务器的外网i ...
- 将禅道部署到腾讯云linux 上
部署环境 :linux(腾讯云),用到了 xshell FileZilla 使用禅道集成环境lampp直接部署 1.首先下载 lampp j集成环境包.https://sourceforge.ne ...
- 在腾讯云服务器上实现java web项目部署
----------------------------博主讲废话 几天前搞了一台体验七天的腾讯云服务器.之前已实现在新浪云下java web项目的部署,不需要自己搭建环境,比较简单,而且自 己也偷懒 ...
- 腾讯云centos 7部署 dotnetcore+Angular2 实践
版权声明:本文由屈政斌原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/239 来源:腾云阁 https://www.qclo ...
随机推荐
- C#自定义配置文件(一)
C#自定义配置文件 .NET程序中,经常使用Config文件来配置应用程序中经常使用的值,比如数据库连接字符串.最近项目遇到一个需要配置好多节点在配置文件中的需求.为了使配置节点整洁易维护,在代码调用 ...
- Hadoop(四)C#操作Hbase
Hbase Hbase是一种NoSql模式的数据库,采用了列式存储.而采用了列存储天然具备以下优势: 可只查涉及的列,且列可作为索引,相对高效 针对某一列的聚合及其方便 同一列的数据类型一致,方便压缩 ...
- Linux 运维工程师面试问答录(推荐阅读)
一个执着于技术的公众号 本文整理了一些比较常见的 Linux 相关的面试题目,该问答录主要分为基础知识篇和服务器篇.内容主要涉及 Linux 基本原理.常用命令操作.服务器应用等部分的内容. Linu ...
- 《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动 ...
- GO 语言入门(一)
GO 语言入门(一) 本文写于 2020 年 1 月 18 日 Go 由 Google 工程师 Robert Griesemer,Rob Pike 和 Ken Thompson 设计的一门编程语言,第 ...
- zabbix 添加监控交换机温度item
首先需要获取到交换机温度对应的OID,可以官方文档进行查询(多为私有OID),以盛科为例 官方文档查询到温度节点对于的OID为 10.0.3.102 1.3.6.1.4.1.27975.37.1.3. ...
- 提升站点SEO的7个建议
1.使用HTTPS 谷歌曾发公告表示,使用安全加密协议(HTTPS),是搜索引擎排名的一项参考因素. 所以,在域名相同情况下,HTTPS站点比HTTP站点,能获得更好的排名. 在网络渠道分发或合作上, ...
- 设置VisualStudio以管理员身份运行
以vs2013为例 vs右键属性 ----- 找到目标位置如下 "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\ID ...
- CentOS6安装PLEX
CentOS6安装PLEX 一.安装使用PLEX 1.1 安装 1)下载 https://www.plex.tv/downloads/ plexmediaserver-1.11.3.4803-c40b ...
- Django-request的常见属性
瞧一瞧,看一看,Django时,获取Request的各个属性. Request的常见属性 request.META 返回一个python字典.它包含了所有的HTTP请求信息.如下代码: 点击查看代码 ...