提升你 Kubernetes 技能的 5 種方式
在云原生的成長(zhǎng)期,開(kāi)發(fā)者們發(fā)現(xiàn)在一個(gè)小型的、原子化的、精簡(jiǎn)的 Linux 鏡像里編寫(xiě)應(yīng)用程序很方便,這些鏡像與它們所運(yùn)行的服務(wù)器共享資源。從技術(shù)上講,這些基于內(nèi)核命名空間的小環(huán)境定義被稱(chēng)為容器。隨著容器的激增,系統(tǒng)管理員們很快意識(shí)到,開(kāi)發(fā)一個(gè)不僅能幫助他們管理容器,還能幫助他們管理下面的虛擬化基礎(chǔ)設(shè)施的工具變得至關(guān)重要。于是,Kubernetes 應(yīng)運(yùn)而生。
Kubernetes 是一個(gè)可擴(kuò)展開(kāi)源平臺(tái),用于管理容器。它可以幫助管理員和開(kāi)發(fā)者們圍繞容器管理工作負(fù)載、服務(wù)和進(jìn)程。它促進(jìn)了聲明式配置,更容易實(shí)現(xiàn)自動(dòng)化。在它相對(duì)較短的生命周期中,它已經(jīng)催生了一個(gè)迅速成長(zhǎng)的生態(tài)系統(tǒng),其中包括來(lái)自大量公司和項(xiàng)目的服務(wù)、支持和工具。
如果你想對(duì)這項(xiàng)重要的云技術(shù)有更多的了解,這里有一些能幫忙你更深入學(xué)習(xí)的文章。還有 5 個(gè)項(xiàng)目可以幫你把學(xué)到的東西付諸實(shí)踐。
遏制容器亂象
2016 年,我們發(fā)布了《使用 Kubernetes 遏制容器亂象》,這是一篇由 Terry Ryan 寫(xiě)的關(guān)于 Kubernetes 的介紹性文章,講述了 Kubernetes 如何幫助管理員和架構(gòu)師們努力應(yīng)對(duì)容器。如果你想找一篇從底層介紹容器是做什么的以及 Kubernetes 是如何實(shí)現(xiàn)容器管理的,那么你應(yīng)該先讀下本文。本文適合零基礎(chǔ)的讀者,解釋了所有重要的概念,因此你能迅速了解相關(guān)技術(shù)。
如果想進(jìn)階了解內(nèi)核層面發(fā)生的一些神奇的事情,請(qǐng)閱讀 Jessica Cherry 對(duì) Kubernetes 命名空間的解釋。
Kubernetes:為什么它很重要?
Kubernetes 提供了基礎(chǔ)設(shè)施即服務(wù)Infrastructure-as-a-Service(IaaS)解決方案(類(lèi)似 OpenStack)的便利和一個(gè)完整的平臺(tái)即服務(wù)Platform as a Service(PaaS)。它為你提供了管理基礎(chǔ)設(shè)施的抽象能力,以及在裸金屬基礎(chǔ)層面進(jìn)行故障排除所需的工具。如果你執(zhí)著于使用單一的裸金屬服務(wù)器,你可能需要閱讀下 Tim Potter 寫(xiě)的《你為什么需要 Kubernetes》。他的文章對(duì)比了 IaaS 和 PaaS,解釋了為什么 Kubernetes 如此廣泛地被使用。你可能并不是一定需要 Kubernetes 或容器,但是重要的是知道什么情況下需要。
在樹(shù)莓派上運(yùn)行 Kubernetes
熟悉 Kubernetes 的最好方法莫過(guò)于自己運(yùn)行它。不幸的是,不是每個(gè)人都有一個(gè)云服務(wù)基層設(shè)施(或者有足夠的錢(qián)來(lái)租用一個(gè))可供其支配。而幸運(yùn)的是,Chris Collins 提供了《在樹(shù)莓派上運(yùn)行 Kubernetes》的教程。結(jié)合他的另外幾篇關(guān)于《Cloud-init》和《Cloud-init 服務(wù)》的教程(也是在樹(shù)莓派上運(yùn)行),你可以搭建任何你想要的家庭實(shí)驗(yàn)室,這樣你就可以學(xué)習(xí)如何管理屬于自己的開(kāi)放混合云。
Kubernetes 命令
一旦你運(yùn)行起 Kubernetes 后,可以看看 Jessica Cherry 的文章和附帶的備忘清單,這個(gè)清單列出了所有的基本的 Kubernetes 命令。在她的文章中,她解釋了 kubectl 命令的語(yǔ)法,簡(jiǎn)單講述了每個(gè)命令和子命令是用來(lái)做什么的。
有趣的 Kubernetes 項(xiàng)目
沒(méi)有什么比擁有技術(shù)卻不知道該怎么用它更令人沮喪的了。例如,在你的辦公桌上有一個(gè)樹(shù)莓派是一回事,但是決定它的 CPU 應(yīng)該用來(lái)做什么工作卻完全是另一回事。我們發(fā)布了很多教程,來(lái)指導(dǎo)你完成你的 Kubernetes 之路的探索:
- Helm 是一個(gè) Kubernetes 的包管理器。你可以在它的幫助下,很快熟悉 Kubernetes 環(huán)境。
- 學(xué)習(xí)下 Operator SDK 的所有內(nèi)容,來(lái)熟悉 Kubernetes 的對(duì)象和操作器。
- 在 Kubernetes 之上搭建網(wǎng)絡(luò)文件系統(tǒng)(NFS)
- 學(xué)習(xí)如何使用 Skipper 或 Traefik 進(jìn)行流量調(diào)度。
最重要的,花點(diǎn)時(shí)間來(lái)熟悉容器和 Kubernetes。不論你先把容器化的應(yīng)用放到服務(wù)器、云上還是桌面,它們都是能幫助你理解的重要的范例,因?yàn)樗鼈兪且粋€(gè)強(qiáng)大的構(gòu)造,可以讓 Linux 的應(yīng)用變得更好、更健壯、魯棒性更好、更簡(jiǎn)單。一定要投入精力去學(xué)習(xí)它們,你不會(huì)后悔的。