Cons:

  • Kubernetes requires control nodes. On a small amount of hardware this is a noticeable expense.
  • Usually assumes 3-node redundancy. On small scales this isn’t needed and is expensive.
  • Usually assumes expensive (in terms of hardware) monitoring: ElasticSearch, Grafana, UI for them and wrappers.

Pros:

  • You can order “managed” Kubernetes in the cloud.
  • Potentially scalable.

In general, the approach before K8s (2 machines: active / passive with database replication and automatic or manual switching) in most cases is sufficient and, moreover, optimal.

However, especially in small business, it matters what people already know how to do. Now many are learning Kubernetes right away. So they use it, even if it turns out more expensive.

Less than 10-20 physical servers (200-400 vCPU) I wouldn’t bother with Kubernetes. Even scaling can be well provided on virtual machines. After all, Kubernetes was invented to solve problems with thousands of servers and doesn’t scale down well.