迎難而上駕馭Kubernetes
對(duì)新手來(lái)說(shuō),Kubernetes可能是一頭野獸。我們體驗(yàn)到了諸多好處和便利,但在表面之下卻發(fā)生了許多我們無(wú)法看到的事情。為了剝繭抽絲一探究竟,Akamai通過(guò)對(duì)著名倉(cāng)庫(kù):Kelsey Hightower的Kubernetes the Hard Way創(chuàng)建fork,圍繞Linode平臺(tái)制定出一種更適合的方法。
延伸閱讀,點(diǎn)擊鏈接了解 Akamai Cloud Computing
如果你以前沒(méi)有接觸過(guò)Kelsey的方法,他提供的內(nèi)容絕對(duì)值得一看。畢竟他可是業(yè)界知名的Kubernetes布道師之一,也是該項(xiàng)目最早的貢獻(xiàn)者之一。
如果你已經(jīng)準(zhǔn)備好真正深入了解Kubernetes的工作原理,本文將向你分享一些重要經(jīng)驗(yàn)。你也許將能以此為契機(jī),以一種截然不同的新方式去理解自己曾經(jīng)認(rèn)為理所當(dāng)然的事情。希望這足以讓你有興趣親自一試!
第1課:人都會(huì)犯錯(cuò)
Hightower的作品中最驚人的地方在于,會(huì)向你展示為什么Kubernetes的腳本部署應(yīng)用如此廣泛。他的方法很簡(jiǎn)單,就是帶你了解運(yùn)行這些部署時(shí)會(huì)發(fā)生什么。
當(dāng)你同時(shí)在三個(gè)控制平面節(jié)點(diǎn)上運(yùn)行同一條命令時(shí),可能會(huì)出現(xiàn)簡(jiǎn)單的輸入錯(cuò)誤,進(jìn)而需要返回來(lái)重新輸入。你也可能在實(shí)驗(yàn)結(jié)束時(shí)才意識(shí)到這方面的煙霧測(cè)試(Smoke test)已經(jīng)完全失敗,需要重新啟動(dòng)。只有在我們犯錯(cuò)時(shí)才會(huì)學(xué)到最多東西,因?yàn)檫@樣就能回過(guò)頭來(lái)弄清楚自己到底做錯(cuò)了什么。事實(shí)上,整本教程中最有用的部分之一就是清理部分,因?yàn)槟憧赡軙?huì)遇到集群中的東西壞得無(wú)法修復(fù)的時(shí)候,這時(shí)候?qū)⒅荒軓念^開始。
是誰(shuí)說(shuō)Kubernetes很簡(jiǎn)單的?
第2課:Kubernetes并不是魔術(shù)
如果只用過(guò)托管的Kubernetes集群,你可能會(huì)覺(jué)得Kubernetes是個(gè)神奇的系統(tǒng),能讓你的東西一直運(yùn)行下去。但深入學(xué)習(xí)下去就會(huì)發(fā)現(xiàn),Kubernetes并不是魔術(shù)。它只是一堆代碼,做著優(yōu)秀軟件最擅長(zhǎng)的事:讓你看起來(lái)像個(gè)魔術(shù)師。
當(dāng)你磕磕絆絆地正確設(shè)置Linode上的主機(jī)名,或者試圖弄明白Kubernetes的網(wǎng)絡(luò)模型到底是怎么回事時(shí),你就會(huì)清楚意識(shí)到:自己所面對(duì)的并不是什么神奇的容器仙藥,不可能將它撒在基礎(chǔ)設(shè)施上就能讓一切難題迎刃而解。
最后,當(dāng)你在部署Kubernetes集群時(shí)鍵入每一條命令,而不是僅僅按下按鈕就將生產(chǎn)代碼發(fā)布出去時(shí),你就會(huì)明白為什么Kubernetes的按按鈕式解決方案如此之好。這也意味著當(dāng)集群出現(xiàn)問(wèn)題時(shí),你可以深入其中并解決問(wèn)題,而原本你甚至可能都不知道具體是平臺(tái)的哪一部分出現(xiàn)了問(wèn)題。
第3課:閱讀文檔
首次閱讀Hightower的教程時(shí),筆者在讀完一半時(shí)才意識(shí)到,文檔鏈接的存在并不是為了好玩,而是必不可少的。要建立一個(gè)龐大的系統(tǒng),必須通讀Kubernetes文檔。
當(dāng)然,你也可以簡(jiǎn)單地將所有內(nèi)容輸入終端,獲得運(yùn)行小型Kubernetes集群所需的所有Linode實(shí)例,但這種方式要求你具備超人般的打字技巧,并確保永遠(yuǎn)不會(huì)出錯(cuò)。當(dāng)然,你可能會(huì)在學(xué)習(xí)結(jié)束時(shí)對(duì)Kubernetes的運(yùn)作有更多了解,但這遠(yuǎn)比不上親自關(guān)注每個(gè)實(shí)驗(yàn)中的鏈接。
對(duì)某些讀者來(lái)說(shuō),這個(gè)結(jié)論可能是顯而易見的。不過(guò)有些人可能會(huì)經(jīng)歷這樣的循環(huán):無(wú)法確定如何讓某個(gè)實(shí)驗(yàn)正常運(yùn)行,于是直接跳到指南的“清理”部分重新開始。在此之前請(qǐng)先查看關(guān)鍵鏈接。順便閱讀一下文檔,你會(huì)更快樂(lè)。
結(jié)論:別放棄!
如果你一直讀到了這里,請(qǐng)接受我們的贊賞。你可能不需要最后的忠告,但我們還是要告訴你:別放棄!不管有多難,用這種“苦辦法”建立Kubernetes集群并不是不可能完成的任務(wù)。畢竟,按按鈕式的解決方案一直都在做這種事,甚至無(wú)需任何思考。如果電腦可以按照一堆指令操作,那么你也可以。
此外,看著自己部署到手工構(gòu)建的Kubernetes集群上的網(wǎng)站,那種感覺(jué)有點(diǎn)像看到了只有徒步一天才能到達(dá)的高山湖泊。你會(huì)很慶幸自己堅(jiān)持下來(lái)了。
Hightower的指南很實(shí)用,這也是我們將它fork并借此構(gòu)建Linode專用資源的原因。這能讓大家學(xué)到很多東西,但更重要的是,在做這件事的過(guò)程中可以獲得樂(lè)趣:我們成功解決了棘手的問(wèn)題。
所以你不試試親自探索一下Kubernetes嗎?立即注冊(cè)Linode賬戶,在Linode平臺(tái)上盡情探索吧。
—————————————————————————————————————————————————
如您所在的企業(yè)也在考慮采購(gòu)云服務(wù)或進(jìn)行云遷移,
點(diǎn)擊鏈接了解Akamai Linode的解決方案