0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將微服務(wù)從Mesos DCOS遷移到Kubernetes

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Maulik N Shah ? 2022-07-10 10:10 ? 次閱讀

對于一些微服務(wù),數(shù)據(jù)傳輸和穩(wěn)定性會導(dǎo)致問題,特別是在用戶嘗試長時間獲取更大數(shù)據(jù)的情況下。設(shè)備能夠?qū)?shù)據(jù)推送到數(shù)據(jù)庫,但數(shù)據(jù)加載和顯示導(dǎo)致數(shù)據(jù)丟失或服務(wù)失敗。由于微服務(wù)的 I/O 更高,CPU 和內(nèi)存的更高使用率啟用了負載均衡器,并最終導(dǎo)致更高的計費。

我們決定重新設(shè)計編排并找到 Apache Mesos 的替代方案。Docker Swarm 和Kubernetes是領(lǐng)先且高度使用的容器編排工具,用于 DevOps 基礎(chǔ)設(shè)施管理工具。

在我們探索 Docker Swarm 和 Kubernetes 之前,我們定義了我們?nèi)绾问褂?Mesos。

阿帕奇梅索斯

它提供了以分布式方式運行容器化和非容器化服務(wù)的能力。Mesos 采用分布式內(nèi)核設(shè)計,因此 API 編程可以直接針對數(shù)據(jù)中心進行設(shè)計。在我們的案例中,配置為主/從的 MESOS DCOS 是基于數(shù)據(jù)庫請求并進行管理的。在服務(wù)失敗時,Mesos master 永遠不會自動重啟服務(wù),這增加了應(yīng)用程序的停機時間。

Mesos 面臨的挑戰(zhàn)

現(xiàn)有基礎(chǔ)設(shè)施經(jīng)常出現(xiàn)服務(wù)故障,導(dǎo)致最終用戶無法使用基礎(chǔ)設(shè)施、數(shù)據(jù)丟失和更高的 AWS 賬單。

現(xiàn)有基礎(chǔ)架構(gòu)和編排

云:AWS

CI/CD:詹金斯

編程語言:PythonJAVA、C、C++等。

源代碼:Github

部署策略:自動化+手動

基礎(chǔ)設(shè)施監(jiān)控:自動化 + 手動(定期執(zhí)行驗證步驟)

當(dāng)前的策略和工具

EC2 Auto Scaling 組

根據(jù) CPU 使用率進行縮放

EC2 上的 DCOS 微服務(wù)

Slack 和通過電話/電子郵件通知

其他工具/服務(wù):Splunk、Looker、HA Proxy、S3、Graphite、Grafana

挑戰(zhàn)

CPU 使用率會根據(jù)客戶和產(chǎn)品使用情況而波動

彈性伸縮后服務(wù)頻繁失敗

頻繁停機

頻繁的補丁

最終客戶因穩(wěn)定性和可用性而擔(dān)心數(shù)據(jù)丟失

由于多個 EC2 實例導(dǎo)致的高 AWS 賬單

碼頭工人群

Docker swarm 使用 Docker API 和網(wǎng)絡(luò)概念,因此我們可以輕松配置和使用它。它的架構(gòu)可以強有力地管理故障。在 Docker swarm 中,新節(jié)點可以作為工作節(jié)點或主節(jié)點加入現(xiàn)有集群。Docker Swarm 不允許集成第三方日志工具。與 Kubernetes 相比,Docker Swarm 在 AWS、Azure 和 Google Cloud 等不同云服務(wù)提供商上的輕松集成是不可用的。

Kubernetes

Kubernetes 易于配置且體積輕巧。在服務(wù)失敗的情況下,Kubernetes 會執(zhí)行自動縮放并保持服務(wù)可用。Kubernetes 用途廣泛且應(yīng)用廣泛。主要云服務(wù)為 Kubernetes 提供自定義 master 支持。

另請閱讀:關(guān)于 EKS(彈性 Kubernetes 服務(wù))部署的分步指南

