CHT Project Progress Report 04/06 Simon
Resource Allocation Based on Linux container technique. Docker / Kubernetes. Design and implement two components: Container number manager adjusts the number of containers according to application performance. Resource allocator determines which server a newly created container should run on.
Resource Allocator Determines which server a newly created container should run on. Assigns the container to the specific server by labeling. Each server has a unique label. Each container receives the label of the server it should run on upon it creation. Docker scheduler deploys containers to servers according to the labels.
Container and Applications In the target CHT data center The containers have the same specification. Specification: maximum usage of each resource. Each container is for a single purpose. Runs only one set of applications. Different container can have different purposes. Depending on the set of applications a container is running.
Container Allocation We can naively allocate containers according to their specifications. Ex: allocating at most 4 containers with the same specification: (2 cores, 1 GB memory) to a server with 8 cores and 4 GB memory However, applications in containers may not fully utilize the resources. Over-provision, low utilization.
Example – CPU Usage A B1 C B2 Four containers running different applications Different applications lead to different CPU usage. Over-provision. A B1 C B2
Container Allocation(Cont.) We can allocate more containers to the server to increase the resource utilization. Risking the performances of applications. How to allocate and re-allocate the containers so that the hardware resources can be utilized while guarantee the QoS of each application.
Current Status Studying the Docker API and Kubernetes API. Surveying benchmarks Designing algorithm/heuristic for container allocation.