Kubebuilder 与 CRD (一):环境搭建
基于Kubebuilder 制作 K8S CRD
·
K8S CRD 介绍
K8S 默认提供不少资源
使用以下命令,可以查看:
kubectl api-resources
常见的:
- deployments
- statefulsets
- services
- endpoints
- configmaps
等等,会用了,基本上 K8S 算入门了,会使用了
但是,如果项目基于 K8S 做运维开发的话,这远远不够
比如:
- 基于 K8S 启动服务前,必须先执行一个脚本
- 基于 K8S 与项目解耦的方式,服务预警
- 基于 K8S 能自定义扩容、缩容策略
等等,都需要定制 K8S
K8S 给出了一种方案: CRD
CRD 全称: CustomResourceDefinition
可以自定义 K8S 资源,如同内置资源一样的方式使用
Kubebuilder 介绍
CRD 推出初期,实现几个 CRD 应该很困难
现在出了不少工具,帮助实现 CRD
比较流行的,当属 Kubebuilder
笔者也在熟悉 CRD 制作相关内容
基于 Kubebuilder ,根据实践过程,陆续总下制作经验
本文介绍下 Kubebuilder 相关的环境搭建
环境所需工具说明
工具 | 说明 |
---|---|
kubectl | K8S 的命令行客户端 |
minikube | 迷你版单机 K8S ,开发调试时用,有点安装方便 |
golang | kubebuilder 基于 golang 开发 |
环境搭建
最新的安装方法,参考上面 URL 。当前时间点:
kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start
kubectl get po -A
kubebuilder
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH)
chmod +x kubebuilder && mv kubebuilder /usr/local/bin/
golang
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
更多推荐
已为社区贡献9条内容
所有评论(0)