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

kubernetes開發(fā)環(huán)境的構(gòu)建

本篇內(nèi)容主要講解“kubernetes開發(fā)環(huán)境的構(gòu)建”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“kubernetes開發(fā)環(huán)境的構(gòu)建”吧!

創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為臨澤企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站建設(shè),臨澤網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

文章目錄

本文介紹如何對(duì)kubernetes進(jìn)行二次開發(fā),倉庫如何管理,git分支如何管理,怎樣利用CI去編譯與發(fā)布以及如何給社區(qū)貢獻(xiàn)代碼等,結(jié)合實(shí)際例子,望對(duì)大家有所幫助。

開發(fā)環(huán)境構(gòu)建

kubernetes開發(fā)環(huán)境的構(gòu)建

Fork

把github.com/kubernetes/kubernetes 項(xiàng)目fork到自己的倉庫

Clone到本地

git clone https://github.com/<your-username>/kubernetes

設(shè)置remote

git remote add upstream https://github.com/kubernetes/kubernetes.gitgit remote set-url --push upstream no-pushing

注意此時(shí)你的本地倉庫就有了兩個(gè)遠(yuǎn)程倉庫,一個(gè)叫upstream(社區(qū)倉庫) 一個(gè)叫origin(你fork的)

代碼同步

當(dāng)社區(qū)倉庫代碼更新時(shí),我們希望與之同步,那么:

git pull upstream master  # 先同步到本地git push                  # push 到origin

你修改了代碼希望同步給社區(qū),那么PR即可

分支管理

kubernetes開發(fā)環(huán)境的構(gòu)建

假設(shè)我們要定制一個(gè)功能,比如我之前做的對(duì)kubelet進(jìn)行l(wèi)xcfs增強(qiáng),而我們線上又運(yùn)行了多個(gè)版本的k8s,我們希望這個(gè)特性幾個(gè)版本都可以加上,而且未來k8s發(fā)布新版本時(shí)同樣能merge進(jìn)去這功能。

要做到這個(gè)git里的兩個(gè)命令非常重要:

  • git cherry-pick 能指定merge特定的變更

  • git rebase 通常我用來合并多個(gè)commit, 雖然cherry-pick也支持多個(gè)commit,但是多了容易混亂

首先從master分支HEAD切出一個(gè)分支,我們有所的功能開發(fā)在這個(gè)分支上進(jìn)行,如我做了c1 c2兩次commit。

然后希望把這個(gè)功能merge到2.0版本中,我們先從2.0的tag切一個(gè)分支出來,然后在這個(gè)分之上去cherry-pick c1 c2即可,非常簡(jiǎn)單方便,其它版本需要此功能同理。

這里注意,如果不用cherry-pick 直接merge的話,因?yàn)?.0版本之后還有很多次變更,會(huì)產(chǎn)生大量沖突。

CI編譯與發(fā)布

筆者比較喜歡drone,所以編譯與發(fā)布都是用的drone,安利個(gè)drone免費(fèi)公有服務(wù)非常好用

kubernetes開發(fā)環(huán)境的構(gòu)建

由于k8s各個(gè)版本可能需要的golang版本都不太一樣,所以最方便的還是在容器中進(jìn)行構(gòu)建,

但并不是隨便一個(gè)golang的鏡像都可以進(jìn)行構(gòu)建,因?yàn)閗8s還需要拷貝代碼,

生成代碼等依賴了一些小工具,我這里提供了一個(gè)官方的編譯鏡像:

fanux/kube-build:v1.12.1-2


發(fā)布時(shí)用了drone一個(gè)非常方便的插件:plugins/github-release,

可以直接把二進(jìn)制文件放到github的release pages里

.drone.yml 長這樣:

