我有一个运行良好的 kubernetes 设置,但我似乎无法在外部公开服务。我认为我的网络设置不正确:
kubernetes 服务地址:--service-cluster-ip-range=172.16.0.1/16
法兰绒网络配置:etcdctl get /test.lan/network/config {"Network":"172.17.0.0/16"}
docker子网设置:--bip=10.0.0.1/24
主机节点IP:192.168.4.57
我已经运行了 nginx 服务,并且尝试像这样公开它:
[root@kubemaster ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-px6uy 1/1 Running 0 4m
[root@kubemaster ~]# kubectl get services
NAME LABELS SELECTOR IP(S) PORT(S) AGE
kubernetes component=apiserver,provider=kubernetes <none> 172.16.0.1 443/TCP 31m
nginx run=nginx run=nginx 172.16.84.166 9000/TCP 3m
然后我像这样暴露了服务:
kubectl expose rc nginx --port=9000 --target-port=9000 --type=NodePort
NAME LABELS SELECTOR IP(S) PORT(S) AGE
nginx run=nginx run=nginx 9000/TCP 292y
我现在希望能够访问主机节点 IP(192.168.4.57)上的 nginx 容器 - 我误解了网络吗?如果我有,可以解释一下:(
注意:这是在没有云提供商提供负载均衡器的物理硬件上,所以我认为 NodePort 是我唯一的选择?