logo

Application AutoScaling Through Elastic Kubernetes POD

Conference:  ContainerCon 2022

2022-06-22

Authors:   Theresa Shan, Cathy Zhang


Summary

Design details of the elastic code method for Kubernetes and changes made to the Kubernetes code base to support it
  • Elastic code method involves creating application parts in three steps and using enclaves for security
  • Elastic code method reduces overhead and improves performance optimization
  • Changes made to Kubernetes include adding a replica field to the pod spec and modifying the API server, scheduler, and kubelet to support it
  • Replicated containers are managed through a set of states in the product status
  • Elastic code method schedules replicated containers onto the node that hosts the primary container
In a Kubernetes environment, the control plane manages the object status and ensures the desired replication state matches the actual state. The elastic code method reduces overhead and improves performance optimization by scheduling replicated containers onto the node that hosts the primary container. This method involves creating application parts in three steps and using enclaves for security. Changes made to Kubernetes include adding a replica field to the pod spec and modifying the API server, scheduler, and kubelet to support it. Replicated containers are managed through a set of states in the product status, including unset, proposed, infeasible, suitable, and timeout states.

Abstract

Application autoscaling refers to the operation of automatically adjusting the number of running application containers to meet the traffic demand. In the current K8S design, each application container runs inside its dedicated runtime environment POD. Scaling the application containers means creating/deleting more PODs which results in high latency and slow response. This talk presents a new approach to support application autoscaling. Rather than spawning a new pod, the new approach replicates one or more new application containers inside an existing Kubernetes POD and automatically adjusts the resource boundary of the POD. This avoids the cold startup latency associated with creating a new POD, thus greatly increasing the scaling speed. We will share how we enhance Kubernetes Vertical POD Autoscaler to support this new approach.

Materials:

Post a comment