腾讯云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 应用程序。 下图 显示了新的解决方案体系结构:

腾讯云EKS 上部署 eshopondapr

虽然 eShopOnDapr 侧重于 Dapr,但体系结构也进行了简化。

  1. Blazor WebAssembly 上运行的单页应用程序将用户请求发送到 API 网关。
  2. API 网关从前端客户端抽象出后端核心微服务。 它是使用 Envoy(一个高性能的开放源代码服务代理)实现的。 Envoy 将传入请求路由到后端微服务。 大多数请求都是简单的 CRUD 操作(例如,从目录中获取品牌列表),通过直接调用后端微服务进行处理。
  3. 其他请求在逻辑上更加复杂,需要多个微服务调用协同工作。 对于这些情况,eShopOnDapr 实现了聚合器微服务,用于在完成操作所需的那些微服务之间编排工作流。
  4. 核心后端微服务实现了电子商务商店所需的功能。 每个微服务都是独立存在的。 按照广泛接受的域分解模式,每个微服务都隔离一个特定的业务功能:
  5. 购物篮服务管理客户的购物篮体验。
  6. 目录服务管理可供销售的产品项。
  7. 标识服务管理身份验证和标识。
  8. 订单处理服务处理下达订单和管理订单的所有方面。
  9. 付款服务处理客户的付款。
  10. 每个微服务都遵循最佳做法,维护其自己的持久性存储。 应用程序不共享单个数据存储。
  11. 最后,事件总线包装 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 的特性声明:

腾讯云EKS 上部署 eshopondapr

保存后,到该文件夹deploy\k8s\helm下 运行以下命令:

helm install --set hostName=eshopondapr.weyhd.com myeshop .

腾讯云EKS 上部署 eshopondapr

Original: https://www.cnblogs.com/shanyou/p/16469054.html
Author: 张善友
Title: 腾讯云EKS 上部署 eshopondapr

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547791/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 本机ip、127.0.0.1和0.0.0.0区别及内环流量

    本机ip、127.0.0.1和0.0.0.0区别及内环流量 所谓内环流量 简单的说是指 计算机内部,程序间通讯产生的流量,或者叫 本地流量,对应的是来自网络的流量。 比如,你安装了…

    技术杂谈 2023年5月31日
    093
  • 如何在用户离开页面时可靠地发送 HTTP 请求

    如何在用户离开页面时可靠地发送 HTTP 请求 有几次,我需要发送一个请求,其中包含一些数据,以便在用户执行导航到其他页面或提交表单之类的操作时进行记录。请考虑以下人为示例:单击链…

    技术杂谈 2023年5月31日
    0101
  • 目标和现状之间都是问题

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月31日
    0100
  • Windows下_findnext()异常问题

    _findnext()在调试时会出现异常现象,第一个参数”路径句柄”,返回的类型为intptr_t(long long),要改为long long或者int…

    技术杂谈 2023年7月24日
    089
  • 【4】2022年6月

    6月15日 今早10点教师资格面试成绩出来了,幸好一次性通过。笔面都一次性通过,比我预想的顺利,谢谢各位考官的照顾。 我知道自己面试的时候既感冒又受伤,状态是不好的,发挥不了真实的…

    技术杂谈 2023年7月10日
    064
  • 编程技巧│浏览器 Notification 桌面推送通知

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年7月11日
    078
  • 方法是什么

    什么是方法? System.out.println(),这是方法,输出语句的方法 这句语句就是调用系统System类中的标准输出对象out中的println()方法。 (类+对象+…

    技术杂谈 2023年6月21日
    0140
  • 单线程的Redis有哪些慢动作?

    前言 为什么 Redis 这么火? 键和值的保存形式? 为什么哈希表操作变慢了? 集合的操作效率? 有哪些数据结构? 不同操作的复杂度? 总结 现在一提到 Redis的第一反应就是…

    技术杂谈 2023年7月23日
    058
  • springboot 整合 jsr-303 数据校验

    数据校验 element前端自定义校验规则 :rules=”dataRule” 绑定数据校验规则方法 * firstLetter: [ { validato…

    技术杂谈 2023年7月25日
    076
  • 基于rabbitmq延迟插件实现分布式延迟任务

    承接上文基于redis,redisson的延迟队列实践,今天介绍下基于rabbitmq延迟插件rabbitmq_delayed_message_exchange实现延迟任务。 一、…

    技术杂谈 2023年7月11日
    095
  • 003Linux查看文件内容的5个命令姿势

    Linux 中查看文件内容常用的有如下 5 个命令: cat cat 命令常用格式示例: cat [文件名] # 输出文件所有内容到屏幕上。 cat [文件1] [文件2] # 输…

    技术杂谈 2023年7月10日
    091
  • button按钮

    *button按钮私有属性 属性 说明 value button中的文案 posted @2020-09-04 16:53 tinyphp Views(246 ) Comments…

    技术杂谈 2023年6月1日
    098
  • HTML5 Canvas Games All In One

    HTML5 Canvas Games All In One Canvas text window.onload = function() { var canvas = docume…

    技术杂谈 2023年6月1日
    091
  • MySQL建表语句生成Golang代码

    1. 背景 对于后台开发新的需求时,一般会先进行各种表的设计,写各个表的建表语句 然后根据建立的表,写对应的model代码、基础的增删改查代码(基础的增删改查服务可以划入DAO(D…

    技术杂谈 2023年6月21日
    0120
  • 018 磁盘 IO 性能监控/压测工具(sar、iotop、fio、iostat)

    1 sar 命令查看当前磁盘 IO 读写 (1)sar 工具安装 (2)sar 查看磁盘IO读写情况 2 iotop 命令查看磁盘 IO 性能 (1)iotop 工具安装 (2)i…

    技术杂谈 2023年7月10日
    090
  • Hadoop(五)C#操作Hive

    Hive Hive将HiveQL(类sql语言) 转为MapReduce,完成数据的查询与分析,减少了编写MapReduce的复杂度。它有以下优点: 学习成本低:熟悉sql就能使用…

    技术杂谈 2023年7月24日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球