I am trying to deploy a Traefik Ingress controller in my minikube environment by following this:
helm install stable/traefik --name-template traefik --set dashboard.enabled=true,dashboard.domain=dashboard.traefik,rbac.enabled=true --namespace kube-system
Even after half an hour I still see that External IP is pending:
pascals@pascals:~$ kubectl get svc -l app=traefik -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
traefik LoadBalancer 10.96.172.128 <pending> 443:30812/TCP,80:31078/TCP 20m
traefik-dashboard ClusterIP 10.96.56.105 <none> 80/TCP 20m
Ideally I would like to reach http://dashboard.traefik
but I am not able to do so.
I tried to assign an External Ip using the kubectl patch
Api:
kubectl patch svc traefik -n kube-system -p '{"spec":{"externalIPs":["192.168.99.107"]}}'
where, 192.168.99.107 is the minikube ip. This however still did not solve my problem.
Appreciate any nudge in the right direction!
You should install some Kubernetes bare-metal load balancer, like MetalLB
The external IP is assigned by the ServiceController if any cloud provider
used in the cluster, usually in managed clusters.
In a minikube
cluster, LoadBalance-typed Service will never have an external IP. You can access Services through minikubeip:nodeport
, or running minikube service
. For the Service traefik-dashboard
, it should be a NodePort-typed Service first.