{"title":"Epsilon:用于Kubernetes集群的基于微服务的分布式调度器","authors":"Alex Neo Jing Hui, Bu-Sung Lee","doi":"10.1109/JCSSE53117.2021.9493827","DOIUrl":null,"url":null,"abstract":"Kubernetes is a popular container orchestration platform designed to simplify the deployment of containers in a compute cluster. Kubernetes provides a monolithic cluster scheduler, which is responsible for allocating resources in the cluster. We developed a Kubernetes cluster scheduler using microservices as its foundation called Epsilon. Epsilon is designed as a proof of concept to examine the viability of using microservices to develop a cluster scheduler. On top of the basic scheduler microservice, additional microservices are developed to support the scheduler operations. e.g. The Retry service handles unsuccessful deployment of pods and reschedules them after a period of time. In our experiments, we deployed Epsilon in a Kubernetes cluster using AWS Cloud services. The results shows that the scheduling throughput of Epsilon is comparable to the default Kubernetes scheduler. Epsilon also shows even distribution of pods among the nodes. Furthermore, the distributed nature of the Epsilon’s microservices decrease code complexity when compared with the Kubernetes default scheduler.","PeriodicalId":437534,"journal":{"name":"2021 18th International Joint Conference on Computer Science and Software Engineering (JCSSE)","volume":"28 12","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-06-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Epsilon: A Microservices based distributed scheduler for Kubernetes Cluster\",\"authors\":\"Alex Neo Jing Hui, Bu-Sung Lee\",\"doi\":\"10.1109/JCSSE53117.2021.9493827\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Kubernetes is a popular container orchestration platform designed to simplify the deployment of containers in a compute cluster. Kubernetes provides a monolithic cluster scheduler, which is responsible for allocating resources in the cluster. We developed a Kubernetes cluster scheduler using microservices as its foundation called Epsilon. Epsilon is designed as a proof of concept to examine the viability of using microservices to develop a cluster scheduler. On top of the basic scheduler microservice, additional microservices are developed to support the scheduler operations. e.g. The Retry service handles unsuccessful deployment of pods and reschedules them after a period of time. In our experiments, we deployed Epsilon in a Kubernetes cluster using AWS Cloud services. The results shows that the scheduling throughput of Epsilon is comparable to the default Kubernetes scheduler. Epsilon also shows even distribution of pods among the nodes. Furthermore, the distributed nature of the Epsilon’s microservices decrease code complexity when compared with the Kubernetes default scheduler.\",\"PeriodicalId\":437534,\"journal\":{\"name\":\"2021 18th International Joint Conference on Computer Science and Software Engineering (JCSSE)\",\"volume\":\"28 12\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-06-30\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2021 18th International Joint Conference on Computer Science and Software Engineering (JCSSE)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/JCSSE53117.2021.9493827\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 18th International Joint Conference on Computer Science and Software Engineering (JCSSE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/JCSSE53117.2021.9493827","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Epsilon: A Microservices based distributed scheduler for Kubernetes Cluster
Kubernetes is a popular container orchestration platform designed to simplify the deployment of containers in a compute cluster. Kubernetes provides a monolithic cluster scheduler, which is responsible for allocating resources in the cluster. We developed a Kubernetes cluster scheduler using microservices as its foundation called Epsilon. Epsilon is designed as a proof of concept to examine the viability of using microservices to develop a cluster scheduler. On top of the basic scheduler microservice, additional microservices are developed to support the scheduler operations. e.g. The Retry service handles unsuccessful deployment of pods and reschedules them after a period of time. In our experiments, we deployed Epsilon in a Kubernetes cluster using AWS Cloud services. The results shows that the scheduling throughput of Epsilon is comparable to the default Kubernetes scheduler. Epsilon also shows even distribution of pods among the nodes. Furthermore, the distributed nature of the Epsilon’s microservices decrease code complexity when compared with the Kubernetes default scheduler.