DHorse 改用 fabric8 的 SDK 与 K8s 集群交互
现状
在dhorse 1.4.0版本之前,一直使用k8s官方提供的sdk与k8s集群交互,官方sdk的Maven坐标如下:
<dependency> <groupId>io.kubernetes</groupId> <artifactId>client-java</artifactId> <version>18.0.0</version> </dependency>
但是自从1.4.0版本以后,dhorse开始支持fabric8的sdk,fabric8的sdk的Maven坐标如下:
<dependency> <groupId>io.fabric8</groupId> <artifactId>kubernetes-client</artifactId> <version>6.9.0</version> </dependency>
那么,为什么要替换为fabric8的sdk与k8s交互呢?
k8s官方与fabric8的对比
1.社区方面
两者的关注度上,都差不多,没有太大差别;
但是,fabric8的sdk提供的文档和示例更加完善,而k8s官方提供的示例较少;
2.功能方面
fabric8不仅支持k8s,同时也支持OpenShift,而官方sdk支持k8s;
3.包大小
k8s官方sdk依赖的sdk过大,有30M左右,而fabric8只有不到10M;
使用官方的sdk也会导致dhorse的安装包过大。
4.API使用方面
举个例子,以查询k8s集群的命名空间列表为例,说明代码如下。
官方:
ApiClient apiClient = this.apiClient(clusterPO.getClusterUrl(), clusterPO.getAuthToken()); CoreV1Api coreApi = new CoreV1Api(apiClient); List<ClusterNamespace> namespaces = new ArrayList<>(); String labelSelector = null; if(pageParam != null && !StringUtils.isBlank(pageParam.getNamespaceName())) { labelSelector = "kubernetes.io/metadata.name=" + pageParam.getNamespaceName(); } try { V1NamespaceList namespaceList = coreApi.listNamespace(null, null, null, null, labelSelector, null, null, null, null, null); } catch (ApiException e) { String message = e.getResponseBody() == null ? e.getMessage() : e.getResponseBody(); LogUtils.throwException(logger, message, MessageCodeEnum.CLUSTER_NAMESPACE_FAILURE); }
fabric8:
try(KubernetesClient client = client(clusterPO.getClusterUrl(), clusterPO.getAuthToken())){ ListOptions o = new ListOptions(); if(pageParam != null && !StringUtils.isBlank(pageParam.getNamespaceName())) { o.setLabelSelector("kubernetes.io/metadata.name=" + pageParam.getNamespaceName()); } namespaceList = client.namespaces().list(o); }
可以看出,官方提供的API接口不够简洁,而且抛出了不必要的异常。
结论
综上,dhorse后续版本会默认选择fabric8的sdk与k8s器群交互,并计划在v1.6的版本里下掉k8s官方的sdk。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SuperCLUE 10 月榜单:vivo 自研大模型位列国内第一
SuperCLUE 发布了中文大模型10月榜单。其中,vivo自研大模型以70.74的总分位列总排行榜第四,在国内大模型中排行第一;排在其后的分别是Moonshot、文心一言4.0和SenseChat 3.0。 SuperCLUE是中文通用大模型多层次的综合性测评基准,包括多轮开放问题测评SuperCLUE-OPEN和三大能力客观题测评SuperCLUE-OPT。主要考察模型在中文能力上的表现,包括专业知识技能、语言理解与生成、AI智能体和安全四大能力维度的上百个任务。 本次评测选取了目前国内外最具代表性的20个通用大语言模型。与9月相比,新增了月之暗面的Moonshot、百度的文心一言4.0、科大讯飞的星火V3.0、vivo的vivoLM和阿里云的Qwen-14B。 评测发现,国内第一梯队大模型格局已基本形成,在过去11个月的成绩令人振奋,头部几个中文大模型已经与GPT3.5极为接近。但与GPT4的距离依然遥远,尚未发现有对标和媲美GPT4的迹象。 10月评测数据集为全新的3754道测试题,其中包括606道多轮简答题和3148道客观选择题。 总排行榜 注:本次评测的GPT3.5版本为...
- 下一篇
Jina AI 发布全球首个开源 8K 文本嵌入模型,超越 OpenAI
人工智能公司Jina AI 宣布推出其第二代文本嵌入模型:jina-embeddings-v2。这款模型现在是唯一支持 8K(8192个 token)上下文长度的开源产品。在能力和性能上与OpenAI的text-embedding-ada-002相当。 与OpenAI的8K模型text-embedding-ada-002进行比较,jina-embedding-v2在分类平均值、重排平均值、检索平均值和摘要平均值方面超越了 OpenAI 的 text-embedding-ada-002。 Rank Model Model Size (GB) Embedding Dimensions Sequence Length Average (56 datasets) Classification Average (12 datasets) Reranking Average (4 datasets) Retrieval Average (15 datasets) Summarization Average (1 dataset) 15 text-embedding-ada-002 Unknown ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器