Reb*_*loX 8 kubernetes kubectl minikube
我目前正在使用 minikube,并且我正在尝试使用 来访问我的应用程序,minikube tunnel因为服务类型是LoadBalancer.
当我执行 时,我能够获取外部 IP minikube tunnel,但是,当我尝试在浏览器上检查它时,它不起作用。我也尝试过Postman和curl,它们都不起作用。
除此之外,如果我进入 pod,我可以使用curl,它确实可以工作。此外,我执行了kubectl port-forward并且能够通过localhost访问我的应用程序。
有谁知道为什么我无法访问我的应用程序,即使一切似乎都运行正常?
小智 1
您的服务可能绑定到本地主机。Minikube 在绑定到外部 IP $(minikube ip) 的 VM 或 docker(取决于您使用的驱动程序)中启动集群。
当您运行 minikube 隧道时,您将从 minikube 集群外部 IP 隧道连接到负载均衡器的内部 IP,Kubernete 中的 LB 服务外部 IP 从“待处理”变为实际内部 IP,这样的操作应该可以工作:
curl -H 'Host: localhost' -v $(minikube ip)
Run Code Online (Sandbox Code Playgroud)
但是,它不会在浏览器中出现,因为在上面的命令中,您将请求发送到 minikube 的 IP,而不是 localhost。为了实现这一点,我所做的是像这样的 ssh 隧道:
ssh -i $(minikube ssh-key) docker@$(minikube ip) -L 8008:localhost:80
Run Code Online (Sandbox Code Playgroud)
这会将 minikube 集群中端口 80 中的 LB 侦听器映射到本地主机中的 8008。该服务的外部 IP 仍处于待定状态,但它可以工作,因为 Kube 控制器仍然可以找到它。如果要映射端口 80,则需要添加 sudo。
| 归档时间: |
|
| 查看次数: |
17981 次 |
| 最近记录: |