騰訊云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 應用程序。下圖 顯示了新的解決方案體系結構:

2d6567be846b031d41146ccd9c78b077.png

雖然 eShopOnDapr 側重于 Dapr,但體系結構也進行了簡化。

  1. Blazor WebAssembly 上運行的單頁應用程序將用戶請求發送到 API 網關。

  2. API 網關從前端客戶端抽象出后端核心微服務。它是使用?Envoy(一個高性能的開放源代碼服務代理)實現的。Envoy 將傳入請求路由到后端微服務。大多數請求都是簡單的 CRUD 操作(例如,從目錄中獲取品牌列表),通過直接調用后端微服務進行處理。

  3. 其他請求在邏輯上更加復雜,需要多個微服務調用協同工作。對于這些情況,eShopOnDapr 實現了聚合器微服務,用于在完成操作所需的那些微服務之間編排工作流。

  4. 核心后端微服務實現了電子商務商店所需的功能。每個微服務都是獨立存在的。按照廣泛接受的域分解模式,每個微服務都隔離一個特定的業務功能:

  • 購物籃服務管理客戶的購物籃體驗。

  • 目錄服務管理可供銷售的產品項。

  • 標識服務管理身份驗證和標識。

  • 訂單處理服務處理下達訂單和管理訂單的所有方面。

  • 付款服務處理客戶的付款。

每個微服務都遵循最佳做法,維護其自己的持久性存儲。應用程序不共享單個數據存儲。

最后,事件總線包裝 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 的特性聲明:

c5832f92fd107694882a1b955a045e56.png

保存后,到該文件夾deploy\k8s\helm下 運行以下命令:

helm install --set hostName=eshopondapr.weyhd.com myeshop .
過了一會兒,您應該能夠在 http://eshopondapr.weyhd.com/status 訪問eShopOnDapr健康UI。
當所有微服務都正常運行時,可以導航到 http://eshopondapr.weyhd.com/ 以查看 eShopOnDapr UI。

fdd609eb5aa1d0816e99503f4e9e94dc.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284818.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284818.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284818.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[轉]一往無前 | 小米十周年,雷軍公開演講全文

2020年8月11日19:30,小米十周年,雷軍公開演講如約而至。在近3小時的演講中,雷軍用20個故事回顧了小米過去的熱血10年,也展望了新的10年: - 創新之火將會照亮每個瘋狂的想法,小米將成為工程師向往的圣地。 -…

JAVA單例之我見

為什么80%的碼農都做不了架構師?>>> 單例模式作為設計模式中最簡單的一種,是一個被說爛了的東西。但是在項目中還是會發現關于單例模式的一些錯誤實現,可見單例也并不是我們想象的那么簡單。最近陸陸續續看了幾篇關于單例的博客&…

「劉一哥GIS」系列專欄《QGIS入門實戰精品教程(配套案例數據)》

「劉一哥GIS」系列專欄《QGIS入門實戰精品教程(配套案例數據)》全新上線了,歡迎廣大GISer朋友關注,一起探索GIS奧秘,分享GIS價值! 本專欄以實戰案例的形式,深入淺出地介紹了QGIS的基本使用方法&…

MyEclipse的Git配置

1.下載:git的插件egit 并解壓 插件 下載地址:http://www.eclipse.org/egit/download/ 所有版本:http://wiki.eclipse.org/EGit/FAQ#Where_can_I_find_older_releases_of_EGit.3F 2.在MyEclipse安裝目錄下的dropins文件夾下創建egit文件夾 3.…

ASP.NET Core 定時刷新第三方 Token

前言在《ASP.NET Core 自動刷新JWT Token》中我們實現了為客戶端自動提供最新的Token。但是,當我們的 ASP.NET Core 應用需要調用第三方 API 時,如何更優雅地刷新第三方提供的 Token 呢?思路我們可以在啟動時就獲取第三方提供的 Token 并保存…

VSCode 插件開發實例(WebView):微信讀書 ^-^邊擼代碼邊看小說^-^

