首页 文章

在Rancher 2.0 Kubernetes中,如果没有Loadbalancer入口,则不能以循环方式提供ClusterIP模式服务

提问于
浏览
1

What I have:

我使用单节点Rancher 2.0部署创建了一个Kubernetes集群 . 其中有3个etcd,控制节点和2个工作节点连接到集群 .

What I did:

我在这个集群中部署了一个API网关,并在端口5000上的2个节点上部署了一个带有5个pod的 mydemoapi 服务(无数据库),我不想公开公开 . 因此,我只是在API网关 http:\\mydemoapi:5000 中使用服务名称映射了该服务 endpoints ,并且网关公共 endpoints 可以访问它 .

Problem statement:

mydemoapi 服务以随机方式提供,而不是循环提供,因为 kube-proxy 的默认设置是随机的Rancher documentation Load balancing in Kubernetes

Partial success:

我在Rancher规则中使用 Keep the existing hostname option 创建了一个入口负载均衡器,使用此URL mydemoapi.<namespace>.153.xx.xx.102.xip.io 并将此服务附加到ingress,它以循环方式提供,但有一个问题 . 此服务使用xip.io与我的工作节点的公共IP并公开公开 .

Help needed:

我想将我的内部clusterIP服务映射到具有内部访问权限的网关,以便它可以以循环方式内部提供给网关,从而提供给网关公共 endpoints . 我不想在没有网关的情况下公开我的服务 .

1 回答

  • 1

    不确定您正在运行哪个 Cloud ,但如果您在AWS之类的东西中运行,则可以在 Service 定义上将以下注释设置为 true

    service.beta.kubernetes.io/aws-load-balancer-internal: "true"
    

    其他 Cloud 提供商也有类似的解决方案,有些甚至没有 . 在这种情况下,您将必须使用NodePort服务并重定向外部负载均衡器,例如haproxynginx,以将流量转发到NodePort

    另一种选择是,如果你想在服务之间进行循环,则根本不使用 Ingress 更改 kube-proxy 配置以使用旧的namespace代理模式或更强化的ipvs代理模式 .

相关问题