由于 AWS 為 Kubernetes Master 提供了一個平臺,我們決定使用 EKS。

Amazon EKS 定價模型要求用戶為每個 EKS 集群承擔(dān) 0.20 美元/小時的額外費用。這讓我們思考,但是當(dāng)我們比較收益時,它不應(yīng)該像聽起來那么糟糕。作為用戶,我們在單個集群上設(shè)計和部署了多個具有不同命名空間和 VPC 范圍的應(yīng)用程序。

我們?yōu)橐粋€集群啟動了該流程,遷移了一項服務(wù),并在 Docker Swarm 和 Amazon EKS 上驗證了穩(wěn)定性。其他基礎(chǔ)設(shè)施已經(jīng)在 AWS 上,我們發(fā)現(xiàn) Docker Swarm 配置會非常耗時,并且需要付出很多努力來監(jiān)控和管理。

借助 EKS,我們得到了亞馬遜的支持和指導(dǎo),以設(shè)計和部署服務(wù)以及如何降低成本,因此我們決定使用 EKS。

從 Mesos 遷移到 Kubernetes

對于 EKS 上的環(huán)境創(chuàng)建、映射和部署,我們使用了 CloudFormation (YAML) 模板。

云形成

AWS CloudFormation 提供了一個基于 YAML 的自定義圖形界面來創(chuàng)建、管理和修改大量 AWS 資源,并映射它們的依賴關(guān)系。由于 CloudFormation 是 AWS 的一項服務(wù),因此任何新服務(wù)都可以使用。

諸如 Terraform 之類的選項是開源的,并且支持主要的云平臺以將基礎(chǔ)設(shè)施設(shè)置為代碼,但我們使用了 CloudFormation,因為我們在 AWS 上擁有一切。

EKS 如何提供幫助

使用 EKS 可以減少 AWS 賬單

更少的 EC2 實例

使用 EKS 進行自動縮放

EKS 監(jiān)控服務(wù)和警報服務(wù)

?新基建

將 EC2 實例從 15 個中型減少到 3 個大型

移除石墨

使用 EKS 自動縮放

減少 Datadog 和 Pager 任務(wù) 警報配置成本和復(fù)雜性

基于 Prometheus + Grafana 的 Alert 配置

數(shù)據(jù)狗

我們?yōu)?Datadog 配置了 CloudWatch 的擴展,用于監(jiān)控 EC2 實例和連接的 AWS 服務(wù)。我們在實例上安裝了 Datadog 代理,可以在 15 秒內(nèi)收集內(nèi)存、CPU、存儲、磁盤 I/O、網(wǎng)絡(luò)等的系統(tǒng)級指標(biāo)。

為了對 Kubernetes 集群進行額外的警報和監(jiān)控,我們配置了 Prometheus + Grafana。

Prometheus 幫助捕獲和保留 POD、容器、systemd 服務(wù)等數(shù)據(jù)。我們可以使用這些數(shù)據(jù)來分析應(yīng)用程序和環(huán)境的穩(wěn)定性和行為。

GRAFANA 使用 Prometheus 存儲的數(shù)據(jù),并提供統(tǒng)計數(shù)據(jù)和警報配置的圖形表示,以便于評估。

遷移后最佳實踐

維持 MTTR(平均響應(yīng)/解決時間)

列出關(guān)鍵情況并報告

立即行動

事故報告

根本原因分析

定義流程的持續(xù)改進

實現(xiàn)戰(zhàn)略

手動

定期執(zhí)行驗證步驟

觀察到意外行為時進行調(diào)試

按照 Runbook 的定義步驟

如果未在規(guī)定時間內(nèi)解決,請致電或發(fā)送電子郵件給開發(fā)支持團隊

記錄現(xiàn)有故障后,如果需要,重新啟動服務(wù)

自動化實用程序

使用 Jenkins + Selenium/Dynatrace 持續(xù)執(zhí)行定義驗證工具

增強 Python 腳本的驗證步驟覆蓋率

Slack 頻道的通知

