成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何順利完成Kubernetes源碼編譯-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)如何順利完成Kubernetes源碼編譯,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)建站專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、可克達(dá)拉網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城網(wǎng)站定制開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為可克達(dá)拉等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

為什么要編譯源碼 ?

Kubernetes是一個非常棒的容器集群管理平臺。通常情況下,我們并不需要修改K8S代碼即可直接使用。但如果,我們在環(huán)境中發(fā)現(xiàn)了某個問題/缺陷,或按照特定業(yè)務(wù)需求需要修改K8S代碼時,如定制Kubelet的StopContainer 邏輯、kube-scheduler的pod調(diào)度邏輯等。為了讓修改生效,那么就需要編譯K8S代碼了。

Kubernetes源碼編譯,大致分為本地二進(jìn)制可執(zhí)行文件編譯和docker鏡像編譯兩種。由于在我們的環(huán)境中,Kubernetes是由Docker容器方式運行的。故此我們需要采用后面一種方式編譯,即鏡像編譯。

由于Kubernetes每個組件服務(wù)的鏡像Dockerfile文件是由Kubernetes源碼自動生成的,因此,社區(qū)并未提供每個組件的鏡像Dockerfile文件。編譯本地二進(jìn)制可執(zhí)行文件很簡單,也更直接。而docker鏡像編譯資料卻很少,且礙于某種特殊網(wǎng)絡(luò)原因,會導(dǎo)致失敗。此處,將介紹如何順利的完成K8S鏡像編譯。

安裝依賴 

安裝Golang

如何順利完成Kubernetes源碼編譯

指定分支,下載 Kubernetes 源代碼(默認(rèn)$GOPATH目錄為/root/go/)

如何順利完成Kubernetes源碼編譯

本地二進(jìn)制文件編譯Kubernetes(方法一) 

修改運行平臺配置參數(shù)(可選)

根據(jù)自己的運行平臺(linux/amd64)修改hack/lib/golang.sh,把KUBE_SERVER_PLATFORMS,KUBE_CLIENT_PLATFORMS和KUBE_TEST_PLATFORMS中除linux/amd64以外的其他平臺注釋掉,以此來減少編譯所用時間。

編譯源碼

進(jìn)入Kubernetes根目錄下

如何順利完成Kubernetes源碼編譯

KUBE_BUILD_PLATFORMS指定目標(biāo)平臺,WHAT指定編譯的組件,通過GOFLAGS和GOGCFLAGS傳入編譯時參數(shù),如此處編譯kubelet 組件。

如何順利完成Kubernetes源碼編譯
  • 如果不指定WHAT,則編譯全部。

  • make all是在本地環(huán)境中進(jìn)行編譯的。

  • make release和make quick-release在容器中完成編譯、打包成docker鏡像。

  • 編譯kubelet這部分代碼,也可執(zhí)行make clean && make WHAT=cmd/kubelet

檢查編譯成果

編譯過程較長,請耐心等待,編譯后的文件在kubernetes/_output里。

或者進(jìn)入cmd/kubelet (以kubelet為例子)

執(zhí)行g(shù)o build -v命令,如果沒出錯,會生成可執(zhí)行文件kubelet

如何順利完成Kubernetes源碼編譯

生成的可執(zhí)行文件在當(dāng)前文件夾下面

如何順利完成Kubernetes源碼編譯

Docker鏡像編譯Kubernetes(方法二)

查看kube-cross的TAG版本號

如何順利完成Kubernetes源碼編譯

查看debian_iptables_version版本號

如何順利完成Kubernetes源碼編譯

這里,我使用DockerHub的Auto build功能,來構(gòu)建K8s鏡像。自然將編譯需要用到的base鏡像,放在了DockerHub上(也算是為促進(jìn)國內(nèi)K8s源碼docker編譯貢獻(xiàn)綿薄之力吧?。?/p>如何順利完成Kubernetes源碼編譯

把build/lib/release.sh中的–pull去掉,避免構(gòu)建鏡像繼續(xù)拉取鏡像:

如何順利完成Kubernetes源碼編譯

編輯文件hack/lib/version.sh

將KUBE_GIT_TREE_STATE=”dirty” 改為 KUBE_GIT_TREE_STATE=”clean”,確保版本號干凈。

執(zhí)行編譯命令

如何順利完成Kubernetes源碼編譯

其中KUBE_BUILD_PLATFORMS=linux/amd64指定目標(biāo)平臺為linux/amd64,GOFLAGS=-v開啟verbose日志,GOGCFLAGS=”-N -l”禁止編譯優(yōu)化和內(nèi)聯(lián),減小可執(zhí)行程序大小。

編譯的K8s Docker鏡像以壓縮包的形式發(fā)布在_output/release-tars目錄中

如何順利完成Kubernetes源碼編譯

使用編譯鏡像

等待編譯完成后,在_output/release-stage/server/linux-amd64/kubernetes/server/bin/目錄下保存了編譯生成的二進(jìn)制可執(zhí)行程序和docker鏡像tar包。如導(dǎo)入kube-apiserver.tar鏡像,并更新環(huán)境上部署的kube-apiserver鏡像。

如何順利完成Kubernetes源碼編譯

整個編譯過程結(jié)束后,現(xiàn)在就可以到master節(jié)點上,修改/etc/kubernetes/manifests/kube-apiserver.yaml描述文件中的image,修改完立即生效。

以上就是如何順利完成Kubernetes源碼編譯,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

本文標(biāo)題:如何順利完成Kubernetes源碼編譯-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article6/ccsjig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)頁設(shè)計公司、微信小程序、App設(shè)計、網(wǎng)站設(shè)計、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
洛南县| 界首市| 清丰县| 乌拉特后旗| 大姚县| 合江县| 思茅市| 裕民县| 喜德县| 六盘水市| 花莲市| 乌鲁木齐市| 杨浦区| 中超| 喜德县| 郓城县| 交口县| 巴青县| 普陀区| 香格里拉县| 饶平县| 青浦区| 杂多县| 龙口市| 宽甸| 安陆市| 同心县| 日照市| 凉山| 乌兰浩特市| 大方县| 东光县| 建德市| 长白| 新巴尔虎左旗| 温宿县| 贵德县| 建水县| 博乐市| 儋州市| 安阳市|