I am finding that using containers is a definite benefit.
With regard to K8s if at all possible I would suggest that companies operating in the cloud choose a managed service as a starting point. Yes, it will seem like an expensive option but if you try and manage K8s that price starts to look reasonable.
It is much the same with any distributed system. Fantastic benefits but distributed systems are complex and tend to be hard to manage, especially in their infancy.