同K8s集群Pod互访端口疑问及Minikube外部访问咨询
问题解答
为什么curl 10.244.0.10:32004超时,curl 10.244.0.10:80能成功?
- NodePort是Kubernetes集群节点上暴露的端口,并非Pod自身的端口。你的
my-webPod仅在容器内部监听80端口,因此直接访问Pod IP(10.244.0.10)加80端口可以正常连通。 - NodePort的工作逻辑是:当外部(或集群内通过节点IP)访问节点IP:32004时,Kubernetes的kube-proxy组件会将请求转发到后端Pod的TargetPort(即80端口)。你直接用Pod IP加NodePort访问时,Pod本身并未监听32004端口,所以会出现超时。
- 再明确Service的三个端口逻辑:
Port:Service在集群内部的访问端口,集群内其他Pod可通过ServiceIP:Port访问服务TargetPort:后端Pod实际监听的端口,Service会将流量转发至该端口NodePort:集群节点上开放的端口,外部可通过节点IP:NodePort访问服务
MacOS Minikube集群中从主机访问my-web的方式
- 方法一:
- 先获取Minikube节点的IP:
minikube ip - 使用该IP搭配NodePort(32004)访问,例如得到的节点IP为192.168.49.2,就访问
http://192.168.49.2:32004
- 先获取Minikube节点的IP:
- 方法二:直接通过Minikube快捷命令自动生成并打开访问地址:
minikube service my-web
内容的提问来源于stack exchange,提问作者loud_mouth
相关产品推荐
相关产品推荐

