真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

扒一扒Rancher社區(qū)中的小工具

與Linux、OpenStack等成熟的技術(shù)社區(qū)相比,Rancher社區(qū)還是處于初級(jí)發(fā)展階段,一個(gè)技術(shù)社區(qū)的成敗并不是單純的代碼貢獻(xiàn),而學(xué)習(xí)文檔的數(shù)量和代碼管理作業(yè)流程也是非常重要的。如何讓懷揣不同需求的工程師都能在社區(qū)中快速找到相應(yīng)的解決方案,這就需要大家協(xié)同合作共同促進(jìn)社區(qū)發(fā)展與完善。除了我們所熟知的Rancher & RancherOS,Rancher Labs的開發(fā)團(tuán)隊(duì)在實(shí)踐中提煉了很多實(shí)用的小工具,這些小工具雖然并不會(huì)左右Rancher發(fā)展的大局,但是在項(xiàng)目標(biāo)準(zhǔn)化和開發(fā)效率上給團(tuán)隊(duì)帶來巨大的便捷。這次主要是帶著大家一起來認(rèn)識(shí)一下這些小工具。

創(chuàng)新互聯(lián)建站主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁視覺設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)手機(jī)網(wǎng)站制作、微商城、網(wǎng)站托管及成都網(wǎng)站維護(hù)、WEB系統(tǒng)開發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為發(fā)電機(jī)維修行業(yè)客戶提供了網(wǎng)站營(yíng)銷服務(wù)。

Golang包管理工具-Trash

項(xiàng)目地址:https://github.com/rancher/trash

目前主流的編程語言 Python、Ruby、Java、Php 等已經(jīng)把包管理的流程設(shè)計(jì)的猶如行云流水般流暢,一般情況下開發(fā)者是不需要操心類庫包依賴管理以及升級(jí)、備份、團(tuán)隊(duì)協(xié)作的。Golang在1.5版本開始,官方開始引入包管理的設(shè)計(jì),加了 vendor目錄來支持本地包管理依賴,但是需要特殊設(shè)置GO15VENDOREXPERIMENT=1,在1.6時(shí)代這個(gè)特性已經(jīng)是默認(rèn)的了??墒莢endor并沒有統(tǒng)一的版本號(hào)管理功能,只是額外提供了project內(nèi)包的依賴路徑。于是Trash這個(gè)工具就應(yīng)運(yùn)而生了,Trash的使用非常簡(jiǎn)單,只需要有一份依賴包的描述文件即可。

描述文件 trash.conf 支持兩種格式,普通方式和YAML方式,可以直接在其中描述依賴庫的遠(yuǎn)程地址、版本號(hào)等,一個(gè)簡(jiǎn)單的例子(我這里使用普通格式):

扒一扒Rancher社區(qū)中的小工具

然后在根目錄執(zhí)行trash,即可獲得相關(guān)版本的依賴包:

扒一扒Rancher社區(qū)中的小工具

非常輕量級(jí),非常簡(jiǎn)潔。

Golang編譯工具-Dapper

項(xiàng)目地址:https://github.com/rancher/dapper

我們?cè)诰幾ggolang執(zhí)行程序的時(shí)候,因?yàn)樯婕暗絽f(xié)作開發(fā),這就會(huì)碰到一個(gè)問題,就是如何保證編譯環(huán)境的一致性。環(huán)境一致性最好的辦法就是使用容器技術(shù),Dapper就是利用Docker build鏡像的過程中可以執(zhí)行各種命令生成容器的原理。只需在項(xiàng)目的根目錄下創(chuàng)建 Dockerfile.dapper 文件,這是一個(gè)參考Dockerfile標(biāo)準(zhǔn)的文件,執(zhí)行 dapper 命令即可按照約定規(guī)則生成最終的執(zhí)行程序,通過這種方式統(tǒng)一的編譯環(huán)境。

