提问者:小点点

Kubernetes没有为入口分配地址


我是k8s的初学者,我按照k8s官方文档创建了一个hel-world入口,但我无法使其工作。首先,我创建了一个服务,就像我得到的教程一样:

$ kubectl get service web 

NAME   TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
web    NodePort   10.100.208.38   <none>        8080:31921/TCP   19m

因此,我可以通过浏览器访问我的服务:

$ minikube service web

Hello, world!
Version: 1.0.0
Hostname: web-79d88c97d6-xrshs 

到现在为止,一直都还不错。然而,我被困在入口部分。因此,我创建了类似于教程的入口:

$ kubectl describe ingress example-ingress

Name:             example-ingress
Namespace:        default
Address:          
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend"  not found>)
Rules:
Host              Path  Backends
----              ----  --------
hello-world.info  
                /   web:8080 (172.17.0.4:8080)
Annotations:        nginx.ingress.kubernetes.io/rewrite-target: /$1
...

甚至在用我的minikube ip配置了/etc/hosts之后:192.168.99.102 hello world。信息,当我卷曲它或通过浏览器访问时,我会得到nginx 404。奇怪的是,我的入口没有地址,即使过了一段时间。有人能告诉我错误在哪里吗?

附言:我在这里询问之前做了研究。我检查minikube ingress插件是否已启用,ingress nginx控制器pod是否正在运行。

我的minikube版本是1.23,kubectl客户端和服务器版本是1.22.1。


共1个答案

匿名用户

如本文所述,Minikube 1.23.0的Ingress插件似乎有一个bug,与您看到的问题相匹配。ConfigMap问题阻止生成IngressClass(默认情况下通常为“nginx”),ingress服务将无法工作。

此问题已在1.23.1中修复,因此更新Minikube应该可以解决您的问题。