跳到主要內容

簡易檢索 / 詳目顯示

研究生: 謝時立
Shih-Li Hsieh
論文名稱: 基於Kubernetes微服務串鏈的高可用性方法
High-Availability Microservice Chain on Kubernetes
指導教授: 王尉任
口試委員:
學位類別: 碩士
Master
系所名稱: 資訊電機學院 - 資訊工程學系
Department of Computer Science & Information Engineering
論文出版年: 2021
畢業學年度: 109
語文別: 中文
論文頁數: 68
中文關鍵詞: 微服務串鏈Kubernetes高可用性
相關次數: 點閱:6下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 隨著容器虛擬化技術的發展與成熟,微服務架構漸漸地吸引人們的注意,越來越多服務供應商採用容器工具來建構微服務系統,目前市面上最常以Kubernetes容器管理系統作為實現微服務架構的工具之一。微服務串鏈為微服務架構中最為常見的服務型態,而服務供應商為了滿足服務級別協議 (Service Level Agreement),須確保服務有高可用性,所以在微服務架構中如何維護微服務串鏈的穩定,即可保證服務的可用性。雖然Kubernetes有原生的服務修復機制,然而Kubernetes對於節點錯誤的偵錯修復機制過於緩慢,因此本篇論文將針對節點錯誤,提出微服務串鏈高可用性機制讓微服務在節點發生軟硬體損壞時,高可用性機制可以進行錯誤偵測與服務修復動作來維持微服務串鏈的運作,並且我們利用實驗展示高可用性機制對比於Kubernetes原生機制能降低至少89%中斷時間。


    With the development of container virtualization technology, microservice architecture gradually attracts people’s attention. More and more service providers build microservice systems with container tools. So far, Kubernetes is one of the most popular container tools for implementing microservice systems. To meet Service Level Agreement, service providers should ensure high availability of service. The microservice chain is the most common service type in microservice architecture, therefore, how to maintain microservice chain is the key point in the problem of high availability of service. Kubernetes has a native microservice recovery mechanism for error container, but the native microservice recovery mechanism for node failure takes lots of time. Thus, this paper proposed microservice-chain-based HA method for node failure. The proposed method can rapidly detect node failure, such as network failure, OS hang, or Poweroff, and recover the microservice. In addition, we also do the experiment and demonstrate that the proposed HA method can reduce the overall downtime at least by 89% compared with Kubernetes native recovery mechanism.

    摘要 i Abstract ii 目錄 iii 圖目錄 v 表目錄 vi 第一章 緒論 1 1-1 研究背景 1 1-2 研究動機 3 1-3 研究目標 5 1-4 論文貢獻 5 1-5 論文架構 6 第二章 相關技術與研究 7 2-1 相關技術 7 2-1-1 相關技術- Kubernetes 7 2-1-2 相關技術- Kafka 10 2-1-3 相關技術- IPMI 11 2-2 相關研究 13 2-2-1 在Kubernetes與Kafka上實作基於Consumer lag之微服務動態轉移機制 13 2-2-2 “Highly-Available Applications on Unreliable Infrastructure: Microservice Architectures in Practice” 14 第三章 系統設計 15 3-1 系統架構 15 3-2 軟硬體損壞定義 16 3-3 錯誤偵測流程與機制 17 3-4 錯誤修復機制 19 3-5 節點選擇策略 21 第四章 實驗設計與結果 22 4-1 實驗環境 22 4-2 實驗設計 22 4-2-1 微服務串鏈設計 22 4-2-2 錯誤模擬設計 23 4-2-3 微服務串鏈Downtime分析 24 4-2-4 實驗設計 25 4-3 實驗結果 25 4-3-1 實驗一: 微服務串鏈中任一服務發生節點故障 25 4-3-2 實驗二: 叢集中節點有CPU效能差異 46 第五章 結論與未來展望 53 參考文獻 54

    [1] H.Vural, M.Koyuncu, andS.Guney, “A systematic literature review on microservices,” Lect. Notes Comput. Sci. (including Subser. Lect. Notes Artif. Intell. Lect. Notes Bioinformatics), vol. 10409 LNCS, no. July, pp. 203–217, 2017, doi: 10.1007/978-3-319-62407-5_14.
    [2] C. Y.Fan andS. P.Ma, “Migrating Monolithic Mobile Application to Microservice Architecture: An Experiment Report,” Proc. - 2017 IEEE 6th Int. Conf. AI Mob. Serv. AIMS 2017, pp. 109–112, 2017, doi: 10.1109/AIMS.2017.23.
    [3] L.DeLauretis, “From monolithic architecture to microservices architecture,” Proc. - 2019 IEEE 30th Int. Symp. Softw. Reliab. Eng. Work. ISSREW 2019, pp. 93–96, 2019, doi: 10.1109/ISSREW.2019.00050.
    [4] C.Pahl, A.Brogi, J.Soldani, andP.Jamshidi, “Cloud container technologies: A state-of-the-art review,” IEEE Trans. Cloud Comput., vol. 7, no. 3, pp. 677–692, 2019, doi: 10.1109/TCC.2017.2702586.
    [5] D.Jaramillo, D.V.Nguyen, andR.Smart, “Leveraging microservices architecture by using Docker technology,” Conf. Proc. - IEEE SOUTHEASTCON, vol. 2016-July, pp. 1–5, 2016, doi: 10.1109/SECON.2016.7506647.
    [6] P. T.Endo, M.Rodrigues, G. E.Gonçalves, J.Kelner, D. H.Sadok, andC.Curescu, “High availability in clouds: systematic review and research challenges,” J. Cloud Comput., vol. 5, no. 1, 2016, doi: 10.1186/s13677-016-0066-8.
    [7] E.Marilly, O.Martinot, S.Betgé-Brezetz, andG.Delègue, “Requirements for service level agreement management,” 2002 IEEE Work. IP Oper. Manag. IPOM 2002, no. February, pp. 57–62, 2002, doi: 10.1109/IPOM.2002.1045756.
    [8] “What is Kubernetes?” https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ (accessed Aug. 18, 2021).
    [9] “Node Controller.” https://kubernetes.io/docs/concepts/architecture/nodes/#node-controller (accessed Aug. 18, 2021).
    [10] “Apache Kafka.” https://kafka.apache.org/documentation/ (accessed Aug. 18, 2021).
    [11] M.Kleppmann andJ.Kreps, “Kafka, Samza and the Unix Philosophy of Distributed Data,” Bull. Tech. Comm. Data Eng., vol. 38, no. 4, pp. 4–14, 2015, [Online]. Available: http://sites.computer.org/debull/A15dec/A15DEC-CD.pdf#page=6.
    [12] “IPMI.” https://zh.wikipedia.org/wiki/IPMI (accessed Aug. 18, 2021).
    [13] “IPMItool.” https://github.com/ipmitool/ipmitool (accessed Aug. 18, 2021).
    [14] 許家繻, “Consumer lag aware microservice relocation mechanism over Kubernetes and Kafka.” National Center University, Taoyuan, 2020.
    [15] D.Richter, M.Konrad, K.Utecht, andA.Polze, “Highly-Available Applications on Unreliable Infrastructure: Microservice Architectures in Practice,” Proc. - 2017 IEEE Int. Conf. Softw. Qual. Reliab. Secur. Companion, QRS-C 2017, pp. 130–137, 2017, doi: 10.1109/QRS-C.2017.28.
    [16] “Kube-Prometheus.” https://github.com/prometheus-operator/kube-prometheus (accessed Aug. 18, 2021).
    [17] “K3s - Lightweight Kubernetes.” https://rancher.com/docs/k3s/latest/en/ (accessed Aug. 18, 2021).

    QR CODE
    :::