需求:k8s 集群中部署了一个 prometheus 服务,现在外部环境的服务需要访问这个服务的 /api/v1/query 接口,访问不频繁,主要是实现查询指标功能。现在有两种方式,不知道哪种比较合适,求大佬科普。
给 prometheus 服务开一个主机端口 9090 ,通过 ip:9090/api/v1/query 的方式访问,这个应该最常见,但是需要暴露一个主机端口。
通过 api server 的 proxy 功能访问,路径为: https://ip:8443/api/v1/namespaces/kube-system/pods/prometheus/proxy/api/v1/query 。这种方式好像不太常见,不知道是否推荐。
|      1hackroad      293 天前  1 ingress | 
|  |      3Frankcox      293 天前  1 ingress 当成一个正常的 web 服务暴露 | 
|  |      5defunct9      293 天前  1 ingress | 
|      6xcai      293 天前  1 但是不想在集群中做额外的操作  结论:无,就用 NodePort 吧 | 
|  |      7seers      293 天前 via Android  1 kebevpn | 
|  |      9defunct9      293 天前 违反逻辑啊,开 ingress 跟开 NodePort 区别不大啊。尤其开 NodePort ,每个 worker node 上都得捅个口子,前面的 LB 又怎么搞 | 
|  |      10brom111      293 天前  1 这两种相比肯定是第一种好 Nodeport | 
|      11vkillwucy      293 天前 via Android  1 能用就行那就 nodeport | 
|      12JoeJasper      293 天前  1 Gateway API | 
|  |      14mightybruce      293 天前  1 专业一点都是 ingress, 南北流量 基本都是走 Ingress 或者 LB. 如果就是玩玩而已,集群可以搞 nodeport | 
|  |      15defunct9      293 天前 弄 ingress 也就 5 分钟的事,有啥难度。反倒是 nodeport 或者 api 反代麻烦死 | 
|  |      16anubu      293 天前  1 第二种似乎更不妥,对一个业务暴露控制平面容易挖坑。 | 
|  |      17cheng6563      293 天前 暴露主机端口很正常的 | 
|  |      18cheng6563      293 天前  1 尤其是一些非 HTTP 端口不能用 Ingress 的 | 
|      19zealot0630      293 天前 via Android  1 gateway API | 
|      20xwh      293 天前  1 不想用 nodeport ingress 就在集群的 node 节点上装个 nginx ,代理 prometheus 的的 clusterIP 。 | 
|  |      21sunzhenyucn      293 天前  1 Ingress, Ingress 不只是为 http 类端口服务的, 你像 APISIX 就提供了 Stream Proxy 来帮助代理基于 TCP 或 UDP 协议的面向流式的流量, 不过这并不是一个银弹, 适用场景可以参考官方文档。 P.S. 无利益相关 | 
|      22julyclyde      293 天前  1 nodeport 模式都不知道哪个 sb 设计的,需要在所有 node 上协商出同一个端口 按说你这样普通 http 服务就直接用 api server proxy 就行了; ingress 或者 loadbalancer 模式的 service 有点大材小用 | 
|  |      23neilyoone      293 天前  1 如果是云平台部署的 K8S, 你需要绑定一个 CLB 给 如果是自建数据中心的 K8S, 你需要部署一个 MetalLB 来作为 HA IP 提供者 单纯的 ingress 并不能将流量从外部打通到 K8S 内部 | 
|      24homolabby      293 天前  1 图省事 host port 就够了,就在 container 的 port 里面加上主机端口,想要好一点就 metal lb 或者 ingress ,但是这两者本质依然是 node port |