I'm new to k8s. I deployed an ingress on minikube, and I found out its address to be localhost which it shouldn't be, I guess. For this, I don't know how to continue, for I should edit /etc/hosts/ to add dns item, but no I could not.
And this is my configuration file
kiloson@ubuntu:~$ cat kubia-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubia
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: kubia.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubia-nodeport
port:
number: 80minikube version
kiloson@ubuntu:~$ minikube version
minikube version: v1.24.0
commit: 76b94fb3c4e8ac5062daf70d60cf03ddcc0a741bUbuntu Info
kiloson@ubuntu:~$ neofetch
.-/+oossssoo+/-. kiloson@ubuntu
`:+ssssssssssssssssss+:` --------------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 20.04.3 LTS x86_64
.ossssssssssssssssssdMMMNysssso. Host: Virtual Machine 7.0
/ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 5.11.0-1022-azure
+ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 2 hours, 33 mins
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 648 (dpkg), 4 (snap)
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.0.17
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Terminal: /dev/pts/0
ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: Intel Xeon E5-2673 v4 (2) @ 2.294GHz
ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: 00:08.0 Microsoft Corporation Hyper-V virtual VGA
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Memory: 1493MiB / 7959MiB
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.localhost adress is correct. That's how minikube works.
You can get your minikube cluster ip with
minikube ipor
minikube service <service-name> --urlI was butting heads with this for a while and just got it working, so I'll add color to the other answers.
First of all, as pointed out in this related question, when you intially run minikube addons enable ingress it prints After the addon is enabled, please run "minikube tunnel" and your ingress resources would be available at "127.0.0.1".
After completing the steps in the tutorial and running into the issue in this question, I was able to hit the hello-world app by starting minikube tunnel and adding 127.0.0.1 hello-world.info to my /etc/hosts.
I am not sure why the tutorial execution of kubectl get ingress returns a non-localhost IP, but returns localhost when running locally, but it seems like the primary issue here is that while you are creating an ingress on the docker containers running minikube, you need to forward traffic to the containers through minikube tunnel to hit the now open ingress in minikube.
I have encountered the same issue.
The --publish-status-address=localhost is set in the args of nginx-ingress-controller.
https://github.com/kubernetes/minikube/blob/1b25cac7f5735be22f88a159b35b1996abba3c73/deploy/addons/ingress/ingress-deploy.yaml.tmpl#L373
I removed this arg and it worked.
$ kubectl edit deployments.apps -n ingress-nginx ingress-nginx-controller - args:
- /nginx-ingress-controller
- --election-id=ingress-controller-leader
- --controller-class=k8s.io/ingress-nginx
- --watch-ingress-without-class=true
- - --publish-status-address=localhost
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
- --report-node-internal-ip-address
- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
- --udp-services-configmap=$(POD_NAMESPACE)/udp-services
- --validating-webhook=:8443
- --validating-webhook-certificate=/usr/local/certificates/cert
- --validating-webhook-key=/usr/local/certificates/key