kind: pipelinename: defaultworkspace:    base: /go    path: src/k8s.io/kubernetes  # 要注意工作目錄一定要寫這個(gè)
steps:- name: build                    # 編譯,名字隨便寫  image: fanux/kube-build:v1.12.1-2    environment:    GO111MODULE: on              # 啟動(dòng)go mod  commands:      - make generated_files UPDATE_API_KNOWN_VIOLATIONS=true   # 這個(gè)是一個(gè)known api校驗(yàn),不加編譯可能會(huì)報(bào)錯(cuò)      - KUBE_GIT_TREE_STATE="clean" KUBE_GIT_VERSION=v1.14.0 KUBE_BUILD_PLATFORMS=linux/amd64 make all WHAT=cmd/kubelet GOFLAGS=-v  # 幾個(gè)環(huán)境變量特別重要,如不加clean編譯出來版本號(hào)就會(huì)加dirty后綴,需要加版本號(hào)不然很多時(shí)候無法正常工作,加構(gòu)建平臺(tái),這樣無需編譯多個(gè)bin文件加快編譯速度,WHAT里指定需要編譯什么代碼,大部分情況無需編譯有所組件      - ls  _output/bin/  # 這里能看到編譯后的二進(jìn)制文件
- name: publish  image: plugins/github-release  settings:    api_key:        from_secret: git-release-token    files: _output/bin/kubelet   # 把上一步二進(jìn)制文件放到release page中    title: ${DRONE_TAG}          # 使用你打的tag作為標(biāo)題    note: Note.md                # 指定一個(gè)文件說明你release中干了啥    when:        event: tag

這樣提交代碼后刷刷抖音等結(jié)果即可。。

實(shí)踐案例

k8s kubeadm默認(rèn)證書的時(shí)間是一年,我希望延長到99年,這樣就需要定制化開發(fā),那么問題來了,因?yàn)榘姹颈姸啵遣皇切枰總€(gè)版本都去改一下,那太麻煩了,正確的做法如下:

從master切出一個(gè)分支

git checkout -b kubead

修改代碼并commit

commit 6d16c60ca5ce8858feeabca7a3a18d59e642ac3f (HEAD -> kubeadm)Author: fanux <fhtjob@hotmail.com>Date:   Mon Mar 18 20:26:08 2019 +0800
   kubeadm with long cert
commit 364b18cb9ef1e8da2cf09f33d0fd8042de6b327e (upstream/master, origin/master, origin/HEAD, master)

可以看到我們commit了一次,現(xiàn)在只需要把6d16c60ca這個(gè)變化merge到各版本即可

merge到1.13.4版本中

git checkout -b v1.13.4 v1.13.4git cherry-pick 6d16c60ca5

注意 這次commit如果修改了相同文件的行還是可能會(huì)沖突的,需要手動(dòng)解決一下沖突

解決完沖突commit即可

?  kubernetes git:(v1.13.4) ? git add .?  kubernetes git:(v1.13.4) ? git commit -m "v1.13.4-cert"[v1.13.4 1bd2e627f5] v1.13.4-cert Date: Mon Mar 18 20:26:08 2019 +0800 4 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 .drone.yml create mode 100644 Note.md?  kubernetes git:(v1.13.4) git tag v1.13.4-cert?  kubernetes git:(v1.13.4) git push --tag

到此,相信大家對(duì)“kubernetes開發(fā)環(huán)境的構(gòu)建”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

名稱欄目:kubernetes開發(fā)環(huán)境的構(gòu)建
文章源于:http://jinyejixie.com/article20/pggcjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、關(guān)鍵詞優(yōu)化網(wǎng)站策劃、用戶體驗(yàn)做網(wǎng)站

廣告

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

綿陽服務(wù)器托管
长顺县| 盘山县| 定襄县| 五常市| 遂平县| 永州市| 清丰县| 德州市| 湖州市| 临西县| 阳江市| 达拉特旗| 绍兴县| 武邑县| 甘泉县| 邹平县| 景宁| 灌阳县| 肇东市| 莒南县| 益阳市| 楚雄市| 灵石县| 怀宁县| 鱼台县| 双柏县| 建水县| 若尔盖县| 阳曲县| 侯马市| 紫云| 台南市| 汉源县| 遂川县| 通河县| 旬邑县| 龙川县| 鄂尔多斯市| 宁远县| 宁都县| 策勒县|