![]() $ kubectl describe node worker-0įrequentKubeletRestart False NoFrequentKubeletRestart kubelet is functioning properlyįrequentDockerRestart False NoFrequentDockerRestart docker is functioning properlyįrequentContainerdRestart False NoFrequentContainerdRestart containerd is functioning properly In a normal operating state, these conditions will all provide a positive status message. The Kubernetes node API resource provides a set of conditions that inform operators of the state of the node itself. The specific goal here is to provide suggestions for Kubernetes resources that will help an application stay stable in the face of node-level issues or outages. A single application experiencing significant over-consumption of resources can create a node-level impact, but this post is not going to focus on that level of application configuration. We want to evaluate how to appropriately segregate and configure your Kubernetes objects to handle system and node-level outages.ĭisclaimer: We’re going to focus on the challenges of handling node-level issues from an application perspective. ![]() These three resources appear closely intertwined, so it is helpful to understand exactly what is being indicated when these resources are configured on the cluster. Quality of Service classes indicate how the Kubernetes API server should plan for allocation and removing resources from Kubernetes nodes for effective bin packing and disruption eviction. Pod Priority Classes indicate the importance of pods relative to other pods for eviction and scheduling. Pod Disruption Budgets are Kubernetes objects that inform the Kubernetes API server of the minimum availability or maximum set of pods that can safely be out due to a disruption on the node. ![]() In this post, I will explore the Kubernetes concepts of Pod Disruption Budgets, Priority Classes, Resource Quotas, and Quality of Service classes to provide suggestions for what a production-ready configuration should look like for a Kubernetes application that requires high availability. Configuring these things can be confusing and unintuitive. While that’s true, it’s up to the developer to provide enough hints to the scheduler to allow it to do its job. Kubernetes is often pitched as a platform that is able to effectively run fault-tolerant distributed workloads. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |