簡易檢索 / 詳目顯示

研究生: 楊博洋
Bo-Yang Yang
論文名稱: 基於Kubernetes之飲水機服務高可用雲平台
Kubernetes-based High Availability Cloud System supporting Dispenser Services
指導教授: 鄭瑞光
Ray-Guang Cheng
口試委員: 許獻聰
呂政修
王瑞堂
學位類別: 碩士
Master
系所名稱: 電資學院 - 電子工程系
Department of Electronic and Computer Engineering
論文出版年: 2020
畢業學年度: 108
語文別: 中文
論文頁數: 63
中文關鍵詞: Kubernetes高可用飲水機Openstack虛擬機單套式微服務Docker
外文關鍵詞: Kubernetes, High Availability, Water Dispenser, Openstack, Virtual Machine, Monolithic, Microservice, Docker
相關次數: 點閱:422下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報

本論文提出基於Kubernetes所開發之高可用飲水機平台服務,以解決現有使用Openstack架構平台所遇到的問題。現有Openstack平台是建構於單一伺服器上,並且在虛擬機上運行智慧飲水機服務,單一主節點雖然建置過程簡單,但故障時會造成整個服務中斷,需要數小時由人工修復;此外目前服務使用單套式架構,一個小更動都需要重新佈署整套系統,會降低開發的敏捷度。為解決以上問題,本論文利用Kuberntes高可用方案,在多個伺服器上同時建置多個主節點,在錯誤發生時自動恢復服務;本系統採取微服務架構,將服務拆解成專注於單一功能的微服務,佈署方面使用更輕量、攜帶性更高的Docker將服務容器化,將各個微服務獨立於容器上運行,增加開發的敏捷度。根據實測結果,新的系統在發現錯誤後可在數分鐘內自動恢復服務;新的系統中;軟體的更動只需重啟相對應的微服務即可。


This paper proposes a high availability water dispenser platform service based on Kubernetes in order to solve the problems encountered by the existing Openstack architecture platform. The existing Openstack platform is built on a single server. Run the smart water dispenser service on the virtual machine. The single master node is simple to build. When Failure ocur, it will cause the entire service to be interrupted. It takes hours to repair manually. In addition, the current service uses a monolithic architecture. A small change requires redeployment of the entire system, which reduces development agility. To solve the above problems, This paper utilizes Kuberntes high availability scheme to build multiple master nodes on multiple servers. when an error occurs, automatically recovery service. This system adopts microservice architecture. Applications are broken down into microservices focused on a single function. The deployment side uses lighter and more portable Docker to containerize the service. Run each microservice independently of the container, increasing development agility. According to the results, the new system can automatically recovery service within a few minutes after discovering errors. Software changes only need to restart the corresponding microservices.

論文摘要 4 目錄 7 圖目錄 9 表目錄 11 第1章 緒論 12 1.1 研究動機與目的 12 1.2 背景知識 14 1.2.1 垂直擴充與橫向擴充 14 1.2.2 微服務架構 14 1.2.3 Docker 15 1.2.4 Kubernetes 16 1.2.5 Kubernetes架構 16 1.2.6 Kubernetes元件介紹 17 1.2.7 Kubernetes控制層高可用 21 1.2.8 Kubernetes高可用拓樸 22 1.3 章節提要 24 第2章 系統架構 25 2.1 系統架構 25 第3章 系統建置 27 3.1 硬體及環境配置 27 3.2 軟體配置 28 3.2.1 軟體使用 28 3.2.2 軟體封裝 30 3.2.3 映像檔上傳 36 3.2.4 智慧飲水機服務佈署 36 3.2.5 資料視覺化呈現 40 第4章 系統驗證 42 4.1 高可用測試 42 4.1.1 實驗假設 42 4.1.2 實驗說明 42 4.1.3 服務故障 43 4.1.4 主節點故障 50 4.2 服務壓力測試 54 4.3 智慧飲水機服務跨平台測試 55 4.3.1 Google Kubernetes Engine 55 4.3.2 Google Kubernetes Engine服務佈署 55 第5章 結論與未來展望 60 參考文獻 61

