I try to install Traefik Web UI, but under Vagrant, without Minikube. This is a Multi-Node setup. On the host machine, I tried to reach UI both under localhost:8081
(guest 8080 port exposed to host in Vagrantfile) and https://localhost:6443/api/v1/namespaces/kube-system/services/https:traefik-web-ui:/proxy/
without luck. Can you recommend a working setting? On this last URL, I'm getting this error:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "no endpoints available for service \"https:traefik-web-ui:\"",
"reason": "ServiceUnavailable",
"code": 503
}
SSHing into the master machine, the Web UI is working:
vagrant@my-project-master:/vagrant$ kubectl get services --namespace=kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
...
traefik-ingress-service ClusterIP 10.110.210.58 <none> 80/TCP,8080/TCP 4m30s
traefik-web-ui ClusterIP 10.98.235.112 <none> 80/TCP 4m29s
vagrant@my-project-master:/vagrant$ curl 10.110.210.58:8080/dashboard/
<!doctype html><html class="has-navbar-fixed-top"><head><meta charset="utf-8"><title>Traefik</title><base href="./"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/x-icon" href="./assets/images/traefik.icon.png"><link href="styles.e21e21d47be645f690e6.bundle.css" rel="stylesheet"/></head><body><app-root></app-root><script type="text/javascript" src="inline.318b50c57b4eba3d437b.bundle.js"></script><script type="text/javascript" src="polyfills.1457c99db4b6dba06e8d.bundle.js"></script><script type="text/javascript" src="scripts.ef668c5c0d42ec4c5e83.bundle.js"></script><script type="text/javascript" src="main.f341693bf9ed22060b42.bundle.js"></script></body></html>
The current ui.yml
:
---
apiVersion: v1
kind: Service
metadata:
name: traefik-web-ui
namespace: kube-system
spec:
selector:
k8s-app: traefik-ingress-lb
ports:
- name: web
port: 80
targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-web-ui
namespace: kube-system
spec:
rules:
#- host: traefik-ui.minikube
- host: traefik-ui.local
http:
paths:
- path: /
backend:
serviceName: traefik-web-ui
servicePort: web
Installed with:
kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-ds.yaml
#kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/ui.yaml
kubectl apply -f /vagrant/hashicorp/manifests/traefik/ui.yml
How can I reach the Web UI on the host machine, preferably make it available for the host browser with only an installed certificate?
I use the Kubernetes Dashboard similarly, with the certificate installed on the host browser.
I found the correct URL under the API to reach the UI:
https://localhost:6443/api/v1/namespaces/kube-system/services/http:traefik-ingress-service:8080/proxy/dashboard/
Making these commands obsolute:
kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/ui.yaml
# or
kubectl apply -f /vagrant/hashicorp/manifests/traefik/ui.yml