傳呼義務(wù)

行動

15 分鐘內(nèi)未解決的電子郵件

如果在一小時內(nèi)未解決,則升級至 4 級

如果沒有解決,升級到 5 級

啟動并運行環(huán)境

最佳實踐

觀察環(huán)境幾個小時

創(chuàng)建根本原因分析文檔

獲得開發(fā)團隊確定的根本原因分析的批準(zhǔn)

從開發(fā)團隊收集分辨率信息

如果將來觀察到相同的 RCA,請立即采取行動以最大程度地減少停機時間

更新運行手冊以供將來參考

好處和應(yīng)用

在我們的案例中,AWS 賬單減少了約 40%,因為 EC2 數(shù)量從 15 個減少到 3 個

基于擴展配置的自動服務(wù)重啟有助于提高應(yīng)用程序的可用性

數(shù)據(jù)丟失和最終客戶升級減少

更高級的監(jiān)控方式,幫助 DevOps 工程師快速識別根本原因

結(jié)論

當(dāng)我們談?wù)撽P(guān)于我們案例的結(jié)論時,我們發(fā)現(xiàn) EKS 更有幫助,因為我們發(fā)現(xiàn)在編排更改后我們的應(yīng)用程序更加穩(wěn)定。借助 EKS,我們觀察到了服務(wù)穩(wěn)定性、自動擴展和負載平衡——這有助于我們保持產(chǎn)品可用性。同樣,Kubernetes 和 Mesos 都提供了將應(yīng)用程序部署為云上容器的設(shè)施。根據(jù)不同的應(yīng)用需求,解決方案可能會有所不同。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10807

    瀏覽量

    210853
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1473

    瀏覽量

    61750
  • AWS
    AWS
    +關(guān)注

    關(guān)注

    0

    文章

    427

    瀏覽量

    24290
