How to verify working Traefik installation?

11/13/2017

I'm in the process of setting up Traefik on a Kubernetes cluster, but I can't get it to work, so I need some troubleshooting help. The first thing I would like to verify is that the basic installation is successful.

The guide I'm following is this one:

https://docs.traefik.io/user-guide/kubernetes/

But, I'm installing on a 3-machine cluster (Master + 2x Nodes).

I have setup RBAC and create a Deployment / Service for Traefik. The Pod is up and running:

$ kubectl get pods --namespace kube-system
NAME                                          READY     STATUS    RESTARTS   AGE
traefik-ingress-controller-7cf98d69cf-n2trx   1/1       Running   0          1h

This is the Service:

$ kubectl get services --namespace kube-system
NAME                      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                       AGE
traefik-ingress-service   NodePort    10.107.17.76    <none>        80:30820/TCP,8080: 31362/TCP   1h

Should I be able to access the Traefik Web UI now?

I tried to access "http://192.168.1.11:31362" from a web browser and it behaves a bit strange. I get a "404 page not found" error in the browser window, but the address bar in the browser changes to: "http://192.168.1.11:31362/dashboard/". That tells me that something is responding at that address / port.

This is the result of a Curl to the same address:

$ curl http://192.168.1.11:31362/
<a href="/dashboard/">Found</a>.

Is this normal behaviour at this step in the process?

I have also tried to test with an Service / Ingress like this:

apiVersion: v1
kind: Service
metadata:
  name: test-service
spec:
  selector:
    app: homeautomationweb
  ports:
  - port: 80
    targetPort: 31047
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: test.no
    http:
      paths:
      - backend:
          serviceName: test-service
          servicePort: 80

I have a working web application running in the cluster exposed on a node port and is accessible outside the cluster at http://http://192.168.1.11:31047/.

The DNS name "test.no" is defined in /etc/hosts as 192.168.1.11

But, when I try to access http://test.no, I get:

"test.no refused to connect"

The details of what I'm doing and the exact content of the Kubernetes Yaml files can be found at the end of this article:

https://github.com/olavt/KubernetesRaspberryPI

-- OlavT
kubernetes
traefik

0 Answers