最終效果 主要代碼 package.json {"name": "WeReadForVSCodeJackieZheng","repository": {"type": "git","url": "https://github.com/JackieZheng/WeReadForVSCode.git"},"displayName": &q…

【QGIS入門實戰精品教程】4.7:QGIS如何將矢量數據轉為GeoJSON格式?

本文以案例的形式,講述在QGIS專業軟件中,將矢量數據轉為GeoJSON的方法。 擴展閱讀: 【ArcGIS風暴】如何將矢量數據(點、線、面)折點坐標轉為GeoJSON格式? 在QGIS中,可以直接將數據導出為GeoJSON格式。具體操作方法是:右鍵矢量數據圖層→導出圖層→到文件,如下圖所示:…

Git的純命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤銷更新,分支的創建/切換/更新/提交/合并,代碼沖突...

Git的純命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤銷更新,分支的創建/切換/更新/提交/合并,代碼沖突 這篇是接著上篇分布式版本庫——Windows下Git的環境部署以及在Git…

掌握jQuery插件開發

在實際開發工作中,總會碰到像滾動,分頁,日歷等展示效果的業務需求,對于接觸過jQuery以及熟悉jQuery使用的人來說,首先想到的肯定是尋找現有的jQuery插件來滿足相應的展示需求。目前頁面中常用的一些組件,都…

List 分頁加載數據控制機制

分頁加載是一種應用很廣泛的數據展示控制機制,相信絕大多數開發者對于這一套機制都非常熟悉。這篇文章的主要目的結合實際的使用場景,對以往在開發中遇到一些概念進行梳理,歸納的同時加深理解,也希望能幫助更多剛剛接觸到開發的同…

【QGIS入門實戰精品教程】3.3:QGIS如何打開ArcGIS創建的文件數據庫(GDB)?

在行業應用中,GIS地理空間數據往往存儲在ESRI ArcGIS的文件地理數據庫(File GeodataBase),因此,ArcGIS與QGIS的數據交互、共享就顯得非常重要。QGIS3可以直接打開File GDB數據,并對數據進行顯示、查看、處理等操作。具體的步驟如下: 相關閱讀:【QGIS入門實戰精品教程】3…

.NET 6 Linux 系統服務 Systemd (案例版)

.Net Core Windows 系統服務,之前已經寫過了,但是,對于Linux的系統服務,卻沒有寫過,主要是因為,大部分Linux的.Net服務都直接Docker了,當然,不排除有這種使用的,可能搞成…

封裝一個Array 數據 綁定 html select 方法

/** * * param {} select select控件 * param {} nodes Array數據 * param {} value value綁定項 * param {} text text綁定項 * param {} prompt 選擇提示信息 * returns {} */ function bindSelect(select, nodes, value, text, prompt) {select.empty();if (prom…

XmlParser和HtmlParser

經常要用的Xml和Html解決,實際上這個領域也有非常好的解決方案。 相對來說現在各種開源的Xml解析功能比較豐富,機制也比較靈活,但是由于他功能比較完善,干的事情比較多,所以性能方面也慢一點;另外&#xff…

【QGIS入門實戰精品教程】3.2:QGIS如何打開ArcGIS創建的個人數據庫(MDB)?

文章目錄 1. 下載并安裝Microsoft Access 2010數據庫引擎2. 配置系統環境變量3. 打開mdb數據庫【相關閱讀】 【QGIS入門實戰精品教程】005:QGIS如何打開ArcGIS創建的文件數據庫(GDB)? 1. 下載并安裝Microsoft Access 2010數據庫引擎 https://www.microsoft.com/zh-cn/down…

SharedPreferences操作數據

SharedPreferences是一個簡單輕量的android存儲數據類。適合保存配置信息等。是以XML方式存儲的。 存儲數據 SharedPreferences sharedPreferencesgetSharedPreferences("test", Context.MODE_PRIVATE);sharedPreferences.edit().putString("userName",&qu…

[轉]IaaS、PaaS、SaaS、CaaS、MaaS五者的區別

云計算構架圖 很明顯,這五者之間主要的區別在于第一個單詞,而aaS都是as-a-service(即服務)的意思,這五個模式都是近年來興起的,且這五者都是云計算的落地產品,所以我們先來了解一下云…

使用java開發簡單的mis系統所需的技術

開發mis系統用到的技術 1. b/s架構:就broser/server,瀏覽器/服務器的說法。服務器端要運行tomcat,提供鏈接數據庫服務供java代碼讀寫數據,這個可以在eclipse中配置運行。瀏覽器則解釋jsp或html格式中的標記元素,用于顯…

聊聊 C++ 中的四種類型轉換符

一:背景 在玩 C 的時候,經常會用 void* 來指向一段內存地址開端,然后再將其強轉成尺度更小的 char* 或 int* 來丈量一段內存,參考如下代碼:int main() {void* ptr malloc(sizeof(int) * 10);int* int_ptr (int*)ptr;…

【QGIS入門實戰精品教程】3.1:QGIS如何連接SQL Server數據庫?

文章目錄 軟件必備測試SQL Server服務是否啟動QGIS與SQL Server建立連接軟件必備 SQL Server 2008 R2QGIS 3.22.3測試SQL Server服務是否啟動 打開SQL Server配置管理器,查看MSSQLSERVER服務的啟動情況。