专栏首页CNCFKubebuilder介绍:使用CRD构建Kubernetes API的SDK

Kubebuilder介绍:使用CRD构建Kubernetes API的SDK

Kubebuilder介绍:使用CRD构建Kubernetes API的SDK

作者:Phillip Wittrock(谷歌),Sunil Arora(谷歌)

我们如何才能让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、华为等众多公司的贡献者积极开发。

网站/代码:

https://github.com/kubernetes-sigs/kubebuilder

文档:

https://book.kubebuilder.io/

即时交流:

Slack:http://slack.k8s.io/#kubebuilder

邮件列表:

kubebuilder(https://groups.google.com/forum/#!forum/kubebuilder)

订阅邮件列表,也可以发电邮到:

kubebuilder+subscribe@googlegroups.com


CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。

云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。

本文分享自微信公众号 - CNCF(lf_cncf),作者:CNCF官微

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Cluster API简介

    Cluster API是一个Kubernetes项目,它将声明式Kubernetes风格的API用于集群的创建、配置和管理。它在核心Kubernetes之上,提...

    CNCF
  • 案例研究:西北互助人寿保险公司

    “在大型企业中,会有人使用Kubernetes,但也会有人使用WAS和.NET。你可能还没有达到整个堆栈都可以是云原生计算的程度。如果你可以使用API管理工具,...

    CNCF
  • Kubernetes身份认证和授权操作全攻略:K8s 访问控制入门

    随着Kubernetes被广泛使用,成为业界公认的容器编排管理的标准框架,许多开发人员以及管理员对部署、弹性伸缩以及管理容器化应用程序等Kubernetes的关...

    CNCF
  • 一个“爆款”成功的API,都离不开这8条设计准则

    我已经看过很多API设计相关的文章和优秀的REST API设计教程。他们通常讨论的是适当的编码技巧和如何在给定的语言中暴露接口。尽管那些是很有用也是很需要的,但...

    BestSDK
  • 好雨云帮一周问答集锦(2.6-2.12)

    Rainbond开源
  • 50多种适合机器学习和预测应用的API,你的选择是?(2018年版本)

    对于做工程项目和搞科研的人来说,有现成的模块或工具使用是一件多么美妙的事情啊,无需访问源码或理解内部工作机制的细节即可完成相应的任务。常用的方法是调用一些API...

    用户3578099
  • Kubernetes推1.2版本,可管理1000节点,运行3万Pods

    赶在Google云端产品用户大会之前,Kubernetes也释出了1.2新版。超过680位开源开发者参与。新版最大特色是扩充能力大幅提高了400%,单个集群可管...

    CSDN技术头条
  • 开发者也是用户 - 简介:易用性 - 学于 UI,用于 API

    Android 开发者
  • 人脸识别、情感分析,开发者必备50个机器学习API|值得收藏

    该清单按照字母排序,对 API 的概述是基于对应官网所提供的信息整合而成。要是大家发现该清单中错过了某些当前流行的 API,可以在评论中告知。

    BestSDK
  • DAY87:阅读Interoperability between Runtime and Driver APIs

    An application can mix runtime API code with driver API code.

    GPUS Lady

扫码关注云+社区

领取腾讯云代金券