Potentially controversial tech opinion: Kubernetes is over-engineering for the majority of use cases.
I have looked, and looked, and looked again at Kubernetes, and how it would be relevant to the typical problem domains I have encountered over the years, and although I see where it is intending to assist in terms of High Availability, scaling etc, ... it just doesn't work for me.
Open and honest - I have not implemented a K8s based approach to Production; I have leap-frogged that to go the serverless-where-appropriate route for scaling and availability.
The first issue I had with K8s, is that there is so much new terminology to describe some long existing ideas and patterns; there is a learning curve.
The second is that scalability can be achieved in many ways; serverless / FAAS is probably the most optimal, especially with Azure offering Consumption based plans, and an included free execution of compute / memory usage that actually would meet many companies monthly needs.
The third issue is that High Availability, in a cloud world, means that addressing Data Centre and Region failover, especially of data stores, is far more important than ensuring a specific cluster of VMs is available and providing required services.
Perhaps I am missing something in the K8s value proposition? If so, comments welcome...