I cannot find any documentation about how maxSkew behaves when only one node is available.
My desired behavior would be that in such a situation, the “skew” would be the number of pods currently running on this single node, and maxSkew would limit the amount of pods to that number, even though the deployment wants to have more replicas.
Instead, it seems that in such a situation, the “skew” is always 0 and all the pods are scheduled on one node.
Is this a bug or really how kubernetes is intended to work? If so, this should be documented somewhere…
You can find a specific use-case here: kubernetes - topologySpreadConstraints - maxSkew behavior with only one Node? - DevOps Stack Exchange