基于operator-sdk对k8s做二次开发

一、概念

在了解operator之前,我也是一脸蒙蔽。这玩意是啥,没见书上提到过。后来知道了 就是一个脚手架,在我们开发自定义资源的时候,operator能够帮我们把我们需要的一些文件都准备好,包括CRD的yaml文件、ControllerManager的go文件等等。再详细的原理,我就不贴图片了,大家自己去找吧,反正网上很多相关资料。

二、安装operator

我的本地环境是windows,一开始是尝试的clone代码到本地编译的,后来试了几次都有问题,官方也说他们没有尝试过windows环境的编译,所以也不知道出了什么问题。所以跑了一个新的虚拟机。

https://blog.csdn.net/leehomjan/article/details/90735103

参考这篇文章吧环境搭好了。文章中的operator-sdk版本是RELEASE_VERSION=v0.8.0。我建议用RELEASE_VERSION=v0.15.0,不要用最新的v1.0也不要用什么v0.19.0之类的。因为这东西一直在更新,差一个版本差别好大。然后开发的流程是参考的这个。

https://www.bilibili.com/video/BV1zE411j7ky

这个视频中就是v0.15.0,如果不是这个版本到时候会昏头转向。

三、创建项目和创建CRD

创建项目:

operator-sdk new imoocpod-operator --skip-validation=true --repo=github.com/imooc-com/imoocpod-operator

新增api

operator-sdk add api --api-version=k8s.imooc.com/v1alpha1 --kind=ImoocPod

新增controller

operator-sdk add controller --api-version=k8s.imooc.com/v1alpha1 --kind=ImoocPod

完成后代码如下

.
|-- build
|   |-- bin
|   |   |-- entrypoint
|   |   `-- user_setup
|   |-- Dockerfile
|   `-- _output
|       `-- bin
|           `-- imoocpod-operator
|-- cmd
|   `-- manager
|       `-- main.go
|-- deploy
|   |-- crds
|   |   |-- k8s.imooc.com_imoocpods_crd.yaml
|   |   `-- k8s.imooc.com_v1alpha1_imoocpod_cr.yaml
|   |-- operator.yaml
|   |-- role_binding.yaml
|   |-- role.yaml
|   `-- service_account.yaml
|-- go.mod
|-- go.sum
|-- pkg
|   |-- apis
|   |   |-- addtoscheme_k8s_v1alpha1.go
|   |   |-- apis.go
|   |   `-- k8s
|   |       |-- group.go
|   |       `-- v1alpha1
|   |           |-- doc.go
|   |           |-- imoocpod_types.go
|   |           |-- register.go
|   |           `-- zz_generated.deepcopy.go
|   `-- controller
|       |-- add_imoocpod.go
|       |-- controller.go
|       `-- imoocpod
|           `-- imoocpod_controller.go
|-- tools.go
`-- version
    `-- version.go

15 director
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值