Open szuecs opened 7 years ago
how about using the standard http proxy setting configured in the environment? Then the clients just need to use the proxy.
I changed the description to reflect your point. Separated cluster internal and external communication and 2 options for external communication.
Service Mesh is the current buzzword. One of the biggest challenges in Kubernetes is the increased error rate on abrupt node failure (p.e. kernel panic) in east-west communication. East-west is the wording for service-to-service communication within one DC (or Kubernetes cluster).
Skipper could be deployed inside the application POD and applications could use skipper to connect to cluster internal http service endpoints by cluster internal DNS name. Applications would configure the POD internal skipper as proxy in their settings and would connect to internal and external URLs as before. Annotations should be used to implement Skipper features for service connections (predicates and filters as in ingress).
Example app1 calls app2.default.svc.cluster.local (cluster internal): App1 has configured skipper as proxy. App1 connects to
<application-name>.<ns>.svc.cluster.local
, through skipper, which would have the Kubernetes endpoints for all Kubernetes services configured. Like this cluster internal communication in Kubernetes can be more safe on abrupt node failures.Example app1 call foo.example.org (not cluster internal) - Options:
Implementation
<name>.<namespace>.svc.cluster.local
as host header routes.