🎲

Kubebuilder 介绍及使用

输出内容

架构概念图

notion image

控制器

notion image

使用

前提

  • 部署 k8s 集群
  • 安装 kubelet 客户端程序
  • 安装 golang

创建项目

初始化

创建 API

输出内容

查看当前目录状态

上面的是 kubebuilder 生成的项目脚手架,需要修改及关注的主要文件为:
  • api/v1alpha1/memcached_types.go: CRD 类型定义位置
  • internal/controller/memcached_controller.go: 对账逻辑编写位置
notion image

修改代码文件(memcached_types.go)

生成具有规格和验证的清单

生成所有所需的文件:
  1. 运行 make generate,会在 api/v1alpha1/zz_generated.deepcopy.go 文件中添加深度拷贝(DeepCopy)内容。
  1. 运行 make manifests,会在 config/crd/bases 下生成 CRD 清单,并在 config/crd/samples 下生成一个示例文件。
 
 

问题记录

在 GOPATH 之外目录创建,需要使用 —repo 参数。错误现象如下:

没有设置 GO 代理,导致拉取模块失败

处理方式