k8s

kubebuilder介绍

介绍

Kubebuilder是一个用于快速开发Kubernetes API和控制器的SDK(软件开发工具包)。它提供了一套工具和库,帮助开发者以最小的努力构建、发布和运行Kubernetes自定义控制器和API。Kubebuilder利用Custom Resource Definitions(CRDs)来扩展Kubernetes API,使得开发者可以创建自定义资源(Custom Resources),这些资源就像Kubernetes原生资源(如Pods、Deployments等)一样,可以通过kubectl命令行工具或API进行管理。

官方文档V3版本地址:https://book.kubebuilder.io/
中文文档V2版本地址:https://cloudnative.to/kubebuilder/
github地址:https://github.com/kubernetes-sigs/kubebuilder

主要特点

  • 声明式API设计:Kubebuilder鼓励使用声明式API设计,这意味着开发者定义资源的“期望状态”,而控制器则负责使当前状态与期望状态一致。
  • 代码生成:Kubebuilder能够自动生成大量的代码和配置,这些代码和配置是创建CRDs和控制器所必需的。这减少了重复工作,让开发者能够专注于业务逻辑。
  • 简化的测试:提供了工具和库来帮助开发者编写单元和集成测试,简化了测试过程。
  • 版本控制:支持API的版本控制,使得在不破坏现有API的情况下进行迭代成为可能。
  • Webhook支持:Kubebuilder支持创建Admission Webhooks,这是一种拦截对Kubernetes API的请求并在它们持久化之前修改或拒绝它们的机制。

工作流程

使用Kubebuilder的典型工作流程包括以下步骤:

  1. 初始化项目:通过Kubebuilder提供的命令初始化一个新的项目结构。
  2. 创建API和控制器:定义自定义资源(CRDs)和相应的控制器。Kubebuilder会自动生成相关的代码框架。
  3. 添加业务逻辑:在控制器的Reconcile方法中实现业务逻辑,以响应资源状态的变化。
  4. 运行和测试:本地运行和测试控制器,确保它按预期工作。
  5. 打包和部署:将控制器打包为Docker镜像,然后部署到Kubernetes集群中。

安装

我这是使用的是v3版本,v3版本使用有前提条件:

  • go version:v1.20.0+ Go 版本 v1.20.0+
  • docker version:17.03+. Docker 版本 17.03+。
  • kubectl version:v1.11.3+.

我的环境是go:1.20.14,没有使用docker使用的是coontainerd,版本是1.6.9,kubectl版本是1.24.16。下面开始安装:

# download kubebuilder and install locally.
curl -L -o kubebuilder "https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH)"
# 也可以使用master分支,下载地址是https://go.kubebuilder.io/dl/master/$(go env GOOS)/$(go env GOARCH)
chmod +x kubebuilder && mv kubebuilder /usr/local/bin/
kubebuilder version

Available Commands:
  alpha       Alpha-stage subcommands
  completion  Load completions for the specified shell
  create      Scaffold a Kubernetes API or webhook
  edit        Update the project configuration
  help        Help about any command
  init        Initialize a new project
  version     Print the kubebuilder version

file

启用shell自动补全

kubebuilder completion bash > /etc/bash_completion.d/kubebuilder
source /etc/bash_completion.d/kubebuilder
分类: k8s
0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
最旧
最新 最多投票
内联反馈
查看所有评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部
0
希望看到您的想法,请您发表评论x