在minikube中运行Ingress,其地址显示为localhost

z f*_*aye 9 kubernetes kubernetes-ingress

我是 k8s 新手。我在 minikube 上部署了一个入口,我发现它的地址是localhost不应该的,我猜。为此,我不知道如何继续,因为我应该编辑/etc/hosts/以添加 dns 项目,但我不能。
在此输入图像描述

这是我的配置文件

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: 80
Run Code Online (Sandbox Code Playgroud)

minikube版本

kiloson@ubuntu:~$ minikube version
minikube version: v1.24.0
commit: 76b94fb3c4e8ac5062daf70d60cf03ddcc0a741b
Run Code Online (Sandbox Code Playgroud)

乌班图信息

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+/-.
Run Code Online (Sandbox Code Playgroud)

Pau*_*ack 6

我对此进行了一段时间的思考,并且刚刚开始工作,所以我将为其他答案添加色彩。

首先,正如这个相关问题所指出的,当您最初运行它时,minikube addons enable ingress它会打印After the addon is enabled, please run "minikube tunnel" and your ingress resources would be available at "127.0.0.1"

完成教程中的步骤并遇到此问题中的问题后,我能够通过启动minikube tunnel并添加127.0.0.1 hello-world.info到我的/etc/hosts.

我不确定为什么教程执行会kubectl get ingress返回非本地主机 IP,但localhost在本地运行时会返回,但这里的主要问题似乎是,当您在运行 minikube 的 docker 容器上创建入口时,您需要转发流量到容器中,到达minikube tunnelminikube 中现在打开的入口。


小智 4

localhost地址是正确的。这就是 minikube 的工作原理。

您可以通过以下方式获取您的 minikube 集群 ip

minikube ip
Run Code Online (Sandbox Code Playgroud)

或者

minikube service <service-name> --url
Run Code Online (Sandbox Code Playgroud)