当前位置: 首页 > wzjs >正文

宝安做网站多少钱企业微信开通流程

宝安做网站多少钱,企业微信开通流程,福建省建设厅网站节能办,wordpress建站怎么上传kubebuilder工作流程 Kubebuilder 工作流程详解 Kubebuilder 是 Kubernetes 官方推荐的 Operator 开发框架,用于构建基于 Custom Resource Definitions (CRD) 的控制器。以下是其核心工作流程的完整说明: 1. 初始化项目 # 创建项目目录 mkdir my-opera…

kubebuilder工作流程


Kubebuilder 工作流程详解

Kubebuilder 是 Kubernetes 官方推荐的 Operator 开发框架,用于构建基于 Custom Resource Definitions (CRD) 的控制器。以下是其核心工作流程的完整说明:


1. 初始化项目

# 创建项目目录
mkdir my-operator && cd my-operator# 初始化 Kubebuilder 项目(指定 Go 模块名和 Kubernetes API 版本)
kubebuilder init --domain my.domain.com --repo my.domain.com/my-operator# 创建 API(定义 CRD 和控制器)
kubebuilder create api --group webapp --version v1 --kind Guestbook

作用

  • 生成项目脚手架代码
  • 配置 go.mod 和基础 Makefile
  • 创建 CRD 的 API 类型定义(api/v1/guestbook_types.go

2. 设计 CRD (Custom Resource)

编辑生成的 API 类型文件 api/v1/guestbook_types.go

type GuestbookSpec struct {// 定义用户可配置字段Message string `json:"message"`Replicas int32 `json:"replicas"`
}type GuestbookStatus struct {// 定义控制器维护的状态字段AvailableReplicas int32 `json:"availableReplicas"`
}

关键操作

  • 实现 runtime.Object 接口(Kubebuilder 已自动生成)
  • 通过 // +kubebuilder:subresource:status 等标记扩展功能

3. 生成 CRD 和代码

# 生成 CRD YAML 和 DeepCopy 方法
make manifests# 生成客户端代码(如 informers、listers)
make generate

输出结果

  • config/crd/bases/ 下的 CRD YAML 文件
  • zz_generated.deepcopy.go 自动生成的深拷贝代码

4. 实现控制器逻辑

编辑 controllers/guestbook_controller.go

func (r *GuestbookReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {// 1. 获取 CR 实例guestbook := &webappv1.Guestbook{}if err := r.Get(ctx, req.NamespacedName, guestbook); err != nil {return ctrl.Result{}, client.IgnoreNotFound(err)}// 2. 业务逻辑(例如创建 Deployment)dep := &appsv1.Deployment{}if err := r.Get(ctx, req.NamespacedName, dep); err != nil {if errors.IsNotFound(err) {// 创建 Deploymentdep = r.newDeploymentForGuestbook(guestbook)if err := r.Create(ctx, dep); err != nil {return ctrl.Result{}, err}}}// 3. 更新状态guestbook.Status.AvailableReplicas = dep.Status.AvailableReplicasif err := r.Status().Update(ctx, guestbook); err != nil {return ctrl.Result{}, err}return ctrl.Result{}, nil
}

核心机制

  • Reconcile 循环:监听 CR 变化并触发调谐逻辑
  • 幂等性设计:确保重复执行不会产生副作用

5. 本地测试

# 安装 CRD 到集群
make install# 运行控制器(本地开发模式)
make run# 部署示例 CR
kubectl apply -f config/samples/webapp_v1_guestbook.yaml

调试工具

  • 使用 kubectl get guestbooks 查看自定义资源
  • 通过 kubectl logs 查看控制器日志

6. 构建与部署

# 构建镜像
make docker-build docker-push IMG=my-registry/my-operator:v1.0.0# 生成部署清单(RBAC、Deployment 等)
make manifests# 部署到集群
make deploy IMG=my-registry/my-operator:v1.0.0

生成内容

  • config/rbac/:角色权限配置
  • config/manager/:Operator 的 Deployment 配置

7. 高级功能扩展

Webhook 支持

# 创建 webhook
kubebuilder create webhook --group webapp --version v1 --kind Guestbook --defaulting --programmatic-validation

用途

  • 实现字段默认值注入(Mutating Webhook)
  • 验证字段合法性(Validating Webhook)

多版本 API 支持

通过 kubebuilder edit --multiversion 开启,生成版本转换逻辑。


工作流程图解

初始化项目
定义CRD
生成代码/CRD
实现控制器
本地测试
构建部署
扩展功能

关键设计理念

  1. 声明式 API:用户通过 YAML 描述期望状态,控制器负责实现
  2. 事件驱动:基于 Kubernetes 的 Informer 机制高效监听资源变更
  3. 水平扩展:控制器可多副本运行,通过 Leader Election 避免冲突

Kubebuilder 通过标准化的工作流程,显著降低了 Operator 的开发门槛,是构建 Kubernetes 原生扩展组件的首选工具。

http://www.dtcms.com/wzjs/835104.html

相关文章:

  • 汕头网站制作多少钱东莞商务网站建设
  • 多语言网站开发公司网站 测速度
  • ui设计的细分研究方向包含哪几项网站优化怎么学
  • 网站手绘教程我自己做个网站怎么做
  • 网站建设包括的内容网站开发顶岗报告
  • 广州网站制作公司 番禺建设银行电脑版官方网站
  • 手机网站栏目结构图如何利用js来做网站表单
  • 专业的企业智能建站价格便宜wordpress哪个版本php
  • 和京东一样做电子产品的网站全网营销网络推广
  • 网站建设多少钱裙九里徐州网站开发
  • 北京网站建设认知培训怎么样网页设计
  • 白云做网站公司Wordpress上传万网空间
  • 如皋网站制作网络推广方案模板
  • 山东网站定制设计东莞房价走势
  • 百度网盘如何获得2t免费空间seo标题关键词怎么写
  • 电视网站后台管理系统漏洞自己做的网站怎么嵌入高德地图
  • seo网站推广简历企业培训网站
  • 宜宾网站建设哪家好dw软件网站建设教程视频
  • 广西网站建设seo优化最新新闻事件今天300字
  • 安徽元鼎建设工程网站wordpress七牛云图床插件
  • 山东建设执业资格注册中心网站电子商务网站建设的一般
  • 网站搭建软件wordpress Null
  • 上海市建设工程定额官方网站wordpress docker安装目录
  • 做任务领q币网站seo关键词排名
  • wordpress外贸建站主题苏州企业商务网站建设
  • 分类目录网站程序广东省城乡建设厅投诉网站首页
  • 搭建网站用什么框架网站建设的大作业代码
  • 安装网站系统wordpress官网登录
  • 黑彩网站自己可以做么上海青浦做网站公司
  • 网站浮动窗口如何做windows8风格网站模板