
Kubebuilder
文章平均质量分 89
ywq935
这个作者很懒,什么都没留下…
展开
-
《 Kubebuilder v2 使用指南 》-P8-踩到的坑
前言一路下来踩了不少坑,有一些没有印象了,还有印象的就记录下来,想起来再补充.metadata.resourceVersion: Invalid value: 0x0: must be specified for an update对unit执行scale的时候报错:#~ kubectl scale unit unit-sample --replicas=2The unit "unit-sample" is invalid: metadata.resourceVersion: Invalid va原创 2020-05-24 10:47:27 · 2465 阅读 · 0 评论 -
《 Kubebuilder v2 使用指南 》-P7-本地调试和发布Controller
本地调试和发布Controller前言前面几篇已经完成了初步的代码编写,但随后还需要 调试测试 --> 正式发布 到K8s集群内。这个步骤是官方文档内简笔带过的,极易带来困扰,写代码很难一气呵成,总会有error需要调试,但不可能每次为了调试一两行代码或加个打印输出,重复进行打镜像、推镜像、重启pod这一系列繁杂的操作,本篇专门讲述如何使用本地开发环境连接K8s集群进行调试,以及测试完毕后正式发布到K8s集群中运行。调试/测试众所周知,APIServer交互是需要TLS加密的,CRD cont原创 2020-05-24 10:46:50 · 2905 阅读 · 6 评论 -
《 Kubebuilder v2 使用指南 》-P6-CRD Admission Webhook
CRD Admission Webhook前言前面的文章中,实现了Unit资源对象实例持久化之后的controller管理的过程。除此之外,Kubernetes额外支持了一些很有趣且实用的功能,例如经常被用在资源准入控制上的Adminssion Webhook,它是对APIServer接收准入请求的扩展。详情请参考官方文档:extensible-admission-controllers认识Adminssion Webhook什么是Adminssion Webhook?在官方文档里对的话来说就是原创 2020-05-24 10:46:06 · 1323 阅读 · 0 评论 -
《 Kubebuilder v2 使用指南 》-P5-实现CRD控制逻辑
实现CRD控制逻辑前言上一篇已经设定了Unit所要实现的目标,完成了Unit结构体各子字段、ownResource字段的填充,为控制逻辑的实现做了基础铺垫。本篇主要解决和实现的控制逻辑:如何管理Unit下属的own Resources如何使Unit和own Resources生命周期绑定删除Unit资源前能否做一些自定义操作逐一来实现。管理own Resources如前文所说,一共设计了5种ownResource分别对应StatefulSet/Deployment/Ingress/Se原创 2020-05-24 10:44:13 · 1514 阅读 · 0 评论 -
《 Kubebuilder v2 使用指南 》-P4-从零开始设计一个CRD
从零开始设计一个CRD前言经过前面的铺垫,相信现在对kubebuilder的工作模式已初具了解,那么从本篇开始,正式设计一个CRD。本文对于Unit的设计,是基于我的个人场景下的需求提炼出来的,不一定适合你,但着重点在于思路,希望能有帮助。面临的现状在我的场景下,应该也是大多数人的场景下,通常一个运行服务(姑且这么称呼),使用一系列build-in 类型资源进行组合,来保障运行和提供服务,例如,最常用的组合有:StatefulSet/Deployment/Ingress/Service/Ingres原创 2020-05-24 10:43:19 · 1048 阅读 · 2 评论 -
《 Kubebuilder v2 使用指南 》-P3-认识Kubebuilder
认识Kubebuilder前言没有人会喜欢黑盒,在使用一个工具之前,我习惯于尽可能多地去了解它,不然用起来会觉得不踏实。Controller的工作流程已经很熟悉了,理解kubebuilder的源码应该也比较容易。因此,大概阅读了一下了kubebuilder的源码,本篇圈出其中几个重点,用以帮助理解和认识kubebuilder。概念名词下面几个概念名词非常的重要,文中会多次提及。Own ResourceCRD一般设计用作管理k8s内置的各类资源组合,用以实现自定义的部署和运行逻辑,是一种上层封装,原创 2020-05-24 10:42:27 · 4212 阅读 · 0 评论 -
《 Kubebuilder v2 使用指南 》-P2-环境准备
环境准备Requirementsgo version v1.13+.docker version 17.03+.kubectl version v1.11.3+.kustomize v3.1.0+除了上面的工具和环境以外,需要有一套可连接的kubernetes环境,要求配置好kubectl config,以便能直连进行调试。由于Feature gates的 --CustomResourceWebhookConversion参数是在v1.15及以上的版本k8s才默认为true,为了避免版本导原创 2020-05-24 10:41:56 · 581 阅读 · 0 评论 -
《 Kubebuilder v2 使用指南 》-P1-总览篇
《 Kubebuilder v2 使用指南 》前言K8s内置的build-in 资源类型,可以组合使用以满足绝大部分场景的部署需求,更进一步地,对于追求更高自由度、有特殊需求的场景下,在kubernetes v1.7 后的版本开始支持CRD(CustomResourceDefinition),无需修改组件代码,即可通过CRD向APIServer注入自定义资源的方式,对内置资源进行上层封装,实现自定义环境部署和运行逻辑。APIServer会根据CRD的指定,自动生成CRD的restful路径,有关此路径的原创 2020-05-24 10:40:58 · 2897 阅读 · 2 评论