千家信息网

Kubebuilder中怎么使用CRD构建Kubernetes API的SDK

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章给大家介绍Kubebuilder中怎么使用CRD构建Kubernetes API的SDK,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。我们如何才能让MySQL、Spark
千家信息网最后更新 2024年11月14日Kubebuilder中怎么使用CRD构建Kubernetes API的SDK

这篇文章给大家介绍Kubebuilder中怎么使用CRD构建Kubernetes API的SDK,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

我们如何才能让MySQL、Spark和Cassandra这样的应用程序来管理自己,就像Kubernetes Deployments和Pods一样?我们如何配置这些应用程序为自己的第一类API,而不是StatefulSets、Services和ConfigMaps的集合?

我们一直致力于这个问题的解决方案,并很高兴推出kubebuilder。这是一个全面的开发工具包,使用CRD快速构建和发布Kubernetes API和控制器。Kubebuilder支持项目和API定义,基于controller-runtime库构建。

为什么使用Kubebuilder和Kubernetes API?

应用程序和群集资源通常需要一些操作,无论是使用新副本替换失败的副本,还是在重新分析数据时缩放副本数量。运行MySQL应用程序可能需要安排备份,在扩展后重新配置副本,设置故障检测和修复等。

使用Kubernetes API模型,管理逻辑直接嵌入到特定于应用程序的Kubernetes API中,例如,"MySQL"API。然后,用户使用kubectl等工具通过YAML配置声明性地管理应用程序,就像它们对Kubernetes对象一样。此方法称为应用程序控制器,也称为操作器(Operator)。控制器是支持核心Kubernetes API的强大技术,可用于构建除应用程序之外的多种解决方案,例如Autoscalers、Workload API、Configuration API、CI/CD系统等。

然而,虽然开发者可以在原始API机器之上构建新的控制器,这样做是一种"从零开始"的DIY经验,要求开发者学习有关如何实现Kubernetes库的低层细节,手写样板代码并且建自己的解决方案用于集成测试、RBAC配置、文档等。Kubebuilder通过应用从构建核心Kubernetes API中学到的经验,使这种体验变得简单容易。

构建应用程序控制器和Kubernetes API入门

通过提供创建控制器和Kubernetes API的结构化解决方案,开发者可以使用从开发核心Kubernetes API中学到的经验教训和最佳实践,获得"开箱即用"的体验。使用kubebuilder创建新的"Hello World"控制器非常简单:

- 创建项目:kubebuilder init

- 定义新的API:kubebuilder create api

- 构建并运行提供的main函数:make install & make run

这将生成API和Controller供用户修改,以及集成测试、RBAC规则、DockerfilesMakefile等。在实现代码写好添加到项目之后,用户创建工件通过以下方式发布他们的API:

- 从提供的Dockerfile构建并推送容器映像:make docker-build & make docker-push

- 部署API:make deploy

无论您已经是控制器的爱好者,还是只想了解是什么,请查看kubebuilder代码或查看kubebuilder书中的示例,以了解构建控制器可以是简单易用。

Kubebuilder是SIG API Machinery旗下的一个项目,由Google、Red Hat、VMware、华为等众多公司的贡献者积极开发。

关于Kubebuilder中怎么使用CRD构建Kubernetes API的SDK就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0