| 研究生: |
謝時立 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.
[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).