I have been using Linkerd and this is the first time I’m implementing the Linkerd Traffic Split with Nginx ingress controller. I have set up the configuration as in this configuration and I’m happy to say internally it is perfectly working. I need to implement a Blue/Green deployment with external traffic route through the ingress controller.
My Nginx ingress controller is configured as a DaemonSet and it has been injected with
linkerd inject --ingress - | kubectl apply -f - and I can it as meshed in the dashboard. Also, I have set the ingress resource of the web-apex service in the given repository with the below annotations
annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/configuration-snippet: | proxy_set_header l5d-dst-override $service_name.$namespace.svc.cluster.local:$service_port; grpc_set_header l5d-dst-override $service_name.$namespace.svc.cluster.local:$service_port;
Here is the Nginx pod annotations:
but when I’m accessing it through the browser it returns “503 Service Temporarily Unavailable” error. It seems it doesn’t’t aware about the mesh and trying to reach to the endpoints of the web-apex service, which doesn’t have them configured.
I believe this is definitely a misconfiguration and there should be a way to configure this to achieve traffic-split with Nginx ingress with the external traffic. I’d love to see your valuable advices on this to fix it. Please assist me.
My ingress controller version 3.10.0
Linkerd version: Client version: stable-2.9.1, Server version: stable-2.9.1
I went through the previous discussion but didn’t help.