我们有一个运行在具有私有(private)地址的裸机CoreOS集群(带有用于网络覆盖的Flannel)上的私有(private)kubernetes集群。

在该集群的顶部,我们运行了一个用于Elasticsearch的kubernetes ReplicationController和Service。为了启用负载平衡,此服务定义了ClusterIP-这也是一个专用IP地址:10.99.44.10(但与节点IP地址的范围不同)。

我们面临的问题是我们希望能够从群集外部连接到此ClusterIP。据我们所知,这个私有(private)IP无法与我们私有(private)网络中的其他机器联系...

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

节点的IP地址为:

 node 1  - 192.168.77.102
 node 2  - 192.168.77.103



这是kubectl与Service,RC和Pod一起出现的方式:
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在每个VM上获取一个端口,然后设置用于负载平衡的任何内容以针对任何节点上的该端口。

关于docker - 使Kubernetes服务可以从外部访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32636730/

10-13 07:48
查看更多