kubebuilder 实战之开发一个存储用户信息的 operator

本文介绍如何使用 kubebuilder 实现一个存储用户信息的 CRD,同时开发 controller 绑定同名的 ServiceAccount。

不过多介绍 kubebuilder 的理论知识,直接开干。

开发环境准备

初始化 kubebuilder

mkdir lanyulei
cd lanyulei
kubebuilder init --domain lanyulei.com --repo lanyulei
  • init:初始化命令参数。
  • --domain:可以理解为接口组的分组。根据实际情况来定,我一般定义为项目名.com
  • --repo:项目名称,若是当前项目下已经存在 go.mod,则无需此参数。

初始化成功后的代码结构。

.
├── Dockerfile
├── Makefile
├── PROJECT
├── config
│   ├── default
│   │   ├── kustomization.yaml
│   │   ├── manager_auth_proxy_patch.yaml
│   │   └── manager_config_patch.yaml
│   ├── manager
│   │   ├── controller_manager_config.yaml
│   │   ├── kustomization.yaml
│   │   └── manager.yaml
│   ├── prometheus
│   │   ├── kustomization.yaml
│   │   └── monitor.yaml
│   └── rbac
│       ├── auth_proxy_client_clusterrole.yaml
│       ├── auth_proxy_role.yaml
│       ├── auth_proxy_role_binding.yaml
│       ├── auth_proxy_service.yaml
│       ├── kustomization.yaml
│       ├── leader_election_role.yaml
│       ├── leader_election_role_binding.yaml
│       ├── role_binding.yaml
│       └── service_account.yaml
├── go.mod
├── go.sum
├── hack
│   └── boilerplate.go.txt
└── main.go

开启支持多接口组

如果你本次项目开发的 operator多接口组的话,则需要执行一下命令。

例如:同时需要用户相关接口角色相关接口,则需要两组 api group,因此需要执行以下操作。

kubebuilder edit --multigroup=true

需要的工具

这三个工具是需要提前下载好的,放在项目的根目录下的 bin 目录下面的。

controller-gen (Version: v0.8.0)
kustomize (Version: v4.5.4)
setup-envtest (Version: latest)

Github 下载对应系统的二进制文件即可,版本的话,我测试的版本已标注,根据实际情况自行调整版本即可。

注意:工具下载完后,放到 bin 目录后,后面操作才可正常执行。

创建 API

执行以下命令创建我们需要 api group

$ kubebuilder create api --group user --version v1 --kind User

Create Resource [y/n] # 是否创建资源对象
y
Create Controller [y/n] # 是否创建 controller
y
  • --group:接口分组
  • --version:接口版本
  • --k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值