【发布时间】:2021-12-01 00:45:04
【问题描述】:
我是 k8s 的初学者,我按照 k8s official docs 创建了一个 hello-world ingress,但我无法让它工作。首先我创建一个服务,就像我得到的教程一样:
$ 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
到目前为止一切顺利。但是,我陷入了入口部分。所以我像tutorial一样创建这个入口:
$ 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: 192.168.99.102 hello-world.info 配置 /etc/hosts 之后,当我 curl 或通过浏览器访问时,我得到 nginx 404。奇怪的是我的入口没有得到地址,即使过了一段时间。谁能指出错误在哪里?
PS。在询问here 之前,我进行了研究。我检查我的 minikube 入口插件是否已启用并且我的 ingress-nginx-controller pod 正在运行。
PS2。我的 minikube 版本是 1.23,我的 kubectl 客户端和服务器版本是 1.22.1。
【问题讨论】:
-
你能显示入口控制器 pod 日志吗?
-
... 既没有指定 --kubeconfig 也没有指定 --master。使用 inClusterConfig。这可能不起作用...“由于验证入口类时出错而忽略入口” ingress="default/example-ingress" error="ingress 不包含有效的 IngressClass" ... 更新锁失败:configmaps "ingress- controller-leader”被禁止:用户“system:serviceaccount:ingress-nginx:ingress-nginx”无法更新命名空间“ingress-nginx”中API组“”中的资源“configmaps”
-
你也可以
kubectl get ingressclass -A吗? -
kubectl get ingressclass -A: "No resources found"
-
你运行的是 Minikube 1.23.0 吗?
标签: kubernetes kubernetes-ingress