Hello,
Our company wants to run SQL Server 2019 Std in Openshift (read Kubernetes). One important topic is licensing in such setup. And here licensing guide did not provide any help.
Imagine that we have 4 instances on SQL Server running in 4 pods on the same worker node. Node has 16 cores. Each SQL Server deployment has CPU limit set to 4 (meaning 4 full CPU cores in processor time). BUT, Kubernetes exposes all CPUs to every pod, limiting only the total CPU time consumed. So practically speaking, each SQL Server instance thinks it has 16 CPU cores and can actually utilize a little bit of every CPU core. Even with CPU manager policy applied and pinning pods to specific CPUs, SQL Server still reports 16 cores.
If I refer to licensing guide and apply it directly, then we should buy 4x16 licenses (which sounds really crazy).
The reason for this is that all over the licensing guide we can see that cores count is an absolute measure and no matter what fraction of core we are actually able to utilize. We could've license the whole host with 16 licenses but this is not applicable to Standard Edition.
Please tell me that I am wrong (with some reasonable proofs), otherwise it does not make any real sense to run SQL Server Std Edition in k8s.