Bad Gateway with traefik Ingress

7/13/2019

I'm using minikube with traefik ingress to create a sticky sessions.

So i have done the deploy of traefik that user guide kubernetes provides me. https://docs.traefik.io/user-guide/kubernetes/

I deploy traefik using DaemonSet. Cause it's a small project and is my first time using kubernetes and docker.

This is my ingress yaml file

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cp-pluggin
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: cppluggins.minikube
    http:
      paths:
      - path: /
        backend:
          serviceName: cp-pluggin
          servicePort: 80

My service yaml file

apiVersion: v1
kind: Service
metadata:
  name: cp-pluggin
  annotations:
    traefik.ingress.kubernetes.io/affinity: "true"
    traefik.ingress.kubernetes.io/session-cookie-name: "sticky"
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
    name: http
  selector:
    app: cp-pluggin-app

Finally, my deployment yaml file

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cp-pluggin-app
  labels:
    app: cp-pluggin-app

spec:  
  replicas: 3
  selector:
    matchLabels:
      app: cp-pluggin-app
  template:
    metadata:
      labels:
        app: cp-pluggin-app
    spec:
      containers:
      - name: cp-pluggin-app
        image: essoca/ubuntu-tornado
        ports:
        - containerPort: 8080

I expected Hello world from: [ipserver] But i get a bad gateway

-- Pablo Ariza Luna
kubernetes
kubernetes-ingress
traefik

1 Answer

11/26/2019

I assume you are using Traefik 2.0, the latest version as of now. There are quite some changes in this version, i.e. the annotations are not used anymore. Besides that, I think the code that you posted is missing a big part of the required changes.

Also, it's not very useful to use a DaemonSet because you are using minikube and that's always one node. Using a Deployment will at least allow you to play with the scale up/down functionality of Kubernetes.

I wrote this article that might be useful for you Traefik 2 as Ingress Controller

-- kube-berny
Source: StackOverflow