研究生: |
楊博洋 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.
[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