加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

KubeBuilder 基础入门指南让你不在迷失方向

发布时间:2021-05-26 10:03:24 所属栏目:教程 来源:互联网
导读:KubeBuilder 简明教程 安装 访问官方仓库下载已经编译好的二进制文件: Releases kubernetes-sigs/kubebuilder (github.com) 本文编写的时候 kubebuilder 已经推

2021-04-25T21:55:55.680+0800    INFO    controller-runtime.manager.controller.application       Starting workers        {"reconciler group": "apps.lailin.xyz", "reconciler kind": "Application", "worker count": 1} 

然后我们部署一个测试的 crd kubectl apply -f config/samples/apps_v1_application.yaml

apiVersion: apps.lailin.xyz/v1 

kind: Application 

metadata: 

  name: application-sample 

spec: 

  # Add fields here 

  product: test 

然后可以看到之前写的日志逻辑已经触发

2021-04-25T21:57:12.618+0800    INFO    controllers.Application app changed     {"ns": "default"} 

Kubebuilder 注释

在生成的代码当中我们可以看到很多 //+kubebuilder:xxx 开头的注释,对 Go 比较熟悉的同学应该知道这些注释是给对应的代码生成器服务的,在 Go 中有一个比较常用的套路就是利用 go gennerate生成对应的 go 代码。

kubebuilder 使用 controller-gen 生成代码和对应的 yaml 文件,这其中主要包含 CRD 生成、验证、处理还有 WebHook 的 RBAC 的生成功能,下面我简单介绍一下,完整版可以看 kubebuilder 的官方文档

CRD 生成

//+kubebuilder:subresource:status 开启 status 子资源,添加这个注释之后就可以对 status进行更新操作了

//+groupName=nodes.lailin.xyz 指定 groupname

//+kubebuilder:printcolumn 为 kubectl get xxx 添加一列,这个挺有用的

......

CRD 验证,利用这个功能,我们只需要添加一些注释,就给可以完成大部分需要校验的功能

//+kubebuilder:default:= 给字段设置默认值

//+kubebuilder:validation:Pattern:=string 使用正则验证字段

......

Webhook

//+kubebuilder:webhook 用于指定 webhook 如何生成,例如我们可以指定只监听 Update 事件的 webhook

RBAC 用于生成 rbac 的权限

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!