Pod Migration with Optimized Containers Using Persistent Volumes in Kubernetes
摘要
Containerization has become popular these days because of its easy way of deploying and managing applications in the cloud. Containers are packages that are lightweight with application code, dependencies, programming language with versions and run times, and libraries that are required to run software services. Kubernetes is one of the most popular container orchestration tools which can automate the deploying, scaling, and other operations of containers thus reducing human error and cost. Kubernetes cluster refers to a group of nodes in which one is the master node and the others are worker nodes. Nodes in the Kubernetes cluster run Pods. Pods contain one or more containers and volumes. Volumes are dependent on the life cycle of Pod. Hence we use Persistent volume for storage which is independent of Pod’s life cycle. One of the significant limitations of Kubernetes is that Pods are mortal. Migration of running Pods in Kubernetes is done by stopping the running Pod, killing it, and then redeploying it from scratch. We proposed a modified Pod migration technique that uses Persistent volume and migration controller to capture the state of the containers. We show that redeploying a new Pod in Pod migration with optimized containers is a better strategy that minimizes the Pod’s cold start time and minimizes the use of CPU in nano CPU and minimizes utilization of memory in bytes.