国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

2021年11款優(yōu)秀的開(kāi)源 Kubernetes 工具

發(fā)布時(shí)間:2021-11-03 13:46 來(lái)源:IT168 閱讀:0 作者:Matt Broberg 欄目: 云計算 歡迎投稿:712375056

Kubernetes 是一個(gè)非常強大的容器編排平臺,并且 Kubernetes 社區一直在共享工具,這有助于改善 Kubernetes 開(kāi)發(fā)人員的體驗。本文列出作者自己最常用的 11 款 Kubernetes 工具,并對它們進(jìn)行了分類(lèi)介紹。

到 2021 年,幾乎所有接觸過(guò)云基礎設施的人都熟悉 項目。簡(jiǎn)單地說(shuō),Kubernetes 是一個(gè)非常強大的容器編排平臺,并且 Kubernetes 社區一直在共享,這有助于改善 Kubernetes 開(kāi)發(fā)人員的體驗。本文列出作者自己最常用的 11 款 Kubernetes 工具,并對它們進(jìn)行了分類(lèi)介紹。

Kubernetes 是一個(gè)非常強大的容器編排平臺。但在我看來(lái),Kubernetes 最重要的是將最佳實(shí)踐整合到了一個(gè)系統中,這個(gè)系統可以從樹(shù)莓派(Raspberry Pi)擴展到財富 500 強中最大的基礎設施。它使得開(kāi)發(fā)和運維人員能夠通過(guò)標準化的 API 和有意義的抽象(如 Pod 或 ConfigMap)進(jìn)行協(xié)作。

通過(guò)提供一個(gè)標準,Kubernetes 可以將一個(gè)組織從數十年自己摸索的“容器策略”中拯救出來(lái),幸運的是,這個(gè)標準也是每個(gè)主要云供應商的標準。也就是說(shuō),像 Kubernetes 這樣龐大的野獸是很難馴服的,但為了充分發(fā)揮它的潛力,我們需要一套額外的工具。

Kubernetes 社區一直在共享工具,這有助于改善 Kubernetes 開(kāi)發(fā)人員的體驗。以下是我自己最常用的 11 款 Kubernetes 工具,我將它們進(jìn)行了分類(lèi):哪些是可以幫助我運行 Kubernetes 的工具,哪些是測試 Kubernetes 的工具,以及哪些是可以讓我在 IDE 中能夠獲得樂(lè )趣的(最后但并非不重要)。

類(lèi)別 1:運行 Kubernetes 環(huán)境

Minikube 仍然是最佳的

幾乎每個(gè) Kubernetes 教程都是從“下載 Minikube”開(kāi)始的,這在今天仍然行得通。如果你想在一個(gè)真正低風(fēng)險的環(huán)境中編排容器,那么打包及維護良好的 Minikube 項目可以讓 你在大約 23 秒內即可運行一個(gè)集群。

Helm 仍然是可重復部署的標準

雖然我們都編寫(xiě)過(guò)一兩個(gè)一次性腳本來(lái)將一些配置部署到 Kubernetes 中,但實(shí)際上管理可重復部署的方法是使用 Helm。就像 Ubuntu 上的 apt 或 RHEL 上的 rpm 一樣,Helm 是一個(gè)包管理器,它為 Kubernetes 開(kāi)發(fā)人員做了很多事情。作為一名開(kāi)發(fā)人員,想在投入不多的情況下用其他項目來(lái)測試我的應用程序。我可以簡(jiǎn)單地運行helm install jenkins/jenkins,而不是編寫(xiě)自己的 Jenkins 設置。想要獲取 Helm 或其他 Kubernetes 軟件包,請查看 Artifact Hub。

Rancher K3s 可隨時(shí)隨地運行

向 Kubernetes 服務(wù)中推送容器是一回事,但是如果你想在 Raspberry Pi 農場(chǎng)之外也弄一個(gè)呢?來(lái)自 Rancher 的 K3s 項目可以做到這一點(diǎn)。正如維護人員在 README 中所說(shuō)的那樣,它對于 Kubernetes“集群學(xué)”(clusterology)的任何邊界或物聯(lián)網(wǎng)嘗試都是理想選擇。

K3s 作為本地和輕量級集群選擇的一個(gè)突出特點(diǎn)是它支持的設備非常廣泛。使用 K3s,你可以在任何地方運行 Kubernetes。事實(shí)上,它是以單個(gè)二進(jìn)制文件下載的,這意味著(zhù)它包含了所有生產(chǎn) Kubernetes 配置的功能(sqlite3 是默認的,但是你可以通過(guò)它的可插拔存儲后端將其擴展到 Etcd3),并且 Rancher 團隊及其 1749 名(到目前為止)貢獻者仍在非常積極地維護它。

Loft 可擴大團隊規模

任何人都可以通過(guò)調用curl來(lái)啟動(dòng)上面提到的 Minikube 集群。但是,如果你想要和別人合作呢?在云原生開(kāi)發(fā)工具和本地開(kāi)發(fā)集群的交接處有很多選擇。

