從您的本地機(jī)器開(kāi)始學(xué)習(xí)Kubernetes
譯文【51CTO.com快譯】朋友和熟人常問(wèn)我可以從哪里開(kāi)始學(xué)習(xí)Kubernetes、如何開(kāi)始學(xué)習(xí)。提這些問(wèn)題的包括仍在處理虛擬機(jī)和整體式應(yīng)用程序等舊系統(tǒng)的運(yùn)維和開(kāi)發(fā)人員。CI/CD和DevOps之類的術(shù)語(yǔ)對(duì)他們來(lái)說(shuō)不過(guò)是流行語(yǔ),他們?nèi)栽诿τ谡疹櫯f系統(tǒng),這是其日常工作所需要的。
現(xiàn)在他們注意到越來(lái)越多的工作負(fù)載從虛擬機(jī)遷移到容器,并按照微服務(wù)重新設(shè)計(jì)整體式應(yīng)用程序的架構(gòu),以便輕松處理創(chuàng)新并響應(yīng)快速的市場(chǎng)需求?,F(xiàn)在是他們學(xué)習(xí)導(dǎo)致大規(guī)模遷移到Kubernetes的工具、平臺(tái)和解決方案的時(shí)候了。
Kubernetes是什么?
學(xué)習(xí)Kubernetes時(shí)要做的第一件事是找到關(guān)于它的清晰解釋。您可以利用很多書籍和YouTube參考資料獲得最基本的解釋,我認(rèn)為《圖解Kubernetes兒童指南》這段YouTube視頻對(duì)Kubernetes作了最好的解釋,建議先看一下。
Kubernetes組件
Kubernetes不是一臺(tái)機(jī)器,而是一個(gè)平臺(tái)。部署Kubernetes時(shí),您將獲得一個(gè)集群。集群由運(yùn)行容器化應(yīng)用程序的一組主控機(jī)器和worker機(jī)器(名為節(jié)點(diǎn))組成。每個(gè)集群至少有一個(gè)worker節(jié)點(diǎn)。這些是Kubernetes組件。
下面是Kubernetes將所有組件捆綁在一起的樣子。
圖1. Kubernetes集群組件示意圖
如何開(kāi)始?
學(xué)習(xí)Kubernetes時(shí),您需要部署一個(gè)集群。但這對(duì)于無(wú)法獲得額外硬件,抽不出時(shí)間來(lái)安裝硬件以及所需網(wǎng)絡(luò)和計(jì)算資源的人來(lái)說(shuō)將是一個(gè)挑戰(zhàn)。這個(gè)要求常常使Kubernetes之旅還未開(kāi)始就已經(jīng)脫軌。那么最好的開(kāi)始方式是什么呢?
幸好有多個(gè)開(kāi)源項(xiàng)目讓您可以從筆記本電腦部署Kubernetes集群。不妨先看一看那些項(xiàng)目,然后我提出自己的意見(jiàn),表明哪個(gè)是學(xué)習(xí)Kubernetes并部署第一個(gè)云原生應(yīng)用程序的優(yōu)選方法。
本地Kubernetes項(xiàng)目挺身而出
這些是您可以用來(lái)探索Kubernetes的本地項(xiàng)目。請(qǐng)注意,這些項(xiàng)目尚未為企業(yè)準(zhǔn)備就緒,僅應(yīng)用于學(xué)習(xí)目的。
注意:在開(kāi)始探索Kubernetes之前,確保您的筆記本電腦上有足夠的資源。
- Linux:Red Hat Enterprise Linux、Fedora或CentOS
- 每臺(tái)機(jī)器16 GiB或更多的內(nèi)存。
- 機(jī)器上用作控制平面節(jié)點(diǎn)的2個(gè)CPU。
- 集群中所有機(jī)器之間實(shí)現(xiàn)完全網(wǎng)絡(luò)連接。
minikube
在這些選擇中,minikube是最容易安裝的。它將為您提供在VirtualBox或KVM之上運(yùn)行的單節(jié)點(diǎn)集群。
資源需求:
- CPU:2個(gè)
- 內(nèi)存:2 GB
- 磁盤空間:20 GB
一旦有了運(yùn)行中的集群(單節(jié)點(diǎn)),您可以通過(guò)使用kubectl命令行部署一個(gè)簡(jiǎn)單的應(yīng)用程序與本地Kubernetes集群進(jìn)行交互,讓自己開(kāi)始上手。我在使用Minikube時(shí)注意到的唯一問(wèn)題是這個(gè)限制:需要添加worker節(jié)點(diǎn)才能完成集群體驗(yàn)。
kind
kind要求您在Docker容器中運(yùn)行Kubernetes??梢栽诖颂?https://kind.sigs.k8s.io/docs/user/quick-start/)找到kind安裝說(shuō)明。
雖然kind易于安裝,但我在使用該項(xiàng)目時(shí)看到的問(wèn)題是訪問(wèn)集群的復(fù)雜網(wǎng)絡(luò)配置。對(duì)于剛開(kāi)始學(xué)習(xí)Kubernetes的人來(lái)說(shuō),這可能令人望而卻步。
資源需求:
- CPU:2個(gè)
- 內(nèi)存:8GB
- 存儲(chǔ)空間:20GB
kubeadm
使用kubeadm的集群?jiǎn)?dòng)可用于部署云原生應(yīng)用程序。首先,您要有一個(gè)主節(jié)點(diǎn)和一個(gè)worker節(jié)點(diǎn)。
在筆記本電腦上安裝kubeadm是獲得生產(chǎn)級(jí)Kubernetes集群部署的最接近的體驗(yàn)。因此,kuberadm可能也是學(xué)習(xí)Kubernetes的最困難的方法。
資源需求:
- CPU: 2個(gè)
- 內(nèi)存:8GB(您需要額外的內(nèi)存來(lái)部署應(yīng)用程序)。
- 存儲(chǔ)空間:20GB
Minishift
Minishift是基于OKD的項(xiàng)目,而OKD是OpenShift背后的上游項(xiàng)目。安裝Minishift后,它將為您提供在VirtualBox或KVM中運(yùn)行的單節(jié)點(diǎn)OpenShift集群。
資源需求:
- CPU:2個(gè)
- 內(nèi)存:4 GB
- 存儲(chǔ)空間:20 GB
與其他項(xiàng)目相比,Minishift易于安裝,具有更大的靈活性,因此您可以在Linux、Windows和macOS中安裝它。
由于Minishift基于OKD,因此您不僅將學(xué)習(xí)Kubernetes的基礎(chǔ)知識(shí),還將學(xué)習(xí)Openshift和Minishift中的一些組件。
Minishift的缺點(diǎn)在于它僅支持OKD 3.11,因此您將無(wú)法獲得新版本OKD 4的完整體驗(yàn)。Minishift被CodeReady Containers替代,以獲得OKD 4的完整體驗(yàn),如此處所述。
CodeReady Containers(CRC)
CRC基于OKD 4.1,在筆記本電腦上提供了單節(jié)點(diǎn)配置。它的運(yùn)行幾乎與Minishift和minikube如出一轍。安裝也很容易,文檔可以在這里找到(https://github.com/code-ready/crc#building-the-documentation)。
資源需求:
- CPU:4個(gè)
- 內(nèi)存:8 GB
- 存儲(chǔ)空間:30 GB
結(jié)論
有多種方法可以在本地部署Kubernetes,從而開(kāi)始掌握實(shí)屬當(dāng)前IT革命核心的重要技能。
如果您剛起步,建議使用minikube學(xué)習(xí)Kubernetes,因?yàn)槲野l(fā)現(xiàn)這對(duì)初學(xué)者來(lái)說(shuō)最容易。一旦您熟悉了Kubernetes概念,下一步就是進(jìn)而使用CRC。這會(huì)將您的Kubernetes技能提高到新的水平,因此您可以學(xué)習(xí)大多數(shù)高級(jí)適配器已經(jīng)在使用的企業(yè)級(jí)組件。
如前所述,學(xué)習(xí)Kubernetes就像重新學(xué)習(xí)Linux操作系統(tǒng)。如果遇到了障礙,別泄氣。掌握這項(xiàng)技術(shù)就像投資未來(lái),并在某種程度上幫助您證明自己。
原文標(biāo)題:Start learning Kubernetes from your local machine,作者:Michael Calizo
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】