Contents

Kubernetes mTLS to Secure Communication Between PODS

mTLS(Mutual Transport Layer Security)

mTLS
Typically, almost web services are using one way TLS.
mTLS is for authentication both server and client.
It’s one of the way Mutual Authentication In Kubernetes mTLS is using for communicating between PODs.

Sidecar Pattern

Sidecar Pattern
Let’s assume there’s a container, and we call it AppContainer.
The AppContainer is for only application.
In AppContainer doesn’t have any other process like log, monitor, etc.
If you want to add process like that, it affects to application running.
At this point, we can add other containers for the processes.
This pattern is calling Sidecar Pattern.
And in this case, we call it SidecarContainers.
The SidecarContainers is independent of AppContainer.
The AppContainer is also independent of SidecarContainers.
The SidecarContainers and AppContainer don’t affect each others.

Service Mesh

Service Mesh
According to WIKIPEDIA, in software architecture, a service mesh is a dedicated infrastructure layer for facilitating service-to-service communications between services or microservices, using a proxy.

Service Mesh Solutions

Service Mesh in Kubernetes

Service Mesh
The Kubernetes is using Service Mesh for mTLS.
It is just one usage of Service Mesh.

Basic

/kubernetes-mtls-to-secure-communication-between-pods/kubernetes-service-mesh-basic.png

Permissive / Opportunistic

/kubernetes-mtls-to-secure-communication-between-pods/kubernetes-service-mesh-permissive.png

Enforced / Strict

/kubernetes-mtls-to-secure-communication-between-pods/kubernetes-service-mesh-enforced.png