[1] Fransiscus Asisi Bimo Adisatrio, “Implementation and Optimization of Openstack based Energy Monitoring Service” M.S. thesis, Electronic and Computer Engineering Dept. NTUST., Taiwan, 2019
[2] C. Chuan-Fu and C. Shiuann-Shuoh, “Implement server virtualization and consolidation using 2P-cloud architecture,” Journal of Applied Science and Engineering, vol. 20, no. 1, 2017, pp. 121-130.
[3] Lily Puspa Dewi, Agustinus Noertjahyana, Henry Novianus Palit, Kezia Yedutun, “Server Scalability Using Kubernetes,” 2019 Technology Innovation Management and Engineering Science International Conference(TIMES-iCON2019), 2019
[4] Ashish Lingayat, Ranjana R. Badre and Anil Kumar Gupta, “Performance Evaluation for Deploying Docker Containers On Baremetal and Virtual Machine,” 2018 International Conference on Communication and Electronics Systems (ICCES 2018), 2018, pp. 1019-1023.
[5] Roberto Morabito, Jimmy Kjällman, and Miika Komu, “Hypervisors vs. Lightweight Virtualization: a Performance Comparison,” 2015 IEEE International Conference on Cloud Engineering, 2015, pp. 386–393.
[6] K.-T. Seo, H.-S. Hwang, I.-Y. Moon, O.-Y. Kwon, and B.-J. Kim, “Performance comparison analysis of linux container and virtual machine for building cloud,” Advanced Science and Technology Letters, 2014
[7] Qi Zhang, Ling Liu, Calton Pu, Qiwei Dou, Liren Wu and Wei Zhou, “A Comparative Study of Containers and Virtual Machines in Big Data Environment,” 2015 International Conference on Advances in Computer Engineering and Applications (ICACEA) IMS Engineering College, Ghaziabad, India, 2015, pp. 178–185.
[8] Prof. Ann Mary Joy, “Performance Comparison Between Linux Containers and Virtual Machines,” 2015 International Conference on Advances in Computer Engineering and Applications (ICACEA) IMS Engineering College, Ghaziabad, India, 2015, pp. 342–346.
[9] Nikhil Marathe, Ankita Gandhi and Jaimeel M Shah, “Docker Swarm and Kubernetes in Cloud Computing Environment,” 2019 International Conference on Trends in Electronics and Informatics(ICOEI 2019), 2019, pp. 179-184.
[10] Jay Shah and Dushyant Dubaria, “Building Modern Clouds: Using Docker, Kubernetes & Google Cloud Platform,” 2019 IEEE 9th Annual Computing and Communication Workshop and Conference (CCWC), 2019, pp. 184-189.
[11] Thurgood B, Lennon R G, “Cloud Computing With Kubernetes Cluster Elastic Scaling,” Proceedings of the 3rd International Conference on Future Networks and Distributed Systems. ACM, 2019
[12] S. Kho Lin et al., “Auto-Scaling a Defence Application across the Cloud Using Docker and Kubernetes,” 2018 IEEE/ACM International Conference on Utility and Cloud Computing Companion (UCC Companion), Zurich, pp. 327-334, 2018
[13] P. Tsai, H. Hong, A. Cheng and C. Hsu, “Distributed analytics in fog computing platforms using tensorflow and kubernetes,” 2017 19th AsiaPacific Network Operations and Management Symposium (APNOMS), Seoul, 2017, pp. 145-150.
[14] Cloud Scalability: Scale Up vs Scale Out [Online]. Available:
https://blog.turbonomic.com/blog/on-technology/cloud-scalability-scale-vs-scale
[15] E. Wolff, Microservices: Flexible Software Architecture, Addison-Wesley Professional, 2016
[16] 微服務樣式 [Online]. Available:
https://docs.microsoft.com/zh-tw/azure/architecture/guide/architecture-styles/microservices
[17] Get Docker [Online]. Available: https://docs.docker.com/get-docker/
[18] What is Container? [Online]. Available: https://www.docker.com/resources/what-container
[19] What is Kubernetes? [Online]. Available:
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
[20] Kubernetes Component [Online]. Available:
https://kubernetes.io/docs/concepts/overview/components/
[21] Pod Overview [Online]. Available:
https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/
[22] Deployments [Online]. Available:
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
[23] StatefulSets [Online]. Available:
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
[24] Service [Online]. Available:
https://kubernetes.io/docs/concepts/services-networking/service/
[25] Storage [Online]. Available:
https://kubernetes.io/docs/concepts/storage/persistent-volumes/
[26] [Day5] 實現 Kubernetes高可靠架構部署 [Online]. Available:
https://ithelp.ithome.com.tw/articles/10218362
[27] Highly Available Kubernetes Clusters [Online]. Available:
https://static.sched.com/hosted_files/kccna18/8b/Highly%20Available%20Kubernetes%20Clusters%20-%20Best%20Practices%20-%20Kubecon%20NA%202018.pdf
[28] Raft [Online]. Available:
https://raft.github.io/
[29] Lease [Online]. Available:
https://blog.acolyer.org/2014/10/31/leases-an-efficient-fault-tolerant-mechanism-for-distributed-file-cache-consistency/
[30] Options for Highly Available topology [Online]. Available:
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/ha-topology/

[31] D.-g. Peng, H. Zhang, L. Yang, and H. Li, “Design and Realization of Modbus Protocol Based on Embedded Linux System”, 2008 International Conference on Embedded Software and Systems Symposia, Chengdu, SiChuan, China, 2008, pp. 275–280.
[32] Nginx [Online]. Available: https://www.nginx.com/
[33] Mongo[Online]. Available: https://docs.mongodb.com/
[34] PostgreSQL[Online]. Available: https://www.postgresql.org/
[35] Go [Online]. Available: https://golang.org/
[36] ThingWorx Platform [Online]. Available: https://www.ptc.com/tw/products/iot/thingworx-platform
[37] ionic [Online]. Available: https://www.runoob.com/ionic/ionic-tutorial.html
[38] Docker [Online]. Available: https://www.docker.com/
[39] OCI和runc:容器標準化和docker [Online]. Available: https://cizixs.com/2017/11/05/oci-and-runc/
[40] Thingworx封裝 [Online]. Available: https://hackmd.io/Ew6yW-epSVGjCx1tOaA4Nw
[41] PostgreSQL封裝[Online]. Available: https://hackmd.io/PKnfBs_tSHq67ueB5m4UsQ

無法下載圖示 全文公開日期 2025/08/14 (校內網路)
全文公開日期 2025/08/14 (校外網路)
全文公開日期 2025/08/14 (國家圖書館:臺灣博碩士論文系統)
QR CODE