傳統的選擇是在公有云上運行一些可公開(kāi)訪(fǎng)問(wèn)的資源:AKS、EKS、DigitalOcean Managed Kubernetes 或其他可用資源。但是任何一個(gè)在云服務(wù)上運行過(guò)hello world教程但忘刪除它的人都知道,這會(huì )讓你很快就損失很多。

Loft 提供了一組包含 UI 和 CLI 在內的服務(wù),可以進(jìn)一步抽象 Kubernetes 環(huán)境,這些環(huán)境最終將在生產(chǎn)環(huán)境中運行。這樣做之后,你可以建立一個(gè)自助服務(wù)體驗,而無(wú)需考慮隔離和預算問(wèn)題。

Loft 對隔離的關(guān)注,特別是對 vClusters 及其相應 Spaces 的關(guān)注,為每個(gè)開(kāi)發(fā)人員提供了一個(gè)真實(shí)的環(huán)境,而不會(huì )影響預算。這對開(kāi)發(fā)人員和部門(mén)領(lǐng)導來(lái)說(shuō)都是非常有價(jià)值的。

Loft 的價(jià)值在于啟動(dòng)和關(guān)閉安全 Kubernetes 環(huán)境的速度。它在一個(gè)用例中提到只需單擊一次 UI,即可創(chuàng )建本地環(huán)境的現場(chǎng)演示。更自私地考慮一下,在不破壞開(kāi)發(fā)集群命名空間的情況下,可以在自己的獨立測試用例中演示最新的生產(chǎn)功能, 這說(shuō)聽(tīng)起來(lái)確實(shí)不錯。

此外,Loft 實(shí)驗室最近聘請了了不起的 Rich Burroughs,這對于他們正在建立的這類(lèi)社區來(lái)說(shuō)是個(gè)非常好兆頭。

當與團隊合作時(shí),使用 Loft 是非常有意義的。

類(lèi)別 2:簡(jiǎn)化反饋回路

Skaffold 可提供自動(dòng)反饋回路

假設你是一名開(kāi)發(fā)人員,你想寫(xiě)一個(gè)可以在 Kubernetes 上運行的應用程序。從運行 Node.js 或 Python 應用程序到在 Kubernetes 上運行容器,你需要了解大量的 Kubernetes 概念,數量大到像一堵 YAML 墻。幸運的是,谷歌的好朋友們編寫(xiě)了 Skaffold,為我們提供了一些急需的腳手架。

不要誤會(huì )我的意思:你仍然需要編寫(xiě)自己的代碼、Dockerfile、清單文件以及與管道相關(guān)的所有服務(wù)。Skaffold 提供的是一種干凈的方法,可以在每次變更代碼后重新運行部署管道。它的主頁(yè)上引用了來(lái)自世界各地開(kāi)發(fā)人員的語(yǔ)錄,深受用戶(hù)喜愛(ài)。

你可能會(huì )有這種感覺(jué):運行 Skaffold 感覺(jué)就像第一次運行 Vagrant,而不是手動(dòng)管理虛擬機。曾經(jīng)需要很多步驟才能完成且不可靠的任務(wù),在某種程度上變得簡(jiǎn)單且可重復了,從而簡(jiǎn)化了我們的工作。Skaffold 將在 Kubernetes 的測試和部署反饋回路中這樣做。

Podman 可停止管理 Docker 守護進(jìn)程

雖然 Dockerfiles 可能永遠是我們表示容器的方式,但 Docker 本身是完全可選的。甚至 Kubernetes 本身也在將其運行時(shí)從 Dockershim 中移出來(lái)。我非常推薦 Podman 作為本地運行 Docker 的替代品,唯一的原因是你不需要再維護守護進(jìn)程服務(wù)了。不干擾守護進(jìn)程意味著(zhù)更少的無(wú)效時(shí)間浪費和更多的編碼時(shí)間。

這種區別對你來(lái)說(shuō)可能很陌生,所以解釋一下:Docker 既是一個(gè)與本地容器交互的客戶(hù)端,也是一個(gè)管理容器運行的用戶(hù)態(tài)守護進(jìn)程(aka server)。Nick Janetakis在這里 完美地解釋了這一點(diǎn)。

像我一樣,當一切都能正常工作時(shí),你可能會(huì )忘記 Docker 客戶(hù)端和服務(wù)端之間的區別。也就是說(shuō),我經(jīng)常會(huì )看到這樣的信息:

  1. $ docker ps$ Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 

現在我只能選擇了。我可以對 Docker 守護進(jìn)程和工具鏈中的服務(wù)進(jìn)行故障排除,或者我可以使用一些不會(huì )遇到相同問(wèn)題的服務(wù)。我更喜歡后者。

Podman 提供了將容器作為子進(jìn)程運行的選項,從而無(wú)需單獨的守護進(jìn)程。這意味著(zhù)我永遠不會(huì )再收到那條錯誤消息了,我的容器會(huì )一直在做它該做的事情。

你可能會(huì )因為自己的肌肉記憶太根深蒂固而不愿改變。在這種情況下,我強烈建議你刪除dockerCLI 并將alias docker = podman添加到你的 shell 配置文件中。

Tilt 真正了解你的應用程序

