V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aljun
V2EX  ›  程序员

K8S API 网关用哪个比较好? ALB ingress controller 还是 APISIX 还是 KONG

  •  1
     
  •   aljun · 2023-08-22 00:50:24 +08:00 · 3926 次点击
    这是一个创建于 442 天前的主题,其中的信息可能已经有所发展或是发生改变。

    楼主目前有一个 EKS ,想要提供 API 服务,目前走的默认的 aws ingress controller ( https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.6/)

    但看了看 APISIX ,KONG 等方案貌似有完善的监控和控制方案,而且速度看上去还可以

    想问问各位目前大家线上走的是什么方案呢?

    有没有其他什么推荐呢?

    66 条回复    2024-07-21 19:49:20 +08:00
    darksheep9527
        1
    darksheep9527  
       2023-08-22 00:52:42 +08:00
    插眼 apisix 据说性能更好 另外文档有中文 kong 似乎一眼看过去没找到中文文档
    aljun
        2
    aljun  
    OP
       2023-08-22 00:53:55 +08:00
    @darksheep9527 关键是能解决多少问题,我倒不介意文档语言(当然文档写得好,写的全面很重要)
    darksheep9527
        3
    darksheep9527  
       2023-08-22 01:05:24 +08:00
    @aljun #2

    解决多少问题上面
    我个人经验技术浅薄也不清楚你需求不太发表的了建议
    看评论区其他大佬补充了

    不过个人使用来看一点感受就是
    apisix 的 issue 响应速度还挺快的
    他们还有专门的看板来标记 issue 的状态是 in projess 还是 done 这样 这个我个人觉得算是挺不错的优点

    但是从社区反馈来看 apisix 有个缺点就是 apisix 的 dashboard 没有太跟的上 apisix 的更新
    lopssh
        4
    lopssh  
       2023-08-22 01:09:29 +08:00 via Android
    apisx
    aljun
        5
    aljun  
    OP
       2023-08-22 01:16:16 +08:00
    @darksheep9527 dashboard 其实是很重要的一个点,kong 如何?
    aljun
        6
    aljun  
    OP
       2023-08-22 01:16:25 +08:00
    @lopssh 优势是?
    Casbin
        7
    Casbin  
       2023-08-22 01:24:53 +08:00
    API 网关用 CasWAF: https://github.com/casbin/caswaf 自带 dashboard Web UI ,所有操作均可用 dashboard 实现。自带单点登录和鉴权
    darksheep9527
        8
    darksheep9527  
       2023-08-22 01:27:19 +08:00
    @aljun #5 刚刚打开 apisix-dashboard 的 issue 列表看了一眼 好多 bug label lol
    aljun
        9
    aljun  
    OP
       2023-08-22 01:35:05 +08:00
    @Casbin k8s 好用吗?
    aljun
        10
    aljun  
    OP
       2023-08-22 01:35:18 +08:00
    @darksheep9527 所以靠谱不。。。?
    tramm
        11
    tramm  
       2023-08-22 08:56:22 +08:00
    Apinto
    specture
        12
    specture  
       2023-08-22 09:17:51 +08:00   ❤️ 1
    没有深度使用,但是从近期测试评估来看,apisix 的代码质量有很长的路要有。给人的感觉是 feature 很多,插件很多,但是 bug 也很多。近期遇到的 openid-connect 的 bug ,go-plugin-runner 的 bug 调了很久,最后一看 issue 都是还是 open 中的 bug... kong 没有仔细评估过
    salmon5
        13
    salmon5  
       2023-08-22 09:25:11 +08:00
    别用 kong ,相当坑
    bingfengfeifei
        14
    bingfengfeifei  
       2023-08-22 09:26:56 +08:00
    我们在用 APISIX 做二次开发,还没有上线。
    但是就本地轻度使用就遇到了很多 BUG 。
    1.一条 HTTP 流量二次进入插件的问题,甚至重启,删除插件都解决不了,清空 ETCD 重新建立才解决,应该是某个流程有泄漏。
    2.HTTPS 流量,一段时间后全部 500 ,应该是 3.4.0 最新版本引入的,ISSUE 上面已经有跟踪了,但是一个多月了没有解决。目前是回退版本规避
    3.解耦部署出现 ETCD 更新后,数据平面不同步的问题,偶现。

    用起来的感受就是特性很多,就是会出现一些非必现莫名其妙的问题。

    我还用过国产的 k8s 网络插件 kube-ovn ,感觉也是同样的路数,特性非常喜人,但是基本盘,稳定性会出现莫名其妙的致命问题。
    hui9000
        15
    hui9000  
       2023-08-22 09:46:40 +08:00
    最近也有这类需求,关注一下
    artnowben
        16
    artnowben  
       2023-08-22 10:03:03 +08:00
    nginx 开发门槛很高,国内能做好 nginx 的人不多。

    可以看下 bfe ingress ,稳定性应该不用担心
    orangeD
        17
    orangeD  
       2023-08-22 10:04:40 +08:00
    @salmon5 kong 有啥坑啊?
    darksheep9527
        18
    darksheep9527  
       2023-08-22 10:09:10 +08:00
    @specture 哈哈哈哈 最近也在折腾 openid-connect 你遇到的是什么坑啊
    chaleaochexist
        19
    chaleaochexist  
       2023-08-22 10:38:34 +08:00
    @darksheep9527 #3
    我补充下 3 楼
    kong 的 dashboard 是付费的...
    tudou1514
        20
    tudou1514  
       2023-08-22 10:47:35 +08:00
    推荐 apisix 、higress
    AmaQuinton
        21
    AmaQuinton  
       2023-08-22 11:12:49 +08:00
    推荐 kong ,挺好用的
    leopoldthecuber
        22
    leopoldthecuber  
       2023-08-22 11:27:32 +08:00
    Kong 官方的免费 dashboard: https://github.com/Kong/kong-manager
    aljun
        23
    aljun  
    OP
       2023-08-22 11:56:38 +08:00
    @tramm 这个有哪些采用了吗?
    aljun
        24
    aljun  
    OP
       2023-08-22 11:57:11 +08:00
    @specture 有很多坑吗?感觉这种核心的路径有坑是不是很难修?
    aljun
        25
    aljun  
    OP
       2023-08-22 11:58:00 +08:00
    @bingfengfeifei 那岂不是非常坑,而且这种核心路径的坑是不是很难修复?
    aljun
        26
    aljun  
    OP
       2023-08-22 11:58:53 +08:00
    @leopoldthecuber 上面不是说付费的吗?
    ljf
        27
    ljf  
       2023-08-22 12:20:25 +08:00
    apisix ,gloo
    zed1018
        28
    zed1018  
       2023-08-22 12:24:59 +08:00
    emm ,就没有人用 traefik 吗
    leopoldthecuber
        29
    leopoldthecuber  
       2023-08-22 13:07:11 +08:00
    @aljun 上周之前还是只有企业版才有 dashboard ,现在社区版也有了
    aljun
        30
    aljun  
    OP
       2023-08-22 13:11:51 +08:00
    @ljf 不是说 bug 很多吗?
    aljun
        31
    aljun  
    OP
       2023-08-22 13:12:10 +08:00
    @AmaQuinton 赞,bug 多吗?
    cdlnls
        32
    cdlnls  
       2023-08-22 13:33:07 +08:00
    用过几天的 apisix ,可能是我使用方式有问题(没有在 k8s 中运行,使用的单机部署),总感觉并不是很靠谱,有些插件有些奇怪的问题。
    wzcloud
        33
    wzcloud  
       2023-08-22 13:42:35 +08:00 via iPhone
    要不试一下 higress ,阿里去年开源的……
    看官方介绍可以对接 istio
    phantomzz
        34
    phantomzz  
       2023-08-22 13:45:53 +08:00
    请教下大家,k8s 中部署 apisix ,Prometheus 如何发现 apisix 的 metrics endpoint ?
    winglight2016
        35
    winglight2016  
       2023-08-22 13:47:01 +08:00
    我们在用 apisxis ,它的 dashboard 有巨大 bug ,根本没法用,所以自己开发了路由配置模块

    我们就是因为免费的 kong 没有 dashboard ,所以选了 apisix ,结果还是没用到。企业内部,可能还是自己开发专用 dashboard 比较方便,功能太多反而难以管理生产权限
    jonyJJ
        36
    jonyJJ  
       2023-08-22 14:09:59 +08:00
    不要用 apisix ,很多坑,建议 kong 配合社区的 dashboard ,或者用 higress
    GeekGao
        37
    GeekGao  
       2023-08-22 14:10:07 +08:00
    apisix 可以,用了两年了
    vmlinz
        38
    vmlinz  
       2023-08-22 14:11:49 +08:00 via iPhone
    直接 traefik 吧,简单稳定
    momo24672
        39
    momo24672  
       2023-08-22 14:14:09 +08:00
    k8s + kong-ingress 好用的
    四年生产经验
    aljun
        40
    aljun  
    OP
       2023-08-22 15:50:54 +08:00
    @cdlnls 能查到这些问题怎么解决吗?
    aljun
        41
    aljun  
    OP
       2023-08-22 15:51:11 +08:00
    @wzcloud 阿里的我有点怕。。。
    aljun
        42
    aljun  
    OP
       2023-08-22 15:51:53 +08:00
    @momo24672 遇到坑能查到解决方案吗?
    salmon5
        43
    salmon5  
       2023-08-22 15:53:22 +08:00
    @orangeD kong 2-3 年生产经验,碰到高 CPU 高内存的 bug ,另外它的集群模式我个人觉得设计有点 dirty ,反正我是不太喜欢 kong
    aljun
        44
    aljun  
    OP
       2023-08-22 16:12:07 +08:00
    @salmon5 平常安稳吗?出问题好查吗?
    momo24672
        45
    momo24672  
       2023-08-22 16:19:22 +08:00
    @aljun kong 的社区应该还是比较强的,选型的时候避开国产框架可以少踩坑。
    DeadLion
        46
    DeadLion  
       2023-08-22 16:29:11 +08:00
    在用 apisix , 更新的很频繁,但是质量确实跟不上,不敢追新,dashboard 跟 apisix 的版本匹配问题也是个迷。。。

    不要随意升级,之前 2.15.x 小版本升级,结果遇到破坏性升级导致插件开关失效,issue 上看发现是分支合并的问题,本来应该是合并到 3.x 版本上的变更,被合并到 2.15.x 了。。。。

    核心功能用下来倒是没啥问题
    AmaQuinton
        47
    AmaQuinton  
       2023-08-22 18:03:01 +08:00
    @aljun #31 生产上用的,不是最新版,但很稳定,没发现什么重大 bug
    killva4624
        48
    killva4624  
       2023-08-22 18:05:59 +08:00
    @leopoldthecuber #22 哇去,我们常年用 konga
    tudou1514
        49
    tudou1514  
       2023-08-22 18:43:08 +08:00
    @phantomzz 自己写一个 ServiceMonitor
    aragakiyuii
        50
    aragakiyuii  
       2023-08-22 19:07:54 +08:00 via iPhone
    traefik ,但是没有 dashboard
    aljun
        51
    aljun  
    OP
       2023-08-22 19:09:41 +08:00
    @aragakiyuii 看不少人推荐这个,有什么好处呢?
    iiusky
        52
    iiusky  
       2023-08-22 19:15:50 +08:00
    traefik 配合 k8s 才是 yyds 不配合 k8s 很难高效使用
    aljun
        53
    aljun  
    OP
       2023-08-22 19:29:44 +08:00
    @iiusky 目前是 k8s
    stephenxiaxy
        54
    stephenxiaxy  
       2023-08-23 09:20:49 +08:00
    apisix 吧
    nicoljiang
        55
    nicoljiang  
       2023-08-23 12:59:14 +08:00
    不要用 apisix 其他不好说。
    aljun
        56
    aljun  
    OP
       2023-08-23 14:24:06 +08:00
    @nicoljiang 为什么呢?
    nicoljiang
        57
    nicoljiang  
       2023-08-23 15:10:34 +08:00
    @aljun #14 楼有提到。
    然后我自己有限的两周不严谨试用:
    1. 发现有些插件总是会出现一点小小的不按预期工作(比如改写 resp 流、复制流 什么的);
    2. 然后 etcd 崩了两次(不确定是 etcd 自己的问题,还是 apisix 使用的问题);
    3. 基本功能也有问题,并且还不一定会解决(例如 https://github.com/apache/apisix/issues/4794
    4. 底层基于 Nginx ,但 Nginx 本身为高性能短连接设计,用在长连接不知道会出现什么问题(比如说遇到略长时间的 PUT 就会莫名其妙超时)
    tms
        58
    tms  
       2023-08-23 15:24:38 +08:00
    目前用的 contour ,或者拿 envoy 自己魔改。
    SaberJack
        59
    SaberJack  
       2023-08-23 18:50:24 +08:00
    必须 apisx
    specture
        60
    specture  
       2023-08-24 13:58:14 +08:00
    @darksheep9527 提示类似于"the error request to the redirect_uri path, but there's no session state found",但是尝试了各种方法都没法 work. 认证服务也尝试了各种.一看 issue 好几个类似的都 open 着
    specture
        61
    specture  
       2023-08-24 13:58:41 +08:00
    @salmon5 哪些坑啊?稳定性如何?
    darksheep9527
        62
    darksheep9527  
       2023-08-24 14:58:36 +08:00
    @specture 我也遇到过 emmm 但是没做好记录 出现场景和解决办法
    darksheep9527
        63
    darksheep9527  
       2023-08-24 15:04:54 +08:00
    @specture
    回忆了一下
    可能是在跳转到的登录界面停留了太久会出现
    不确定是一直不登录 还是 debug 太久导致的

    一个猜想 和 nginx 的 session 策略有关?
    set $session_storage 这些对应的?
    specture
        64
    specture  
       2023-08-24 19:44:10 +08:00
    @darksheep9527 我这边遇到的情况是都没有跳转到登录页
    GT1
        65
    GT1  
       2023-08-30 11:59:49 +08:00
    1.可以看看 apisix ,istio ,higress 的文档逻辑。另外 apisix 不是上商业版了吗,有使用过的吗。
    2. 再说一个,看看 istio 与 apisix 的 GitHub 。
    21,180 commits ; Releases 306
    3,964 commits ; Releases 50

    细节还很多,还要加油。主流程跑通了。。。
    kunlunhq
        66
    kunlunhq  
       107 天前
    @tudou1514 apisix 、higress 这俩哪个更适合生产环境?有优劣比较?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3160 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 00:35 · PVG 08:35 · LAX 16:35 · JFK 19:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.