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

243 天前
 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 。这种方式好像不太常见,不知道是否推荐。

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