For the complete documentation index, see llms.txt. This page is also available as Markdown.

minikube Ingress

虽然 minikube 支持 LoadBalancer 类型的服务,但它并不会创建外部的负载均衡器,而是为这些服务开放一个 NodePort。这在使用 Ingress 时需要注意。

本节展示如何在 minikube 上开启 Ingress Controller 并创建和管理 Ingress 资源。

启动 Ingress Controller

minikube 已经内置了 ingress addon,只需要开启一下即可

$ minikube addons enable ingress

稍等一会,nginx-ingress-controller 和 default-http-backend 就会起来

$ kubectl get pods -n kube-system
NAME                             READY     STATUS    RESTARTS   AGE
default-http-backend-5374j       1/1       Running   0          1m
kube-addon-manager-minikube      1/1       Running   0          2m
kube-dns-268032401-rhrx6         3/3       Running   0          1m
kubernetes-dashboard-xh74p       1/1       Running   0          2m
nginx-ingress-controller-78mk6   1/1       Running   0          1m

创建 Ingress

首先启用一个 echo server 服务

$ kubectl run echoserver --image=gcr.io/google_containers/echoserver:1.4 --port=8080
$ kubectl expose deployment echoserver --type=NodePort
$ minikube service echoserver --url
http://192.168.64.36:31957

然后创建一个 Ingress,将 http://mini-echo.iohttp://mini-web.io/echo 转发到刚才创建的 echoserver 服务上

为了访问 mini-echo.iomini-web.io 这两个域名,手动在 hosts 中增加一个映射

然后,就可以通过 http://mini-echo.iohttp://mini-web.io/echo 来访问服务了。

使用 xip.io

前面的方法需要每次在使用不同域名时手动配置 hosts,借助 xip.io 可以省掉这个步骤。

跟前面类似,先启动一个 nginx 服务

然后创建 Ingress,与前面不同的是 host 使用 nginx.$(minikube ip).xip.io

然后就可以直接访问该域名了

Last updated