There's definitely some complexity and learning curve involved, but it comes with some nice advantages for my particular use case:
- Low vendor lock-in: I actually migrated to DO from a different hosted k8s, and I was able to reuse the majority of my configuration. - Reproducibility: your projects are derived from the resources you upload, so it's hard to end up with a setup that you can't easily reproduce (or migrate!) elsewhere. - High flexibility: I can do some relatively strange things with e.g. routing without k8s batting an eye. There isn't really ever a point of "oh no, I've found something I can't really, do". - I've found it to be cheaper than cloud managed services once you're hosting as much as I am.
More generally, I like the...standardized(?) style. It feels like a sort of "build your own cloud", but the blocks you use look like everyone else's, despite the total product looking a bit different for everyone. I can use k8s managed, in a business setting, or fully self-hosted, and the essentials still work the same way.
A lot of bad experiences wrt complexity I hear come from running the cluster yourself, but nowadays, distributions like k3s make this, dare I say, pretty easy. If you want to use. VPS, DO managed k8s is very nice.