基于 kubebuilder 的 operators 開發(fā)問題總結(jié)

前情提要

之前的文章已經(jīng)將 kubebuilder 的開發(fā)環(huán)境和本地調(diào)試環(huán)境進(jìn)行了簡介和部署實(shí)現(xiàn)铃诬,流程基本走通,同時(shí)座哩,開發(fā)也涉及了部分的細(xì)節(jié)問題其實(shí)在之前的流程隱去了原理的講解徒扶,譬如 GOPROXY 的配置,Dockerfile 的本地編譯根穷,Golang 聯(lián)調(diào)的配置姜骡,編譯運(yùn)行的命令分布處理等問題都沒有進(jìn)行展開,所以本篇文章將會對以上幾個(gè)方面詳細(xì)展開并作分析屿良。

服務(wù)端測試環(huán)境

  • kubebuilder 證書也驗(yàn)證部署(Webhook 調(diào)用):
    說明: 由于webhook 開發(fā)調(diào)試的需要溶浴,一方面需要將證書拷貝到本地,同時(shí)還需要部署證書認(rèn)證的組件在集群中從而進(jìn)行集群的調(diào)度和實(shí)現(xiàn)管引。
# 下載獲取 cert-manager.yaml
wget https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml
kubectl apply -f cert-manager.yaml
kubectl  get pod -A | grep cert
image

本地開發(fā)環(huán)境(Goland)

系統(tǒng)配置

項(xiàng)目開發(fā)的話,代碼依賴問題一般需要通過本地的 GOPATH 處理 go 項(xiàng)目中的包依賴問題闯两,或者通過 govendor 進(jìn)行依賴管理褥伴;
將需要二次開發(fā)的項(xiàng)目拷貝到本機(jī)的 $GOPATH/src 目錄下谅将,然后通過 GOLAND 進(jìn)行編輯和開發(fā)。


image
image
image

備注說明:
存在一個(gè)很扯的問題重慢,如果環(huán)境中配置過了 GOPATH ,系統(tǒng)默認(rèn)會通過 GOPATH 處理語言包的依賴問題的饥臂,如果恰巧你的 golang 版本是 1.16+ 就要小心一點(diǎn)了,你以為 go get -u -v http://xxxxxxx 的資源會下載到什么地方呢似踱!src 目錄嗎隅熙?可能會讓你大跌眼睛的呢!資源文件會下載到對應(yīng)路徑的緩存目錄中核芽,我也是驚呆了囚戚。

image

單元測試

因?yàn)楸疚氖墙榻B kubebuilder 如何本地和遠(yuǎn)程環(huán)境進(jìn)行聯(lián)調(diào)開發(fā)的,項(xiàng)目需要在 K8s/k3s 環(huán)境進(jìn)行初始化轧简,然后創(chuàng)建對應(yīng)的 crd 資源驰坊,隨后將項(xiàng)目拷貝到本地的機(jī)器進(jìn)行開發(fā)調(diào)試,開發(fā)調(diào)試需要同步以下幾種文件資源從而保證資源接口可以調(diào)度查詢的實(shí)現(xiàn)呦哮独!

  • 集群調(diào)度配置文件
    需要提前將 K8s 集群的 ~/.kube/config 的集群配置文件拷貝存放到自定義的目錄位置拳芙;
    比如本地測試聯(lián)調(diào)的文件路徑地址,E:\GoWorks\crt.kube

  • webhhook 證書文件
    需要提前將 K8s 集群的 /etc/kubernetes/pki/ 的 apiserver 調(diào)度證書文件存放到自定義的目錄位置(主要 apiserver.crt 和 apiserver.key )皮璧;
    比如本地測試的證書文件路徑地址舟扎,C:\Users\hspcadmin\AppData\Local\Temp\k8s-webhook-server\serving-certs,拷貝并重命名文件為(tls.crt & tls.key).


    image
  • IDE 控制臺配置


    image

開發(fā)流程

  • kubebuilder 項(xiàng)目初始化流程:
# 初始化項(xiàng)目
mkdir -p $GOPATH/src/helloworld
cd $GOPATH/src/helloworld
kubebuilder init --domain com.vpc123

# 創(chuàng)建API(CRD和Controller)
cd $GOPATH/src/helloworld
kubebuilder create api \
--group webapp \
--version v1 \
--kind Guestbook

# 創(chuàng)建 Webhook
cd $GOPATH/src/helloworld
kubebuilder create webhook \
--group helloworld\
--version v1 \
--kind helloworld\
--defaulting \
--programmatic-validation

# 資源清理
kubectl delete -f config/samples/*
kustomize build config/default | kubectl delete -f -
make uninstall

# 資源部署
## 方式一:
### 環(huán)境中生成 crd 資源即可用于遠(yuǎn)程調(diào)試開發(fā)流程悴务,后續(xù)幾步均為本地環(huán)境測試流程
make install

###  更換自己的鏡像倉庫睹限,進(jìn)行鏡像編譯(經(jīng)測試,直接打制編譯的鏡像存在一些問題)
make docker-build docker-push IMG=12589/elasticweb:001

### 部署集成了webhook功能的controller
make deploy IMG=12589/elasticweb:001

## 方式二:
### 環(huán)境中生成 crd 資源即可用于遠(yuǎn)程調(diào)試開發(fā)流程惨寿,后續(xù)幾步均為本地環(huán)境測試流程
make install
### 控制臺輸出日志編譯調(diào)試
make run

拓展閱讀

問題1:
服務(wù)協(xié)議: ProtocolSCTP 使用 ProtocolTCP 針對對外暴露的服務(wù)協(xié)議來說邦泄。

問題2:
webhook 調(diào)度時(shí),報(bào)證書路徑錯(cuò)誤裂垦,謹(jǐn)慎核查 tls 的證書路徑呦顺囊!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蕉拢,隨后出現(xiàn)的幾起案子特碳,更是在濱河造成了極大的恐慌,老刑警劉巖晕换,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件午乓,死亡現(xiàn)場離奇詭異,居然都是意外死亡闸准,警方通過查閱死者的電腦和手機(jī)益愈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蒸其,你說我怎么就攤上這事敏释。” “怎么了摸袁?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵钥顽,是天一觀的道長。 經(jīng)常有香客問我靠汁,道長蜂大,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任蝶怔,我火速辦了婚禮奶浦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘添谊。我一直安慰自己财喳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布斩狱。 她就那樣靜靜地躺著耳高,像睡著了一般。 火紅的嫁衣襯著肌膚如雪所踊。 梳的紋絲不亂的頭發(fā)上泌枪,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天,我揣著相機(jī)與錄音秕岛,去河邊找鬼碌燕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛继薛,可吹牛的內(nèi)容都是我干的修壕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼遏考,長吁一口氣:“原來是場噩夢啊……” “哼慈鸠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起灌具,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤青团,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后咖楣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體督笆,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年诱贿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了娃肿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖咸作,靈堂內(nèi)的尸體忽然破棺而出锨阿,到底是詐尸還是另有隱情,我是刑警寧澤记罚,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站壳嚎,受9級特大地震影響桐智,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烟馅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一说庭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧郑趁,春花似錦刊驴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梭纹,卻和暖如春躲惰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背变抽。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工础拨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绍载。 一個(gè)月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓诡宗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親击儡。 傳聞我的和親對象是個(gè)殘疾皇子塔沃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容