无法从网络外访问Kubernetes服务

时间:2019-02-19 18:43:43

标签: networking kubernetes vmware kubeadm

我在具有主节点和4个工作程序的vmware中运行kub集群。 除了我的服务外,其他一切都正常 我使用4个实例(每个工作程序一个)运行nginx RS,并创建一个NodePort服务。我可以在每个工作人员ip上访问我的nginx,但我想请求我的服务IP,我的服务会将流量路由到我的一个工作人员(例如:RoundRobin)。 但它不能做到这一点。 我的服务信息:

service/nginx        NodePort    10.99.101.86   <none>        80:30590/TCP   11d

Name:                     nginx
Namespace:                default
Labels:                   app=nginx
Annotations:              <none>
Selector:                 app=nginx
Type:                     NodePort
IP:                       10.99.101.86
Port:                     80-80  80/TCP
TargetPort:               80/TCP
NodePort:                 80-80  30590/TCP
Endpoints:                10.40.0.16:80,10.40.0.20:80,10.40.0.21:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

1 个答案:

答案 0 :(得分:1)

通常,type: NodePort可能不会在群集网络Here之外公开该端口分配,但是使用type: LoadBalancer会分配该端口(在您的情况下为30590)并允许通过单个入口通过您可能已配置的任何入口(群集主设备的浮动IP,例如http://:30590)访问流量。至于该节点端口如何分配请求,您可以查看on its own中最适合您期望分配的externalTrafficPolicy资源,但是,目前Cluster的默认策略将平均分配请求,可能与您描述的循环行为最接近。