Improving Java Startup on Kubernetes with In-place Pod Vertical Scaling
The article discusses how to solve the problem of slow startup for Java apps on Kubernetes by utilizing a new feature called 'In-place Pod Vertical Scaling'. This feature allows resizing resources (CPU or memory) assigned to containers without restarting the pod. By using this feature, developers can request a higher CPU at the time of pod creation and then resize it down to normal running needs once the application has finished initializing. The article also introduces Kyverno, a tool that can automatically apply these changes to the cluster once the pod is ready. It is important to note that 'In-place Pod Vertical Scaling' is different from the Kubernetes Vertical Pod Autoscaler (VPA), although VPA is working on adding support for in-place pod vertical scaling. Overall, this article provides valuable insights and solutions for managing CPU limits and improving Java startup on Kubernetes.