幾乎所有的Rancher項(xiàng)目都是基于Dapper來編譯的,隨意打開一個(gè)項(xiàng)目比如rancher-DNS就可以看到 Dockerfile.dapper 文件:

扒一扒Rancher社區(qū)中的小工具

DAPPER_SOURCE 指定了容器內(nèi)的源碼路徑

DAPPER_OUTPUT 指定了編譯后的輸出路徑,bin dist 目錄會(huì)自動(dòng)在項(xiàng)目根目錄下創(chuàng)建

DAPPER_DOCKER_SOCKET 設(shè)置為True相當(dāng)于docker run -v /var/run/docker.sock:/var/run/docker.sock ... 

DAPPER_ENV 相當(dāng)于docker run -e TAG -e REPO ...

有一點(diǎn)需要注意的是,目前Dapper裝載源碼有兩種方式bind和cp,bind就是直接mount本地的源碼路徑,但是如果使用remote docker daemon方式那就得使用cp模式了。

Golang項(xiàng)目標(biāo)準(zhǔn)化工具 go-skel

項(xiàng)目地址:https://github.com/rancher/go-skel

介紹了包管理工具和打包編譯工具,如果我們?cè)趧?chuàng)建一個(gè)golang項(xiàng)目時(shí)能把這兩個(gè)工具整合起來一起使用,那就太贊了。go-skel就是提供了這樣一個(gè)便利,我們直接來demo一下。

clone一份go-skel的源碼,創(chuàng)建一個(gè)rancher-tour(./skel.sh rancher-tour)的項(xiàng)目:

扒一扒Rancher社區(qū)中的小工具

執(zhí)行完畢后,會(huì)創(chuàng)建一個(gè)標(biāo)準(zhǔn)的項(xiàng)目,包含了dapper和trash這兩個(gè)工具,同時(shí)定義了一份Makefile,我們可以通過make命令來簡(jiǎn)化操作:

扒一扒Rancher社區(qū)中的小工具

比如我們要執(zhí)行一個(gè)ci操作,那就可以直接運(yùn)行 make ci,自動(dòng)運(yùn)行單元測(cè)試,并在bin目錄下生成最終的可執(zhí)行程序:

扒一扒Rancher社區(qū)中的小工具

標(biāo)準(zhǔn)項(xiàng)目已經(jīng)創(chuàng)建了一些初始化代碼,集成了 github.com/urfave/cli ,所以我們可以執(zhí)行執(zhí)行rancher-tour:

扒一扒Rancher社區(qū)中的小工具

微服務(wù)輔助小工具 Giddyup

項(xiàng)目地址:https://github.com/cloudnautique/giddyup

一個(gè)傳統(tǒng)的服務(wù)在容器化的過程中,通常我們會(huì)將其拆分成多個(gè)微服務(wù),充分展現(xiàn)每個(gè)容器只做好一件事情這樣的哲學(xué)。那么就會(huì)出現(xiàn)我們?cè)赗ancher中看到的sidekick容器,數(shù)據(jù)卷容器,專門負(fù)責(zé)更新配置信息的容器等等。

實(shí)際應(yīng)用中我們會(huì)遇到一些問題,比如這些微服務(wù)容器的啟動(dòng)是無序的,無序啟動(dòng)會(huì)導(dǎo)致微服務(wù)之間可能出現(xiàn)連接失敗,進(jìn)而導(dǎo)致整個(gè)服務(wù)不可用;再比如我們?nèi)绾蝸砼卸ㄒ蕾嚨奈⒎?wù)已經(jīng)正常啟動(dòng),這可能需要一個(gè)health check的服務(wù)端口。giddyup就是簡(jiǎn)化這種微服務(wù)檢查工作的利器,它都能做些什么呢:

Get connection strings from DNS or Rancher Metadata.

Determine if your container is the leader in the service.

Proxy traffic to the leader

Wait for service to have the desired scale.

Get the scale of the service

