my reflection on using service-mesh; after four years of avoiding it
I remember i first heard the term "service-mesh" back in 2019. I could not understand the idea behind it at first but after some digging i learned that it provide certain capabilities while abstracting the underlying complexities. I then ran some prof of concept with Hashicorp Consul but i didn't find it appealing at that time.
Since then I have been ignoring any opportunities for understanding and learning service mesh. I believe my desire to not use service mesh amplified after reading the great "Production Kubernetes" book by Josh Rosso where it explicitly recommends to NOT use any service mesh until you manage to get your workload up and running all the way into production and then you MAY consider the use of it.
One thing that derived me away from introducing service-mesh in any project I worked at was that I felt it adds awfully a lot of complexities to an already complex ecosystem. Fast forward into 2024, I had an epiphany and realized having Service-mesh is essential for securing workload in Kubernetes. I have been working lately with Istio and have learnt it provides certain security capability that you can't have it otherwise without a service-mesh.
What made me change my mind?
I have been working lately a lot with security and compliance and something that I have realized and its widely accepted in the community is that is powerful as Kubernetes is as an container orchestrator, security is not its 1st class citizen. For instance:
Secrets in kubernetes are not encrypted by default.
any pod in any namespace can access any other pod in any other namespace by default.
communication between workloads are not encrypted by default.
Comments
Post a Comment