Hello,
I am running the latest version of Traefik that's out, 2.4.8 that was installed via the helm chart. I have the traefik service setup as a NodePort type service so that I could use an AWS ALB. I am using the AWS ALB Ingress controller to provision the ALB. The reason I am using an ALB is because I have a requirement of stickying sessions and also need to support websockets connections from clients.
I am trying to access the swagger page like so:
https URL => AWS ALB => traefik inside k8s => app, but I am getting a 404 when doing so. I am seeing the traffic hit the traefik proxy, but with the 404..
Below is my ingress that points the ALB to my Traefik service
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-external-alb-ingress
namespace: traefik-mesh
annotations:
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig":
{ "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
alb.ingress.kubernetes.io/backend-protocol: HTTP
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:xxxxxxx:certificate/xxxxxxxx
alb.ingress.kubernetes.io/healthcheck-port: traffic-port
alb.ingress.kubernetes.io/healthcheck-path: /ping
alb.ingress.kubernetes.io/healthcheck-protocol: HTTP
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: internet-facing
kubernetes.io/ingress.class: alb
labels:
app: traefik-external-alb
spec:
rules:
- http:
paths:
- path: "/*"
backend:
serviceName: traefik-external-alb
servicePort: 443
Below is my IngressRoute config:
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
annotations:
kubernetes.io/ingress.class: traefik-external-alb
name: signalhub-ingress-secure
namespace: microservices
spec:
tls: {}
entryPoints:
- websecure
routes:
- match: Host(`signalr-gateway-url.mydomain.com`)
kind: Rule
services:
- name: signalr-api
port: 8080
sticky:
cookie: {}
additionalArguments:
- "--providers.kubernetescrd.ingressclass=traefik-external-alb"
- "--ping.entryPoint=websecure"
I had to make some modifications on the ALB side for the health check to work, so in the values I have the health check port set to 8443 and ping is set to use the websecure entrypoint (for ping so the ALB can access it for the healthcheck). Any help or ideas would be greatly appreciated. Thanks!