Get Managed-IP of the container (/self/container/primary_ip)

我們還是創(chuàng)建stack并在其中創(chuàng)建service來體驗(yàn)一下giddyup的部分功能,service中包含兩個(gè)容器分別為主容器main和sidekick容器conf,他們共享網(wǎng)絡(luò)棧:

扒一扒Rancher社區(qū)中的小工具

我們可以在conf內(nèi)啟動(dòng)giddyup health,會(huì)啟動(dòng)一個(gè)監(jiān)聽1620端口的http服務(wù),服務(wù)路徑是/ping:

扒一扒Rancher社區(qū)中的小工具

此時(shí)我們可以在其他服務(wù)的容器內(nèi)查看這個(gè)服務(wù) health port的健康狀態(tài),通過giddyup ip stringify獲取服務(wù)地址,使用giddyup probe可以查看相關(guān)狀態(tài):

扒一扒Rancher社區(qū)中的小工具

可以看到probe返回了OK的信息,說明giddy/main的health port是正常的,如果我們把giddyup health的端口停掉,giddyup probe會(huì)如何?

扒一扒Rancher社區(qū)中的小工具

除了開啟health port功能外,還可以sleep等待service內(nèi)所有容器都啟動(dòng),比如剛才的service,我在main上做wait操作,同時(shí)在UI上對(duì)service擴(kuò)容,可以看到為了等待完成擴(kuò)容差不多sleep了3s:

扒一扒Rancher社區(qū)中的小工具

更多功能可以去看一看giddyup項(xiàng)目的README文檔,另外也可以看看catalog中的一些項(xiàng)目是怎么使用giddyup的,參考:https://github.com/rancher/catalog-dockerfiles

Rancher CLI 工具

項(xiàng)目地址: https://github.com/rancher/cli

現(xiàn)在我們管理Rancher的方式包括UI、API方式,為了能夠和其他工具更好的融合Rancher開發(fā)了CLI工具,可以非常輕量級(jí)的嵌入到其他工具中。CLI將會(huì)在Rancher 1.2-pre2版本中正式放出,兼容性上目前來看沒有支持老版本的計(jì)劃,所以在老版本上出現(xiàn)各種問題也是正常的。

直接在 https://github.com/rancher/cli/releases 下載最新版本即可試用,將rancher cli放到PATH中,正式使用前需要初始化:

扒一扒Rancher社區(qū)中的小工具

然后便可以執(zhí)行各種犀利的操作,比如針對(duì)某個(gè)service進(jìn)行scale操作,這比之前需要用rancher-compose cli要簡(jiǎn)潔的多:

扒一扒Rancher社區(qū)中的小工具

再比如可以實(shí)時(shí)監(jiān)聽rancher events,可以即時(shí)查看Rancher中正在發(fā)生的各種任務(wù),對(duì)協(xié)助排查問題,分析系統(tǒng)運(yùn)行情況都非常有用:

扒一扒Rancher社區(qū)中的小工具

后語

小工具中內(nèi)含著大智慧,工具文化是工程師Team高效協(xié)作的重要標(biāo)志,高質(zhì)量的工具能讓項(xiàng)目開發(fā)有事半功倍之效,其背后也蘊(yùn)藏著深厚的團(tuán)隊(duì)文化理念,就是不計(jì)項(xiàng)目KPI利用個(gè)人業(yè)余時(shí)間為團(tuán)隊(duì)做貢獻(xiàn)的和諧氛圍。其實(shí)國(guó)內(nèi)很多互聯(lián)網(wǎng)公司都是有專門設(shè)立工具開發(fā)工程師的崗位,對(duì)工具帶來的生產(chǎn)效率提升,其重視程度不言而喻!

原文來源:Rancher Labs


文章標(biāo)題:扒一扒Rancher社區(qū)中的小工具
轉(zhuǎn)載注明:http://weahome.cn/article/gcecsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部