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