k8s-operator相关

 

创建一个operator项目

kubebuilder init 

kubebuilder init --domain my.domain --repo my.domain/guestbook

kubebuilder init --domain ucs.com  --repo ucs.com/cmreload --skip-go-version-check

client.Client  ---> controller-runtime 

group: 相当于组织下面的服务组

kubebuilder create api --group ops  --version v1beta1  --kind ConfigReload

make manifests 生成资源清单

make install 

10

 

operator= crd + webhook+controller 

11

 

 13

 

Validating Webhook(验证型 Webhook)

核心目的:“拒绝非法请求”
用于校验用户提交的资源对象是否符合业务逻辑或自定义规则。如果校验失败,API Server 会拒绝该请求并返回错误信息给用户。

触发时机:在资源创建(CREATE)、更新(UPDATE)或删除(DELETE)时触发。

Mutating Webhook(变更型 Webhook)

核心目的:“自动修正或补充默认值”

用于在资源被持久化之前,对资源对象进行修改。常用于设置默认值、注入侧边栏容器、添加注解等。

触发时机:在资源创建(CREATE)或更新(UPDATE)时触发(通常在 Validating Webhook 之前执行)

 

  • 为未指定的字段设置默认值(例如:如果用户没指定 imagePullPolicy,则设为 Always)。
  • 注入环境变量或卷挂载。
  • 自动生成名称或标签。

15

kubebuilder create webhook --group ship --version v1beta1 --kind Frigate --defaulting --programmatic-validation

kubebuilder create webhook \
--group ops \
--version v1beta1 \
--kind ConfigReload\
--defaulting \
--programmatic-validation

posted @ 2026-06-15 15:28  lavida2000  阅读(3)  评论(0)    收藏  举报