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