求教:外部服务访问 kubernetes 集群中服务的方式该如何选择?

10 小时 37 分钟前
 douz

需求:k8s 集群中部署了一个 prometheus 服务,现在外部环境的服务需要访问这个服务的 /api/v1/query 接口,访问不频繁,主要是实现查询指标功能。现在有两种方式,不知道哪种比较合适,求大佬科普。

  1. 给 prometheus 服务开一个主机端口 9090 ,通过 ip:9090/api/v1/query 的方式访问,这个应该最常见,但是需要暴露一个主机端口。

  2. 通过 api server 的 proxy 功能访问,路径为: https://ip:8443/api/v1/namespaces/kube-system/pods/prometheus/proxy/api/v1/query 。这种方式好像不太常见,不知道是否推荐。

688 次点击
所在节点    Kubernetes
24 条回复
hackroad
10 小时 36 分钟前
ingress
douz
10 小时 28 分钟前
@hackroad 这个了解过一点,但是不想在集群中做额外的操作,加上对 k8s 也不太熟悉
Frankcox
10 小时 28 分钟前
ingress 当成一个正常的 web 服务暴露
douz
10 小时 26 分钟前
@Frankcox 这个需求用不上这个,目前的访问逻辑就是通过集群 ip:port 去访问
defunct9
10 小时 24 分钟前
ingress
xcai
10 小时 22 分钟前
但是不想在集群中做额外的操作 结论:无,就用 NodePort 吧
seers
10 小时 18 分钟前
kebevpn
Frankcox
10 小时 10 分钟前
@douz #4 那就 NodePort 暴露端口吧
defunct9
10 小时 5 分钟前
违反逻辑啊,开 ingress 跟开 NodePort 区别不大啊。尤其开 NodePort ,每个 worker node 上都得捅个口子,前面的 LB 又怎么搞
brom111
10 小时 3 分钟前
这两种相比肯定是第一种好 Nodeport
vkillwucy
10 小时 2 分钟前
能用就行那就 nodeport
JoeJasper
10 小时 0 分钟前
Gateway API
douz
9 小时 58 分钟前
@defunct9 #9 确实有点不妥,这也是考虑第二种方式的原因。
mightybruce
9 小时 58 分钟前
专业一点都是 ingress, 南北流量 基本都是走 Ingress 或者 LB.
如果就是玩玩而已,集群可以搞 nodeport
defunct9
9 小时 54 分钟前
弄 ingress 也就 5 分钟的事,有啥难度。反倒是 nodeport 或者 api 反代麻烦死
anubu
9 小时 47 分钟前
第二种似乎更不妥,对一个业务暴露控制平面容易挖坑。
cheng6563
9 小时 43 分钟前
暴露主机端口很正常的
cheng6563
9 小时 42 分钟前
尤其是一些非 HTTP 端口不能用 Ingress 的
zealot0630
9 小时 20 分钟前
gateway API
xwh
8 小时 53 分钟前
不想用 nodeport ingress 就在集群的 node 节点上装个 nginx ,代理 prometheus 的的 clusterIP 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1104172

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX