2021年11個優(yōu)秀的開源Kubernetes工具
幾乎每個人都在2021年觸摸云基礎(chǔ)設(shè)施熟悉Kubernetes項目。簡而言之,Kubernetes是一個非常強(qiáng)大的容器編排平臺。但在我看來,Kubernetes不僅僅是任何東西,都是一系列最佳實踐烘焙到一個系統(tǒng)中,可以從覆盆子PI達(dá)到最大的財富500強(qiáng)基礎(chǔ)設(shè)施。它賦予開發(fā)人員和運營商通過標(biāo)準(zhǔn)化的API和有意義的抽象(如POD或CONFIGMAP)協(xié)作。
Kubernetes可以通過借助開源標(biāo)準(zhǔn)來滾動自己的“集裝箱策略”來節(jié)省幾十年的組織,慶幸地是每個主要云供應(yīng)商的標(biāo)準(zhǔn)。也就是說,像Kubernetes一樣大的野獸的東西可能很難馴服,并盡可能地利用它,你需要一套額外的工具。
Kubernetes周圍的令人難以置信的社區(qū)不斷共享工具,幫助提高Kubernetes開發(fā)人員的經(jīng)驗。這是我在我的阿森納保持的11個基本工具的列表。我通過重要類別打破了它們:那些幫助我運行Kubernetes,測試Kubernetes,最后但并非最不重要 - 在我的IDE中玩得開心。
第1類:運行Kubernetes環(huán)境
Minikube 仍然很好
幾乎每個Kubernetes教程都以“下載minikube”,今天仍然有意義。如果您想在真正低風(fēng)險的環(huán)境中與Docker放在一起,那么良好的包裝和維護(hù)的Minikube項目將在大約23秒內(nèi)運行群集。
Helm仍然是可重復(fù)部署的標(biāo)準(zhǔn)
雖然我們已經(jīng)寫了一個單件腳本或兩個來部署到Kubernetes的某些配置,但是管理可重復(fù)部署的事實標(biāo)準(zhǔn)是用Helm。像Rhel的Ubuntu或RPM一樣,Helm是一個包管理器,為Kubernetes開發(fā)人員做了很多。作為開發(fā)人員,我想在沒有多少工作的情況下用其他項目測試我的應(yīng)用程序。而不是寫自己的jenkins設(shè)置,我可以簡單地運行helm安裝jenkins / jenkins并在我的路上。要查找它和其他Kubernetes軟件包,請查看Artifact Hub.。
在任何地方運行Rancher K3s
將容器推向近乎完美的Kubernetes服務(wù)是一回事,但如果你想在Raspberry Pi farm的野外亂七八糟,那么怎么辦?來自Rancher的K3S項目可以做訣竅。它是Kubernetes“群集”的任何邊緣或IOT嘗試的理想選擇,因為維護(hù)者將其放入自述文件中。
使K3S成為本地和輕量級集群的選項是其廣泛的支持設(shè)備。您可以真正使用K3S的任何地方運行Kubernetes。它作為單一二進(jìn)制文件下載的事實意味著它包括生產(chǎn)Kubernetes配置的所有功能(SQLite3是默認(rèn)的,但您可以通過可插拔存儲后端縮放到etcd3),并且它非常積極地由Rancher團(tuán)隊維護(hù)及其1,749(迄今為止)貢獻(xiàn)者。
Loft 縮放團(tuán)隊
任何人都可以通過上面curl命令來創(chuàng)建minikube集群。但如果你想和他人合作怎么辦?云天然開發(fā)工具和地方發(fā)展集群交叉口有很多選擇。
傳統(tǒng)的選擇是在公共云上的一些可公開訪問的資源:AKS,EKS,DigitaloCean管理的Kubernetes,或其他許多其他人。但是,任何在云服務(wù)中運行Hello World教程并忘記刪除它的人都知道它會花費大量,并很快。
Loft提供一系列服務(wù),包括UI和CLI,進(jìn)一步抽象他們最終在生產(chǎn)中運行的Kubernetes環(huán)境。通過這樣做,您可以設(shè)置自助服務(wù)體驗,而不會對隔離和預(yù)算的同樣關(guān)注。
Loft注意到隔離,特別是與V clusters及其相應(yīng)的空間,為每個開發(fā)商提供了一個現(xiàn)實世界的環(huán)境,沒有真實世界的集中預(yù)算。這可能是開發(fā)人員和部門的價值。
Loft的價值降低了縮放和安全的Kubernetes環(huán)境的速度。其中一個使用案例提到在單個UI中創(chuàng)建現(xiàn)場產(chǎn)品的現(xiàn)場演示。思考更自私,想象一下在自己的孤立的測試用例中進(jìn)行最新的生產(chǎn)功能,而不會發(fā)現(xiàn)開發(fā)群集的命名空間。這對我來說很好。
此外,Loft Labs最近聘請了 Rich Burroughs ,這是他們放在一起的社區(qū)類型的好兆頭。
在與團(tuán)隊合作時,Loft會造成一定的意義。
第2類:簡化反饋循環(huán)
Skaffold 無人駕駛反饋環(huán)
想象一下,你是一個開發(fā)人員(因為你是),你想寫一個將在Kubernetes上運行的應(yīng)用程序(因為你這樣做)。您需要知道的kubernetes概念的數(shù)量,從運行node.js或python應(yīng)用程序到運行Kubernetes上的運行容器可能會感覺像yaml的墻壁。值得慶幸的是,谷歌的好人寫了Skadadold,提供了一些需要的腳手架。
不要讓我錯了:你仍然需要你的代碼,dockerfile,清單文件和與管道關(guān)聯(lián)的所有服務(wù)。在對代碼的每次更改后重新運行您的部署管道,那些Skaffold優(yōu)惠是一種干凈的方式。它是由其用戶的知名和喜愛,在世界各地的主頁上的報價。
您可能與這種感覺相關(guān):運行Skaffold感覺就像我第一次運行流浪者而不是手頭管理虛擬機(jī)。曾經(jīng)采取了一噸步驟的任務(wù),并且不可靠地變得直截了當(dāng),以一種簡化我所做的一切方式的方式。Skaffold將為Kubernetes進(jìn)行測試和部署反饋循環(huán)來執(zhí)行此操作。
Podman停止管理Docker守護(hù)進(jìn)程
雖然Dockerfiles可能永遠(yuǎn)是我們表達(dá)容器的方式,但Docker本身是完全可選的。即使是Kubernetes本身也正在將其運行時間從Dockershim轉(zhuǎn)移。我不能推薦Podman作為在本地運行Docker的替代品,因為您不需要維護(hù)守護(hù)程序服務(wù)。沒有弄亂守護(hù)進(jìn)程意味著減少時間擺弄和更多時間編碼。
這種區(qū)別對您來說可能是新的,因此解釋:Docker是與本地容器和守護(hù)進(jìn)程(AKA服務(wù)器)進(jìn)行交互的客戶端,管理包含容器運行的用戶空間。Nick JaneTakis在這里完美地解釋。
像我一樣,當(dāng)一切正常工作時,您可能會忘記Docker客戶端和服務(wù)器之間存在區(qū)別。那說,我經(jīng)??吹竭@條消息:
- $ docker ps
- $ Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
現(xiàn)在我留下了一個選擇。我可以解決Docker守護(hù)程序和我的工具箱中的服務(wù)弄亂了什么,或者我可以使用不遇到同一問題的東西。我更喜歡后者。
Podman為您提供將容器作為子進(jìn)程運行的選項,刪除單獨的守護(hù)程序。這意味著我從未得到那條錯誤的消息,我的容器繼續(xù)做他們所做的事情。
您可能會從變化中撤回,因為您的肌肉記憶太嵌入了。在這種情況下,我強(qiáng)烈建議刪除Docker CLI并將別名Docker = Podman添加到Shell配置文件中。
Tilt 真的了解你的應(yīng)用程序
雖然我涵蓋了一些不同的方法來管理您的管道,但我仍然發(fā)現(xiàn)傾斜是最徹底和可視的方式,以了解基于Kubernetes的應(yīng)用程序的連續(xù)反饋循環(huán)。傾斜UI具有令人難以置信的簡潔錯誤捕獲,我在成為顯著的部署錯誤之前找到了次要yaml錯誤。它還具有可定制的按鈕,可為您提供唯一的應(yīng)用程序特定功能,例如在迭代之間刷新架構(gòu)中的消息隊列。
如果您知道您希望查看細(xì)節(jié),請在不被淹沒的情況下看到細(xì)節(jié),嘗試一下 Tilt。
具有DevSpace的高效開發(fā)工作流程
你喜歡kubectl可以做什么,但忘記了讓它做你想要的東西所需的眾多命令嗎?然后你就是運氣,因為devspace是一個開源命令行實用程序,它用kubernetes開發(fā)人員體驗到覺得溫暖的擁抱。它將管理大量繁瑣的任務(wù),以便您可以在當(dāng)?shù)叵到y(tǒng)上運行它的吊艙。
此外,如果您有特定的首選項,則可以簡單地添加到devspace.yaml聲明性配置文件中。
雖然它不會是kubectl提供的手術(shù)刀的一對一替代,但運行的devspace將為您提供與真正的kubernetes環(huán)境交互的大量理智的默認(rèn)行為,感覺更像$ home。
使用Lens IDE調(diào)試更快
Kubernetes像Minikube這樣的項目從盒子里出來,帶著時尚和簡單的GUI稱為儀表板。這是一個很好的環(huán)境的讀取視圖,但如果您想從UI做任何事情,這是什么?
開源社區(qū)中最強(qiáng)大的選擇是Lens。我真的不應(yīng)該稱之為GUI,因為它足以被視為IDE。您可以通過點擊按鈕,完成Kubernetes能夠在鏡頭內(nèi)進(jìn)行。我最喜歡鏡頭的是它的令人難以置信的思想上下文專用選項,幫助我了解從Kubernetes Land中需要知道的許多其他資源的命名空間的服務(wù)的區(qū)別。
第3類:IDE DEV工具我不能沒有
Kubernetes擴(kuò)展我們都需要Vscode
沒有Kubernetes開發(fā)經(jīng)驗應(yīng)該沒有IDE,即知道Kubernetes資源和掌舵圖之間的區(qū)別。這就是Visual Studio代碼Kubernetes工具閃耀的地方。生活在Kubernetes世界的人必須首先安裝這個。
使用此vscode插件使yaml更易于管理
Kubernetes開發(fā)人員已被描述為Yaml Farmers,我認(rèn)為鞋子很適合。雖然我喜歡一個特定于域的特定語言,就像下一個kubernaut一樣,我將采取任何幫助,我可以通過管理yaml本身來獲得。謝天謝地,yaml語言支持?jǐn)U展名,Red Hat支持,幫助我?guī)椭约骸?/p>
它可以在許多額外的細(xì)節(jié)選項上提供大量的自動完成選項,幫助我。所有所說,右鍵單擊并選擇“格式化文件”的能力單獨為黃金中的重量。
通過Footsteps找到您的代碼
雖然不是嚴(yán)格的Kubernetes擴(kuò)展,但我發(fā)現(xiàn)導(dǎo)航Y(jié)aml農(nóng)場可以讓我失去我離開的地方的追蹤。我在哪里在我的2,000行配置文件中?那是Footsteps 在我的短期記憶中失去了腳的地方。這款輝煌的擴(kuò)展,也適用于vscode或其等同物,將向您展示最近通過突出顯示的文本編輯文檔的位置。當(dāng)您繼續(xù)編輯代碼時,F(xiàn)ootsteps 會慢慢消失那些顏色,從而讓您感受到您的編碼模式。安裝這個并拯救自己的感覺相當(dāng)困難。
總結(jié)
在那里有一個令人難以置信的工具,幫助Kubernetes開發(fā)人員和運營商導(dǎo)航這個新的容器編排的新范式。我喜歡在三個桶中考慮它們:他們幫助我運行Kubernetes,測試Kubernetes或kubernetes感知方式嗎?這些類別中的所有三個類別都可以在開源生態(tài)系統(tǒng)中引導(dǎo)您在維護(hù)良好的軟件中,這將有助于您像我們其他人一樣成為一個更好的Yaml牧民。
原文鏈接:
https://loft-sh.medium.com/11-of-the-best-open-source-kubernetes-tools-2021-edition-b4aa49487845