Defining a scheduling and orchestration strategy for modern distributed microservices-based applications is a complex problem to deal with, especially if they are deployed on geo-distributed Cloud-to-Edge environments. Kubernetes is today the de-facto standard for container orchestration on Cloud data centers. However, its static container scheduling strategy is not suitable for the placement of complex and distributed microservices-based applications on Edge environments. Current infrastructure network conditions and resource availability neither run time application state are taken into account when scheduling microservices. To deal with these limitations in this work we present an extension of the Kubernetes platform in order to implement an effective application and infrastructure-aware container scheduling and orchestration strategy. In particular, we propose an extension of the default Kubernetes scheduler that considers application and infrastructure telemetry data when taking scheduling decisions. Furthermore, a descheduler component is also proposed that continuously tunes the application placement based on the ever changing application and infrastructure states. An evaluation of the proposed approach is presented by comparing it with the default Kubernetes scheduling strategy.
Hafiz Faheem ShahidJohirul IslamIjaz AhmadErkki Harjula
Adrián OriveAitor AgirreHong‐Linh TruongIsabel SarachagaMarga Marcos
Hyun‐Jong LeeShadi A. NoghabiBrian NobleMatthew FurlongLandon P. Cox
Bartosz Kopeć-PersińskiAndrzej Bęben