无法连接到mac M1上的$(minikube ip):$NODE_PORT



我正在minikube上学习kubernetes。我研究了kubernetes官方文档,并在沙盒环境中学习了他们的交互式教程。在沙箱中一切正常,但我在我的系统上尝试了同样的事情,它失败了。

My Setup:

  • 我在Apple M1上使用macOS Big Sur 11.6.2(20G314)。
  • 我使用docker代替minikube的虚拟机环境。

复制步骤:

首先创建了一个部署,然后创建了一个NodePort类型的服务,将其公开给外部流量。

pod运行正常,服务描述中没有问题。

为了测试应用程序是否暴露在集群外部,我使用curl向节点发送请求:

curl $(minikube ip):$NODE_PORT

但是我没有得到服务器的响应:

curl:(7)连接192.168.XX失败。X端口32048:Operation timed out.

我已经复制了教程中所做的一切。相同的部署名称,相同的映像,相同的服务名称,实际上是一切。

我尝试了LoadBalancer类型,但发现minikube不支持它。为了访问LoadBalancer部署,我使用命令minikube tunnel,但这没有帮助。

可能的原因是什么?是我的系统吗?

我在我的m1 mac上也有这个问题。我能够通过使用这个命令访问服务:

kubectl port-forward svc/kubernetes-bootcamp 8080:8080

您可以查看这篇文章和这个答案,以获得更多信息和方法。

这实际上取决于您使用的minikube驱动程序"docker", "qemu"等。

如果你正在使用Docker驱动程序(这是minikube macOS的默认驱动程序),那么你应该使用minikube tunnelminikube service xxxx来访问NodePort。

使用qemu2+socket_vmnet,您可以直接连接到minikube ip和端口(不需要minikube tunnel/minikube service xxx:

brew install socket_vmnet
sudo brew services start socket_vmnet
minikube delete --all
minikube start --vm --addons=ingress,dashboard
😄  minikube v1.30.1 on Darwin 13.3.1 (arm64)
✨  Automatically selected the qemu2 driver
🌐  Automatically selected the socket_vmnet network
kubectl create deployment hello-minikube1 --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube1 --type=NodePort --port=8080
kubectl get service
NAME              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
hello-minikube1   NodePort    10.109.118.67   <none>        8080:30521/TCP   0s
kubernetes        ClusterIP   10.96.0.1       <none>        443/TCP          2m10s
kubectl get service hello-minikube1 --output='jsonpath={.spec.ports[0].nodePort}'
30521
curl  -m 2 "http://$(minikube ip):30521" 
Request served by hello-minikube1-8587cd9b85-zrpz6

相关内容

  • 没有找到相关文章

最新更新