雖然我介紹了幾種不同的管理管道的方法,但我仍然認為 Tilt 是觀(guān)察基于 Kubernetes 應用程序的持續反饋回路最徹底、最直觀(guān)的方法。Tilt UI 具有非常簡(jiǎn)潔的錯誤捕捉功能,可以在 YAML 小錯誤變成重大部署錯誤之前就能指認出它們來(lái)。它還具有可定制的按鈕,以提供特定于應用程序的獨特功能,如在不同迭代之間刷新架構中的消息隊列。

如果你想觀(guān)察細節但又不想被它們淹沒(méi),那就試試 Tilt 吧。

DevSpace 可使開(kāi)發(fā)流程更高效

你是否有過(guò)想讓kubectl做某件事情,但卻忘記了做這件事情所需要的大量命令呢?很幸運的是,DevSpace 是一個(gè)開(kāi)源的命令行實(shí)用程序,它可以將 Kubernetes 開(kāi)發(fā)人員體驗包在一個(gè)溫暖的擁抱中。它能管理大量繁瑣的任務(wù),所以你可以像對待運行在本地系統上的 Pod 一樣對待它。

此外,如果你有非常特殊的設置項,可以簡(jiǎn)單地將它們添加到 devspace.yaml 聲明配置文件中即可。

雖然它不會(huì )一對一地取代kubectl提供的“手術(shù)刀”,但運行 DevSpace 會(huì )為你提供大量正常的默認行為,使與真正的 Kubernetes 環(huán)境交互更像是$HOME。

Lens IDE 可使調試更快速

像 Minikube 這樣的 Kubernetes 項目開(kāi)箱即用,帶有一個(gè)稱(chēng)為 Dashboard 的絲滑而直接的 GUI。這是一個(gè)非常出色的以閱讀為中心的環(huán)境視圖,但是如果你想通過(guò) UI 執行某些操作,該怎么辦呢?

開(kāi)源社區中最強大的選項是 Lens。我真的不應該稱(chēng)它為 GUI,因為它的特性豐富到足以被視為 IDE。只需單擊按鈕,你就可以在 Lens 中執行 Kubernetes 能夠執行的任何操作。我最喜歡 Lens 的是它那不可思議的思維情境特定選項,它幫助我區分了 Kubernetes 領(lǐng)域許多其他資源的命名空間服務(wù)。

類(lèi)別 3:不可或缺的 IDE 開(kāi)發(fā)工具

VSCode 我們都需要的 Kubernetes 擴展

如果沒(méi)有一個(gè)能夠區分 Kubernetes 資源和 Helm 圖表的 IDE,就不能說(shuō)是有 Kubernetes 開(kāi)發(fā)經(jīng)驗。這就是 Visual Studio Code Kubernetes Tools 的亮點(diǎn)所在。任何生活在 Kubernetes 世界的人都必須從安裝它開(kāi)始。

該 VSCode 插件使 YAML 更易于管理

Kubernetes 開(kāi)發(fā)人員被描述為 YAML 牧民,我認為這非常合適。雖然我也喜歡結構化的特定領(lǐng)域語(yǔ)言,如下一代 Kubernaut,但我不會(huì )放棄任何來(lái)自管理 YAML 本身的幫忙。幸運的是,紅帽(Red Hat)的 YAML Language Support 擴展可以幫到我。

它提供了大量的自動(dòng)完成選項,以及許多額外的細微選項,這些選項幫助我解決了問(wèn)題。話(huà)雖如此,右鍵單擊并選擇“格式化文檔”的功能本身就很有價(jià)值。

Footsteps 通過(guò)代碼查找路徑

嚴格來(lái)說(shuō),它雖然不是 Kubernetes 擴展,但是我發(fā)現在 YAML 的農場(chǎng)中導航可能會(huì )讓我忘記出發(fā)的地方。它在我 2000 行的配置文件的什么地方呢?那時(shí) Footsteps 聲照亮了我短期失憶的立足點(diǎn)。這個(gè)出色的擴展程序,也適用于 VSCode 或其他 IDE,它通過(guò)高亮來(lái)突出顯示最近編輯的文檔。隨著(zhù)你的繼續編碼,Footsteps 會(huì )逐漸淡化這些顏色,讓你了解你的編碼模式。安裝它,可以節省你迷失方向的時(shí)間。

總結

有很多不可思議的工具可以幫助 Kubernetes 開(kāi)發(fā)和運維人員來(lái)駕馭這種新的容器編排范式。我喜歡從三個(gè)方面來(lái)考慮它們:它們是能幫助我運行 Kubernetes,是能測試 Kubernetes,還是能以可感知的方式編寫(xiě) Kubernetes 代碼呢?所有這三個(gè)類(lèi)別都可以引導你在開(kāi)源生態(tài)系統中獲取維護良好的軟件,這可以幫助你像我們及其他人一樣成為更好的 YAML 牧民。

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

在办公室被C到呻吟的动态图| 波多野结衣永久免费视频| 97在线视频免费观看97| 一日本道A高清免费播放| 亚洲AV无码专区青青草原| 免费毛片全部不收费的|