我是k8s初学者。
我的测试计算机中有一个 k8s 集群(不是 minikube)。 集群是由Kind创建的。 (...不知道Kind是什么。这是我同事推荐的).
然后我创建了:
我希望在通过以太网与 k8s 计算机连接的different 计算机上使用网络浏览器访问 http 服务器。
但是,它不起作用。客户端电脑在没有运行k8s的情况下可以访问http服务器(如果我在命令行手动启动的话),但是如果运行在k8s的pod中,http服务器是无法访问的
kubectl describe nodes
命令显示k8s计算机有一个“内部IP”与该计算机的“真实”IP不同:
$ kubectl describe nodes
Name: kind-control-plane
Roles: control-plane
...
Addresses:
InternalIP: 172.17.0.2
Hostname: kind-control-plane
Capacity:
...
$ ip addr
1: ...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:a5:14:ab brd ff:ff:ff:ff:ff:ff
inet 10.7.71.173/20 brd 10.7.79.255 scope global eth0
...
在上面的输出中,10.7.71.173 是“真实”IP,172.17.0.2 显示为“内部 IP”。
我可以通过“内部 IP”访问(curl)http 服务器,但它只适用于 k8s 计算机。
我在谷歌上搜索了很长时间以了解 k8s 内部 IP 的解释,但我只得到一个半理解的答案:k8s 内部 ip 是一个 NAT IP(我了解 NAT 是什么)。但是我还是不太清楚k8s的内部IP是什么,为什么要使用内部IP。
更重要的是,网上很多帖子都说NodePort服务允许集群外访问pod中的app。这与我所经历的不同。
所以我的问题是:
欢迎任何解释或链接到文章/帖子。非常感谢。