Proxy with service mesh
As shown in the diagram below, User A and User B use the kubevpn proxy command to proxy the same service authors
respectively:
- User A:
kubevpn proxy deployment/authors --headers user=A - User B:
kubevpn proxy deployment/authors --headers user=B
When the authors service in the cluster receives traffic:
- Traffic with
user: Ain theHTTP headerwill hitUser A's local computer. - Traffic with
user: Bin theHTTP headerwill hitUser B's local computer. - Unmatched traffic in the
HTTP headerwill hit the originalauthorsservice in the cluster.
The principle is to use envoy as the data plane and implement a control plane for envoy.
Default mode ( need Privileged: true and cap NET_ADMIN )
The key is how to implement the function bellow.
When the
authorsservice in the cluster receives traffic
default mode use iptables DNAT traffic to port :15006, so works on Pod level, best experience.
example:
kubevpn proxy deployment/authors --headers user=A