Describe the bug
In the default configuration (following quick start instructions), proxying behavior is broken in a cluster configured with Calico and at least 2 nodes.
In the default configuration, the Ambassador service uses externalTrafficPolicy: Cluster which causes the load balancer to spread traffic across the nodes before kube-proxy routes it back to the node running ambassador.
When this traffic is received, half of it comes directly to the ambassador pod from the load balancer and is tagged as external traffic, and half of it comes via kube-proxy and is tagged as internal traffic, which causes problems for applications behind the proxy.
Change the type of the ambassador service to externalTrafficPolicy: Local and everything starts working as expected.
To Reproduce
Steps to reproduce the behavior (with mitm proxy for observing traffic):
Provision a 2-node cluster that uses Calico for its networking layer (I performed this on Scaleway)
Follow the directions in the quick start docs to install ambassador edge stack:
Describe the bug In the default configuration (following quick start instructions), proxying behavior is broken in a cluster configured with Calico and at least 2 nodes.
In the default configuration, the Ambassador service uses
externalTrafficPolicy: Cluster
which causes the load balancer to spread traffic across the nodes before kube-proxy routes it back to the node running ambassador.When this traffic is received, half of it comes directly to the ambassador pod from the load balancer and is tagged as external traffic, and half of it comes via kube-proxy and is tagged as internal traffic, which causes problems for applications behind the proxy.
Change the type of the ambassador service to
externalTrafficPolicy: Local
and everything starts working as expected.To Reproduce Steps to reproduce the behavior (with mitm proxy for observing traffic):
pgadmin.example.org
to the IP address aboveExpected behavior I expect to be able to login the the pgadmin service, but instead one of two errors happens:
As soon as you update the externalTrafficPolicy, login works
Versions (please complete the following information):