There were many predictions made in my blogs. Death of Silverlight and WPF. Oh WPF is still available Windows Phone prediction missed to post separately. Now I am predicting the future of Windows OS. The server side is already taken by Linux even in the Microsoft Azure infrastructure from 2015 onwards. The client side will soon be dominated by Chrome OS once the 5G is available to everyone and the browser gets more power with WebAssembly.
If we have a chance do not go for the Windows container. Go to the windows container if there is absolutely no way to use the Linux container. It may be due to budget constraints to migrate from .Net Framework to .Net Core, unavailability of certain legacy COM components, etc.
Kubernetes memory management
- Node operating system is software running in node.
- In order to manage the containers Kubernetes needs to run software in every node called kubelet, proxy, etc.
- If we have installed third-party CSI drivers and monitoring agents, they also need to run on every node.
- Kubernetes keeps some aside to anticipate spikes. That is not considered when allocating
Not all memory, CPU and other node resources are available to containers
Windows nodes in AKS resource reservations
Windows nodes are treated separately in AKS and they need additional 2GB
- Eviction threshold
- 750Mi
- Kubelet
- 25% of the first 4 GB of memory
- 20% of the next 4 GB of memory (up to 8 GB)
- 10% of the next 8 GB of memory (up to 16 GB)
- 6% of the next 112 GB of memory (up to 128 GB)
- 2% of any memory above 128 GB
- Windows node
- Additional 2 GB
The resource reservation calculation for 7GB nodes
Please note the memory requirement for same drivers is less in Linux nodes in the same cluster. Also the number of drivers varies by workload requirement
The resource reservation calculation for 32GB windows nodes
The resource reservation calculation for 128 GB windows nodes
All these calculations are done with default recommended values
Lessons learned
- Do not get into the windows container if possible.
- If windows containers are inevitable, use bigger nodes such as 128GB.
References
- Windows and Linus
- Whoa. Microsoft Is Using Linux to Run Its Cloud
- What is Microsoft doing with Linux?
- Microsoft loves Linux
- Kubernetes resource reservation
- https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#node-allocatable
- https://kubernetes.io/docs/concepts/configuration/windows-resource-management/
- https://learn.microsoft.com/en-us/azure/aks/concepts-clusters-workloads#resource-reservations
- https://kubernetes.io/blog/2021/11/26/qos-memory-resources/
- https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu
No comments:
Post a Comment