收藏 人收藏

    評論

    相關(guān)推薦

    USCI模塊遷移到eUSCI模塊

    電子發(fā)燒友網(wǎng)站提供《USCI模塊遷移到eUSCI模塊.pdf》資料免費下載
    發(fā)表于 10-18 10:39 ?0次下載
    <b class='flag-5'>從</b>USCI模塊<b class='flag-5'>遷移到</b>eUSCI模塊

    TMS320VC5509遷移到TMS320VC5509A

    電子發(fā)燒友網(wǎng)站提供《TMS320VC5509遷移到TMS320VC5509A.pdf》資料免費下載
    發(fā)表于 10-17 10:38 ?0次下載
    <b class='flag-5'>從</b>TMS320VC5509<b class='flag-5'>遷移到</b>TMS320VC5509A

    TMS320C645X DSPEDMA 2.0版遷移到EDMA 3.0版

    電子發(fā)燒友網(wǎng)站提供《TMS320C645X DSPEDMA 2.0版遷移到EDMA 3.0版.pdf》資料免費下載
    發(fā)表于 10-16 11:29 ?0次下載
    TMS320C645X DSP<b class='flag-5'>從</b>EDMA 2.0版<b class='flag-5'>遷移到</b>EDMA 3.0版

    TMS320DM35x遷移到TMS320DM36x器件

    電子發(fā)燒友網(wǎng)站提供《TMS320DM35x遷移到TMS320DM36x器件.pdf》資料免費下載
    發(fā)表于 10-15 11:50 ?0次下載
    <b class='flag-5'>從</b>TMS320DM35x<b class='flag-5'>遷移到</b>TMS320DM36x器件

    OMAP3530遷移到AM37x

    電子發(fā)燒友網(wǎng)站提供《OMAP3530遷移到AM37x.pdf》資料免費下載
    發(fā)表于 10-14 11:39 ?0次下載
    <b class='flag-5'>從</b>OMAP3530<b class='flag-5'>遷移到</b>AM37x

    TMS320DM6467遷移到TMS320DM6467T

    電子發(fā)燒友網(wǎng)站提供《TMS320DM6467遷移到TMS320DM6467T.pdf》資料免費下載
    發(fā)表于 10-14 11:30 ?0次下載
    <b class='flag-5'>從</b>TMS320DM6467<b class='flag-5'>遷移到</b>TMS320DM6467T

    TMS320DM365遷移到TMS320DM368

    電子發(fā)燒友網(wǎng)站提供《TMS320DM365遷移到TMS320DM368.pdf》資料免費下載
    發(fā)表于 10-14 11:27 ?0次下載
    <b class='flag-5'>從</b>TMS320DM365<b class='flag-5'>遷移到</b>TMS320DM368

    TMS320DM6446 594MHz遷移到810MHz

    電子發(fā)燒友網(wǎng)站提供《TMS320DM6446 594MHz遷移到810MHz.pdf》資料免費下載
    發(fā)表于 10-14 11:18 ?0次下載
    <b class='flag-5'>從</b>TMS320DM6446 594MHz<b class='flag-5'>遷移到</b>810MHz

    TMS320C5515遷移到TMS320C5517

    電子發(fā)燒友網(wǎng)站提供《TMS320C5515遷移到TMS320C5517.pdf》資料免費下載
    發(fā)表于 10-12 10:40 ?0次下載
    <b class='flag-5'>從</b>TMS320C5515<b class='flag-5'>遷移到</b>TMS320C5517

    OMAP3530遷移到AM35x

    電子發(fā)燒友網(wǎng)站提供《OMAP3530遷移到AM35x.pdf》資料免費下載
    發(fā)表于 10-12 09:26 ?0次下載
    <b class='flag-5'>從</b>OMAP3530<b class='flag-5'>遷移到</b>AM35x

    IT資源遷移到服務(wù)器的關(guān)鍵因素

    隨著云計算技術(shù)的不斷成熟和普及,越來越多的企業(yè)選擇將他們的IT資源遷移到服務(wù)器上。這種轉(zhuǎn)變不僅可以降低成本、提高靈活性,還可以提升安全性和效率。本文深入探討IT資源
    的頭像 發(fā)表于 09-18 11:21 ?274次閱讀

    遷移到基于Arm STM32的MSPMO指南

    電子發(fā)燒友網(wǎng)站提供《遷移到基于Arm STM32的MSPMO指南.pdf》資料免費下載
    發(fā)表于 09-07 11:17 ?0次下載
    <b class='flag-5'>從</b><b class='flag-5'>遷移到</b>基于Arm STM32的MSPMO指南

    怎么IR600系列路由器DM4.0平臺遷移到InConnect平臺

    4.0 平臺一些優(yōu)點,并且功能更加強大,在這里我介紹怎么IR900系列路由器DeviceManager 4.0 平臺遷移到InConnect平臺。在這里我介紹怎么IR600系列
    發(fā)表于 07-25 08:13

    如何構(gòu)建彈性、高可用的微服務(wù)?

    基于微服務(wù)的應(yīng)用程序可實現(xiàn)戰(zhàn)略性數(shù)字轉(zhuǎn)型和云遷移計劃,對于開發(fā)團隊來說,這種架構(gòu)十分重要。那么,如何來構(gòu)建彈性、高可用的微服務(wù)呢?RedisEnterprise給出了一個完美的方案。文況速覽
    的頭像 發(fā)表于 11-26 08:06 ?440次閱讀
    如何構(gòu)建彈性、高可用的<b class='flag-5'>微服務(wù)</b>?

    設(shè)計微服務(wù)架構(gòu)的原則

    微服務(wù)是一種軟件架構(gòu)策略,有利于改善整體性能和可擴展性。你可能會想,我的團隊需不需要采用微服務(wù),設(shè)計微服務(wù)架構(gòu)有哪些原則?本文會給你一些靈感。文章速覽:微服務(wù)設(shè)計的要素
    的頭像 發(fā)表于 11-26 08:05 ?538次閱讀
    設(shè)計<b class='flag-5'>微服務(wù)</b>架構(gòu)的原則