Scheduling High-Affinity Services in Kubernetes
摘要
Kubernetes automates the deployment of containerized applications on server infrastructures (and in the cloud). Services (or microservices) are packaged in Pods and placed on Virtual Machines (Nodes). In scenarios involving several interconnected high-traffic (i.e. high-affinity) services, determining which services to colocate within the same Node influences both the application’s execution time and operational costs. The proposed scheduling policy takes a placement decision based on fuzzy clustering. In addition to placing high-affinity services in the same Node, high-affinity services can run in more than one instance (Pods) in different Nodes. Experimental results show that fuzzy scheduling achieves up to 30% response time savings and up to 90% savings in Egress traffic compared to deployment with the default Kubernetes scheduler, without significantly impacting operational costs.