在你的 Linux 家庭實(shí)驗(yàn)室上運(yùn)行 Kubernetes 的五個(gè)理由
在 ??樹莓派家庭實(shí)驗(yàn)室上運(yùn)行 Kubernetes 的 5 個(gè)理由?? 這篇文章中,我解釋了為什么推薦在家里使用 Kubernetes。其中的理由相對(duì)來說會(huì)有點(diǎn)隨意,并且主要于關(guān)注結(jié)果。除了 Kubernetes 好用的功能之外,還有其他幾個(gè)應(yīng)將 Kubernetes 包含在你自己的計(jì)算機(jī)的理由。
LCTT 譯注:家庭實(shí)驗(yàn)室 指的是安置在你家里的一個(gè)服務(wù)器或者多服務(wù)器的組合配置。在之上托管了多個(gè)服務(wù)和虛擬系統(tǒng),以此來進(jìn)行測(cè)試、開發(fā),或者提供家庭功能用途。
1、Kubernetes 是基于 Linux 而建立的
T-shirt reading "Containers are Linux"
Kubernetes 有很高的知名度。對(duì)于一些人來說,Kubernetes 是一種神秘技術(shù),有一個(gè)不好念的名字;而對(duì)另一些人來說,Kubernetes 就好像是牧羊犬放牧羊群一樣,可以幫助他們管理過多的容器;對(duì)于其它人來說,Kubernetes 是一種云的操作系統(tǒng),是 實(shí)效云開發(fā) 的一個(gè)有用的界面;對(duì)于大多數(shù)人來說,Kubernetes 可能是他們從未聽說過的后端軟件。正如人們所想的那樣,Kubernetes 具有所有這些能力,甚至有更多的功能。
并非每個(gè)人都以相同的方式使用 Kubernetes,但如果你主要的工作是系統(tǒng)管理,你會(huì)發(fā)現(xiàn) Kubernetes 只是又一個(gè) Linux 命令。
我有一件 T 恤,上面寫著 “容器就是 ”,它的意思是顯而易見的。容器技術(shù)使用 cgroup,來運(yùn)行包含一個(gè)或一組應(yīng)用程序的最小 Linux 操作系統(tǒng)鏡像。當(dāng)你運(yùn)行容器時(shí),實(shí)際上你就是在運(yùn)行 Linux。雖然 Kubernetes 能在許多平臺(tái)上使用,但 Kubernetes 管理的是 Linux 容器。當(dāng)你通過終端與 Kubernetes 交互時(shí),就像是使用 Linux:有命令、選項(xiàng)、參數(shù)和語法。運(yùn)行 Kubernetes 的 kubeadm? 或(在 OKD 或 OpenShift 上)運(yùn)行 oc 命令,你會(huì)感覺到很熟悉,是因?yàn)樗鼈兊墓ぷ鞣绞脚c你習(xí)慣使用的任何其他 Linux 命令一樣。開始時(shí)看似陌生的東西很快就會(huì)變得自然,任何有興趣在終端上花時(shí)間的 Linux 用戶都可以在 Kubernetes 中探索到許多有趣的東西。
2、Kubernetes 很靈活
在過去,Kubernetes 有點(diǎn)死板,因?yàn)閺谋举|(zhì)上來說,它僅能支持一個(gè) 容器運(yùn)行時(shí)。這個(gè)規(guī)定非常嚴(yán)格,以至于今天需要一個(gè) 硬編碼的墊片,才能繞過這個(gè)遺留問題。幸運(yùn)的是,如今 Kubernetes 已經(jīng)變得足夠靈活,可以滿足管理員的許多不同需求了。Podman? 和 CRI-O? 可用作于容器引擎,它們都可以與 systemd 集成(這是因?yàn)?Kubernetes 的底層都是 Linux)。你可以自己選擇 Kubernetes 所使用的文件系統(tǒng)、集群大小和構(gòu)造、監(jiān)控工具、鏡像、編程語言等等配置。甚至現(xiàn)在有些人說 Kubernetes 有 太多 的選擇了。
3、學(xué)習(xí) Kubernetes 有助于個(gè)人發(fā)展
容器是一個(gè)碩果累累的事物,它們會(huì)快速地成倍增長,這就是它的設(shè)計(jì)。容器旨在擴(kuò)展,它們通過生成克隆來擴(kuò)展。將容器分組(稱為 “容器莢”),并自動(dòng)管理容器莢的生命周期,這就是 Kubernetes 運(yùn)用的方式。它正在改變服務(wù)器的運(yùn)行方式。
你可能不需要無限擴(kuò)展的容器集合,也不需要任何東西來幫助你管理正運(yùn)行的一或兩個(gè)容器。但是,如果你希望受益于處理容器莢的能力,那么 Kubernetes 正是你需要學(xué)習(xí)的工具。隨著越來越多的公司和組織走向全球,擁抱 數(shù)字化轉(zhuǎn)型,Kubernetes 正在成為 IT 領(lǐng)域的必備技能。如果你想要在這個(gè)領(lǐng)域中發(fā)展,那么現(xiàn)在開始學(xué)習(xí) Kubernetes 并熟悉它的常見問題及其解決方案,將會(huì)是一項(xiàng)很好的投資。
4、Kubernetes 讓容器更有意義
你可能還記得幾年前,當(dāng)開源項(xiàng)目剛開始將它們的代碼作為容器鏡像分發(fā)時(shí),對(duì)于許多人來說,容器這一概念是令人費(fèi)解的:沒有多少系統(tǒng)管理員真正理解 容器是什么,或者明白容器的邊界在哪里、如何進(jìn)入容器,以及為什么數(shù)據(jù)不能存在于容器內(nèi)。
現(xiàn)在,IT 界(包括開發(fā)人員在內(nèi))都對(duì)容器的概念都十分熟悉了。對(duì)于現(xiàn)代的 CI/CD 工作流程 來說,交付給容器十分有意義。不過,對(duì)于系統(tǒng)管理員來說,容器的優(yōu)勢(shì)如下:安裝容器(理論上)比等待發(fā)行版更新其軟件包更為容易,而且容器可以擴(kuò)展。然而,在你使用 Kubernetes 之前,你很可能都不會(huì)真正地感受到這些好處。當(dāng)你開始使用 Kubernetes 和相關(guān)工具管理容器之前,持續(xù)交付容器的好處和容器的擴(kuò)展能力可能只是你從文章里面讀過的想法。將容器集成到你管理服務(wù)器的方式中,你會(huì)突然明白 Kubernetes 中令人興奮的是什么。
Apache JMeter
你可以試試看這個(gè)最基本的測(cè)試:只需在容器中啟動(dòng)你最喜歡的 Web 服務(wù)器,創(chuàng)建一個(gè)容器莢,然后使用來自 Apache JMeter 的流量訪問你的服務(wù)器,然后觀察容器響應(yīng)。
5、Kubernetes 是云原生的
如果你主要做的是軟件開發(fā),而不是系統(tǒng)管理,那么 Kubernetes 也是 網(wǎng)頁應(yīng)用程序的一個(gè)很好的平臺(tái)。我們現(xiàn)在都在使用網(wǎng)頁應(yīng)用程序,盡管大多數(shù)人只是將它們視為 “網(wǎng)站”。網(wǎng)絡(luò)擁有龐大的用戶群,因此通過瀏覽器提供開源的應(yīng)用程序是非常有意義的。有一些很棒的開源應(yīng)用程序在網(wǎng)絡(luò)上運(yùn)行,其中許多的應(yīng)用程序都以容器的形式分發(fā)的,它們可以支持簡單的安裝和持續(xù)的用戶體驗(yàn)。
Kubernetes 的其他優(yōu)勢(shì):Kubernetes 很有意思
你還記得你還是 Linux 新手的時(shí)候嗎?對(duì)于一些人來說,那可能是幾十年前的事了,而對(duì)于其他人來說,可能是不久的過去。不過,對(duì)于所有人來說,學(xué)習(xí)一項(xiàng)新事物會(huì)是一個(gè)有趣的挑戰(zhàn)。如果你達(dá)到了認(rèn)為 “Linux 的安裝與其說是一個(gè)挑戰(zhàn),不如說是一個(gè)麻煩” 的程度,那么你可以嘗試一下構(gòu)建一個(gè) Kubernetes 集群。它會(huì)讓你回憶起你忘記的各種概念:如何修改純文本(特別是 YAML? 格式的)配置文件,如何配置網(wǎng)絡(luò)接口和網(wǎng)絡(luò),如何路由流量,知道一個(gè)后端相對(duì)于另一個(gè)后端的優(yōu)缺點(diǎn),在 --dry-run? 測(cè)試之后運(yùn)行 --dry-run 測(cè)試,試探性地按回車鍵來確定你是否做對(duì)了。老實(shí)說,使用 Kubernetes 很有趣。
如果你想構(gòu)建自己的基礎(chǔ)架構(gòu),沒有什么比構(gòu)建你自己的 Kubernetes 集群更好的了。Kubernetes 集群將會(huì)為你打開一個(gè)全新的世界。你很快就會(huì)成為一名云架構(gòu)師,學(xué)會(huì)完善你的開放云,在容器中安裝令人驚嘆的開源 Web 應(yīng)用程序,也能為你的家人和朋友提供訪問權(quán)限。
你自己就能得到解決方案。這真是太棒啦。
快來試試看 Kubernetes 吧
對(duì) Kubernetes 的初學(xué)者來說,Kubernetes 似乎很難快速上手,因?yàn)?Kubernetes 是一個(gè)新的工具,會(huì)讓你感到有點(diǎn)害怕,而且它還需要云服務(wù)。但是,以下有幾種方法可以讓你開始 Kubernetes 體驗(yàn)。
首先,安裝 Minikube? 或 Minishift。這兩個(gè)工具都允許你在自己的計(jì)算機(jī)上運(yùn)行 Kubernetes 的本地實(shí)例。雖然這種方式比不上“構(gòu)建一個(gè)集群并與你的朋友共享”那么令人滿意,但它是一種讓你熟悉 Kubernetes 環(huán)境、命令和工具包的很好且安全的方式。
當(dāng)你準(zhǔn)備進(jìn)一步研究 Kubernetes 后,請(qǐng)進(jìn)一步閱讀 Chris Collins 的《??使用樹莓派構(gòu)建 Kubernetes 集群???》 的文章。之后,再下載我們的免費(fèi)電子書 《??在你樹莓派家庭實(shí)驗(yàn)室上運(yùn)行 Kubernetes??》。在不知不覺中,你會(huì)發(fā)現(xiàn)自己也明白了“容器就是 Linux”的含義。