使外部访问Kubernetes服务

我们有一个私有的kubernetes集群运行在一个裸机的CoreOS集群上(带有Flannel的networking覆盖)和私有地址。

在这个集群之上,我们为elasticsearch运行一个kubernetes ReplicationController和Service。 要启用负载均衡,此服务具有一个定义的ClusterIP,它也是一个专用IP地址:10.99.44.10(但与节点IP地址的范围不同)。

我们面临的问题是我们希望能够从集群外部连接到这个ClusterIP。 据我们可以告诉这个私人IP是不是可以从我们的私人networking中的其他机器联系…

我们怎样才能做到这一点?


节点的IP地址是:

node 1 - 192.168.77.102 node 2 - 192.168.77.103 

这是服务,RC和Pod与kubectl一起出现的方式:

 NAME LABELS SELECTOR IP(S) PORT(S) elasticsearch <none> app=elasticsearch 10.99.44.10 9200/TCP CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS elasticsearch elasticsearch elasticsearch app=elasticsearch 1 NAME READY STATUS RESTARTS AGE elasticsearch-swpy1 1/1 Running 0 26m 

您需要设置您的服务的type

http://docs.k8s.io/v1.0/user-guide/services.html#external-services

如果您使用裸机,则没有集成LoadBalancer。 您可以使用NodePort在每个虚拟机上获取一个端口,然后设置您用于负载平衡的任何内容,以针对任何节点上的该端口。