Aggregated APIServer 构建云原生应用最佳实践

作者

张鹏,腾讯云容器产品工程师,拥有多年云原生项目开发落地经验。目前主要负责腾讯云 TKE 云原生 AI 产品的开发工作。

谢远东,腾讯高级工程师,Kubeflow Member、Fluid(CNCF Sandbox) 核心开发者,负责腾讯云 TKE 在 AI 场景的研发和支持工作。

概述

随着 Kubernetes 的日趋成熟,越来越多的公司、企业开始使用 K8s 来构建自己的云原生平台,基于 kubernetes 良好的扩展性以及成熟稳定的架构,你可以快速部署并管理自己的云原生应用。

目前我们也在基于 kubernetes 打造一个云原生 AI 平台(我们称它为:SKAI),该平台具备极致弹性多云兼容性高易用可观测性可复现性的特点,旨在利用云原生的思想和技术,为 AI 场景的数据处理、模型训练、模型上线推理等需求构建弹性可扩展的系统架构,从而提升资源利用率。

为了使我们的平台更加的云原生,我们没有选择常用的 web 框架来构建 API 服务,而是使用 kubernetes 扩展来构建整个平台,这样使我们的平台能更好的和 kubernetes 融合,可以无缝适配任何基于 k8s 的多云混合云环境。

为什么选择 Aggregated APIServer?

选择独立 API 还是 Aggregated APIServer ?

尽管使用 gin、go-restful 等 go 语言 web 框架可以轻易地构建出一个稳定的 API 接口服务,但以 kubernetes 原生的方式构建 API 接口服务还是有很多优势,例如:

  • 能利用 kubernetes 原生的认证、授权、准入等机制,有更高的开发效率;
  • 能更好的和 K8s 系统融合,借助 K8s 生态更快的推广自己的产品,方便用户上手;
  • 借助于 K8s 成熟的 API 工具及规范,构建出的 API 接口更加规范整齐;

但是在很多场景下,我们还是不能确定到底使用聚合 API(Aggregated APIServer)还是独立 API 来构建我们的服务,官方为我们提供了两种选择的对比;如果你不能确定使用聚合 API 还是独立 API,下面的表格或许对你有帮助:

考虑 API 聚合的情况 优选独立 API 的情况
你在开发新的 API 你已经有一个提供 API 服务的程序并且工作良好
你希望可以是使用 kubectl 来读写你的新资源类别 不要求 kubectl 支持
你希望在 Kubernetes UI (如仪表板)中和其他内置类别一起查看你的新资源类别 不需要 Kubernetes UI 支持
你希望复用 Kubernetes API 支持特性 你不需要这类特性
你有意愿取接受 Kubernetes 对 REST 资源路径所作的格式限制,例如 API 组和名字空间。(参阅 API 概述 你需要使用一些特殊的 REST 路径以便与已经定义的 REST API 保持兼容
你的 API 是
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"In aggregated query without GROUP BY"是一个错误信息,表示在一个聚合查询中没有使用GROUP BY子句。在SQL中,当使用聚合函数(如SUM、COUNT、AVG等)时,如果SELECT列表中还包含其他非聚合的列,则需要使用GROUP BY子句来指定按照哪些列进行分组。 这个错误信息的意思是,SELECT列表中的表达式1包含了非聚合的列'base_table.user_id',而在当前的sql_mode设置中,只允许在聚合查询中使用GROUP BY来指定分组。因此,需要修改查询语句,将非聚合的列添加到GROUP BY子句中,或者使用聚合函数对该列进行处理。 请注意,具体的修复方法可能因查询语句的具体情况而有所不同,可以根据错误信息中提供的具体查询语句进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [In aggregated query without GROUP BY是什么错误](https://blog.csdn.net/weixin_44126489/article/details/124429951)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MYSQL||报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains ...](https://blog.csdn.net/Inochigohan/article/details/122380585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值