腾讯云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)

大家都在看

  • CentOs安装Nginx

    安装 gcc pcre pcre-devel zlib OpenSSL 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需…

    技术杂谈 2023年7月10日
    0109
  • excel表格宏的启用

    这两张图片都可以启用宏,任何一种方式都可以 方式1 方式2 posted @2022-03-26 16:27 LiuYanYGZ 阅读(383 ) 评论() 编辑 Original…

    技术杂谈 2023年5月31日
    0155
  • 日本开放Wi-Fi 6E认证

    2022年9月2日,日本MIC(総務省)发布了”電波法施行規則等の一部を改正する省令(令和4年総務省令第59号)”省令,更新了Wi-Fi 6E Band 5…

    技术杂谈 2023年6月21日
    0116
  • 在边缘计算场景中使用Dapr

    Dapr 是分布式应用程序可移植、事件驱动的运行时, 这里有几个关键字,我们拆开来看一下: 分布式: 代表共享或是分散,在云原生应用上体现为微服务,在边缘计算场景中代表分散的模块,…

    技术杂谈 2023年5月31日
    0114
  • Mac php5.6安装swoole

    下载 1.10.5 (支持php5.6的最新版本) https://pecl.php.net/package/swoole 第一步 phpize sudo /opt/homebre…

    技术杂谈 2023年5月30日
    0114
  • Python 字符串操作常用知识点

    引切片:通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。 a = ‘ABCDEFGHIJK’ print(a[0:3]) # print(a[:…

    技术杂谈 2023年6月21日
    0110
  • Can’t exec “aclocal”: No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.

    今天执行:autoreconf -fvi的时候出现如下错误: autoreconf: Entering directory `.’ autoreconf: configure.in…

    技术杂谈 2023年6月1日
    0181
  • Apache APISIX云原生网关介绍

    Apache APISIX介绍 API网关的需求两个基本功能,突出了对API的需求,即普通网络服务器无法提供的东西。 1)复杂的速率限制 如果支付了订阅费用,可能会访问一个有常规内…

    技术杂谈 2023年6月1日
    0123
  • go-select 机制

    select 的用法与 switch 语言非常类似,由 select 开始一个新的选择块,每个选择条件由 case 语句来描述。 与 switch 语句相比,select 有比较多…

    技术杂谈 2023年7月11日
    077
  • EMAS Serverless到底有多便利?

    EMAS Serverless 简介 EMAS Serverless 是阿里云提供的基于Serverless技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含…

    技术杂谈 2023年7月10日
    098
  • H3C CSMA/CA

    posted @2019-09-22 22:24 樊伟胜 阅读(339 ) 评论() 编辑 Original: https://www.cnblogs.com/fanweishen…

    技术杂谈 2023年5月30日
    0113
  • 华为Ensp拓扑,使用MSTP、OSPF、DHCP、VRRP、链路聚合、CHAP

    OSPF+DHCP+VRRP+Eth-trunk+PPP(CHAP)+MSTP 实验目标: LSW1和LSW2核心交换机互为备份,配置链路聚合,设备冗余设计,LSW1和LSW2作为…

    技术杂谈 2023年6月21日
    0128
  • 网盘搜索

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

    技术杂谈 2023年5月31日
    0116
  • Bash编程中对字符串的操作

    Bash的字符串操作 String="Hello World" #获取字符串长度,获取字符长度的变量调用应该使用${},这里大括号是必须的 #例1-1 echo…

    技术杂谈 2023年6月21日
    0121
  • [学习笔记]Java字符和字符串

    在Java中,字符和字符串是两种不同的数据类型; 字符 (char) 是一种基本数据类型,用单引号’ 括起来; 一个char类型可以保存一个标准的ASCII字符或一个U…

    技术杂谈 2023年7月24日
    0111
  • 基础前缀和和差分

    前缀和用于在O(1)的时间内求某一给定的数组的其中任意长度的和,它其实就是对一给定了的数组计算得出一个前缀和数组,再利用这个计算出来的数组去求某一段的和 例题链接 #include…

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