加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

KubeBuilder 基本入门指南让你不在迷失偏向

发布时间:2021-05-26 18:16:23 所属栏目:教程 来源:互联网
导读:KubeBuilder 简明教程 安装 会见官方客栈下载已经编译好的二进制文件: Releases kubernetes-sigs/kubebuilder (github.com) 本文编写的时辰 kubebuilder 已经推
副问题[/!--empirenews.page--] KubeBuilder 简明教程

安装

会见官方客栈下载已经编译好的二进制文件: Releases · kubernetes-sigs/kubebuilder (github.com)

本文编写的时辰 kubebuilder 已经推出了 v3.0.0-rc.0 版本,所觉得了停止刚写完新版就已经 release 了的忧伤环境,本文直接行使的是 3.0 版本

下载好了之跋文得将对应文件插手 PATH 傍边

安装乐成之后行使 kubebuilder version 可以查察安装的版本信息

❯ kubebuilder version 

Version: main.version{KubeBuilderVersion:"3.0.0-rc.0", KubernetesVendor:"1.19.2", GitCommit:"90fe4124c4c6965c6bfac63339888956952cda90", BuildDate:"2021-04-08T17:36:28Z", GoOs:"linux", GoArch:"amd64"} 

项目初始化

先建设一个空文件夹,然后在文件夹内执行下方呼吁

kubebuilder init --domain lailin.xyz --repo github.com/mohuishou/blog-code/k8s-operator/02-kubebuilder 

–-domain lailin.xyz 我们的项目标域名

--repo xxx 是客栈地点,同时也是 go mode中的repo地点

假如你 golang 版本过低可能过高都有也许呈现下方的错误信息,我这里是由于行使的 1.16 版本太高了

2021/04/25 20:47:14 failed to initialize project: unable to run pre-scaffold tasks of "base.go.kubebuilder.io/v3": go version 'go1.16' is incompatible because 'requires 1.13 <= version < 1.16'. You can skip this check using the --skip-go-version-check flag 

这种环境下可以添加 --skip-go-version-check 忽略这个错误,可是照旧提议行使官方保举的版本

kubebuilder init --domain lailin.xyz --repo github.com/mohuishou/blog-code/k8s-operator/02-kubebuilder --skip-go-version-check 

项目目次

├── Dockerfile 

├── Makefile # 这里界说了许多剧本呼吁,譬喻运行测试,开始执行等 

├── PROJECT  # 这里是 kubebuilder 的一些元数据信息 

├── config 

│   ├── default    # 一些默认设置 

│   ├── manager    # 陈设 crd 所需的 yaml 

│   ├── prometheus # 监控指标数据收罗设置 

│   └── rbac # 陈设所需的 rbac 授权 yaml 

├── go.mod 

├── go.sum 

├── hack 

│   └── boilerplate.go.txt 

└── main.go 

建设 api

kubebuilder create api --group apps --version v1 --kind Application 

执行之后我们可以发明项目布局产生了一些变革

├── api 

│   └── v1 

│       ├── application_types.go # 这里是界说 spec 的处所 

│       ├── groupversion_info.go # GV 的界说,一样平常无需修改 

│       └── zz_generated.deepcopy.go 

├── config 

│   ├── crd # 自动天生的 crd 文件,不消修改这里,只必要修改了 v1 中的 go 文件之后执行 make generate 即可 

│   ├── default 

│   ├── manager 

│   ├── prometheus 

│   ├── rbac 

│   └── samples # 这里是 crd 示例文件,可以用来陈设到集群傍边 

├── controllers 

│   ├── application_controller.go # 在这里实现 controller 的逻辑 

│   └── suite_test.go # 这里写测试 

实现 Controller

界说 CR

// api/v1/application_types.go 

 

// ApplicationSpec defines the desired state of Application 

type ApplicationSpec struct { 

 // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读