I work with Elastic Kubernetes Service in AWS almost daily for a few years now, and was asked I had learned. So here are interesting things I have learned in no particular order:
- Way more can fit on nodes than you think.
- Way less can fit on nodes than you think — if the application has major CPU or Memory requirements. 😉
- What works in your old on-prem may not be right in Kubernetes, do not fear to rethink it all.
- Thinking about persistent volumes before you allocate them is really smart — and take advantage of mount options — this can make storage easier to manage
- Auto scaling is important: it needs to be tested and understood/defined requirements wise, so no one is surprised
- A K8s stack works way better than you think — it is awesome and intuitive software
- Working with a one-shot config in teams is waaayy easier than having a ton of manifests laying around.
- K8s will happily evict perfectly good pods — because you told it to do so — through not thinking out your deployment strategy or in your config somewhere.
- The control plane is surprisingly powerful, worth knowing about. In AWS, it has system level rights.
Kubernetes is great software, and one of my favorites to work with. To me, there is a K8s Feng Shui — once you get the flow, you know.
I have running API’s that save lives and property with zero down time. Fully performant during major weather events, and in one case, AWS outages.