kubebuilder(1)开发环境搭建

ops/2024/10/20 5:02:19/

开发一个k8s operator,当然可以在官方原生的controller-runtime 项目上从头构建,但是比较复杂。现在一般基于operator脚手架进行开发。目前最流行的的脚手架是Kubebuilder 或 OperatorSDK。Kubebuilder 或 OperatorSDK都是对controller-runtime 项目进行了上层的封装,使开发者可以专注于业务逻辑的实现。这里讲解kubebuilder的使用步骤。

首选需要一个可用的K8S集群。然后有一台linux服务器,能部署kubebuilder

c0fc9bed0b7a475b9013a10555a16451.jpeg


kubectl的配置

下载

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

给文件可执行权限;

chmod +x ./kubectl

将kubectl移动到可以全局执行的目录下:

mv ./kubectl /usr/local/bin/kubectl

kubectl要想连接k8s集群,还需要一个k8s的config文件。就在k8s集群的/root/.kube/目录下。复制到我们的kubebuilder服务器上同样目录下。

现在我们在kubebuilder服务器上也可以操作k8s了。

部署kubebuilder

各个组件的版本

go  1.18.5

docker     19.03.0

安装go

安装一些必要的工具

yum install unzip tree wget gcc gcc-c++ kernel-devel -y

安装go

安装官网安装的https://golang.google.cn/doc/install

额外执行以下命令

$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
安装docker

安装kustomize

后面的操作中需要使用kustomize去做配置管理。

kustomize允许用户将不同环境所共享的配置放在一个文件目录下,而将其他不同的配置放在另外的目录下。这样用户就可以很容易的区分那些值是当前环境所特有的,从而在修改的时候会额外关注。

官方给出的安装方式,因为网络问题安装失败

基于模板生成YAML文件,下载kustomize二进制压缩包:https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.8.1/kustomize_v3.8.1_linux_amd64.tar.gz

# 解压并安装
$ tar zxvf kustomize_v3.8.1_linux_amd64.tar.gz
$ chmod +x kustomize
$ mv kustomize /usr/local/bin/
$ kustomize version
{Version:kustomize/v3.8.1 GitCommit:0b359d0ef0272e6545eda0e99aacd63aef99c4d0 BuildDate:2020-07-16T00:58:46Z GoOs:linux GoArch:amd64}
安装controller-gen

下载源码,编译安装

wget https://github.com/kubernetes-sigs/controller-tools/archive/refs/tags/v0.10.0.zip
$ unzip v0.10.0.zip
$ cd controller-tools-0.10.0
$ go build -a -o controller-gen cmd/controller-gen/main.go
$ mv controller-gen /usr/local/bin/
$ controller-gen --version
Version: (devel)
安装kubebuilder
# go env GOOS -- 获取操作系统类型,例如:linux等
# go env GOARCH -- 获取系统架构,例如:arm或amd64等
$ curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH)
$ chmod +x kubebuilder && mv kubebuilder /usr/local/bin/

安装完成,查看下版本

# kubebuilder version
Version: main.version{KubeBuilderVersion:"3.2.0", KubernetesVendor:"1.22.1", GitCommit:"b7a730c84495122a14a0faff95e9e9615fffbfc5", BuildDate:"2021-10-29T18:32:16Z", GoOs:"linux", GoArch:"amd64"}

http://www.ppmy.cn/ops/5631.html

相关文章

【c++游戏】噩梦轮盘赌(俄罗斯转盘)

源代码 #include<bits/stdc.h> #include<time.h> #include<windows.h> using namespace std; // int hp3; int emhp3; // int b; int dantang[6]; int emhh; int shidan0; int kondan0; int zdzt0;int how; bool awa(){srand(time(NULL));if (shidan0){ret…

postman汉化

一、postman历史版本下载&#xff1a;Postman 10.24.16 Download for Windows / Old Versions / FileHorse.comhttps://www.filehorse.com/download-postman/old-versions/ 二、汉化包下载&#xff1a; Releases hlmd/Postman-cn GitHubPostman汉化中文版. Contribute to h…

数据结构——堆

目录 前言 一、堆的概念及结构 二、堆的实现 2.1 堆初始化 2.2 堆的销毁 2.3 交换数据 2.4 插入数据(插入到堆尾) 2.5 向上调整 2.6 堆的删除(删除堆顶元素) 2.7 向下调整 2.8 取堆顶 2.9 判空 完整代码 三、堆的创建 1.向上调整建堆 2.向下调整建堆 四、堆的…

Matlab|含sop的配电网重构(含风光|可多时段拓展)

目录 1 主要内容 2 部分程序 3 下载链接 1 主要内容 之前分享了很多配电网重构的程序&#xff0c;每个程序针对场景限定性比较大&#xff0c;程序初学者修改起来难度较大&#xff0c;本次分享一个基础程序&#xff0c;针对含sop的配电网重构模型&#xff0c;含风电和光伏&am…

部署轻量级Gitea替代GitLab进行版本控制(一)

Gitea 是一款使用 Golang 编写的可自运营的代码管理工具。 Gitea Official Website gitea: Gitea的首要目标是创建一个极易安装&#xff0c;运行非常快速&#xff0c;安装和使用体验良好的自建 Git 服务。我们采用Go作为后端语言&#xff0c;这使我们只要生成一个可执行程序即…

git切换源失败解决方案

git切换源失败解决方案 git切换源git切换源失败(无效) git切换源 git可以使用命令行切换源&#xff0c;一般使用的源有两个地址&#xff0c;git原生地址和淘宝镜像地址&#xff0c;部分公司会使用内部地址。 源切换后&#xff0c;npm i就是从源地址拉取相关依赖了。 原生地址…

2024上海国际半导体制造设备材料与核心部件展览会

2024上海国际半导体制造设备材料与核心部件展览会 2024 Shanghai International Semiconductor Manufacturing Equipment Materials and Core Components Exhibition 时间&#xff1a;2024年11月18日-20日 地点&#xff1a;上海新国际博览中心 详询主办方陆先生 I38&#…

智慧浪潮下的产业园区:解读智慧化转型如何打造高效、绿色、安全的新产业高地

随着信息技术的飞速发展&#xff0c;智慧化转型已经成为产业园区发展的重要趋势。在智慧浪潮的推动下&#xff0c;产业园区通过集成应用物联网、大数据、云计算、人工智能等先进技术手段&#xff0c;实现园区的智慧化、高效化、绿色化和安全化&#xff0c;从而打造成为新产业高…