# opdemo **Repository Path**: hedongyouxia/opdemo ## Basic Information - **Project Name**: opdemo - **Description**: operator-sdk创建k8s crd资源并完成控制器实践demo示例 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-12-28 - **Last Updated**: 2024-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # operator-sdk创建k8s crd资源 ------ ## 1.operator sdk与kubebuilder的区别 - operator sdk和kubebuilder都是为了用户方便创建和管理operator而生的脚手架项目。 - 对于用基于Golang开发的operator项目而言,operator sdk在底层使用了kubebuilder,例如operator sdk的命令行工具底层实际是调用kubebuilder的命令行工具。所以无论由operator sdk还是kubebuilder创建的operator项目都是调用的controller-runtime接口,而有相同的项目布局。 ```shell ➜ opdemo git:(master) tree -L 2 . ├── Dockerfile ├── Makefile ├── PROJECT ├── README.md ├── api │   └── v1 ├── bin │   ├── controller-gen │   ├── kustomize │   └── manager ├── config │   ├── crd │   ├── default │   ├── manager │   ├── manifests │   ├── prometheus │   ├── rbac │   ├── samples │   ├── scorecard │   └── webhook ├── controllers │   ├── app_controller.go │   └── suite_test.go ├── go.mod ├── go.sum ├── hack │   └── boilerplate.go.txt ├── main.go └── resource ├── deployment └── service 18 directories, 13 files ➜ opdemo git:(master) ``` - 除此以外,operator sdk还增加了一些特性。默认情况下,使用operator-sdk init生成的项目集成如下功能: - [x] Operator Lifecycle Manager,安装和管理operator的系统 - [x] OperatorHub,发布operator的社区中心 - [x] operator sdk scorecard,一个有用的工具,用于确保operator具有最佳实践和开发过程中集群测试 - [x] operator sdk除了支持golang以外,还支持Ansible和Helm。 > 总结: > > ​ 两者并不是竞争关系,sdk相当于kubebuilder+; > ​ sdk的文档质量更高,感觉sdk更像是商业版的kubebuilder,而实际上它们是开源的; > ​ 如果你在两者之间犹豫不决,建议还是选择sdk吧。 ## 2.operator sdk实践参考文档 [Kubernetes Operator 快速入门教程](https://www.qikqiak.com/post/k8s-operator-101/) [operator-sdk 实战开发](https://www.cnblogs.com/leffss/p/14732645.html) [controller-tools](https://github.com/kubernetes-sigs/controller-tools) [kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) [operator-sdk](https://github.com/operator-framework/operator-sdk) ## 3.operator sdk实践样例 样例文档参考 docs <>