自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

開發(fā)者如何利用有效工具開啟Kubernetes之旅?

開發(fā) 開發(fā)工具
2021年,作為新手開發(fā)者,該如何把握趨勢,邁向Kubernetes之旅呢?本文將重點介紹關(guān)于Kubernetes的主流應用工具,即Helm、Kustomize和Skaffold。

過去幾年,為了讓Kubernetes做到開箱即用,各種各樣的開發(fā)工具如洪水般涌向市場。這也不難理解,沒有誰愿意錯過新的技術(shù)趨勢。但一味追新,有時候也會付出慘重代價。隨著Kubernetes生態(tài)的不斷完善,有的工具可以繼續(xù)發(fā)展,而有一些工具則被時代拋棄,或者被并入新的產(chǎn)品研發(fā)規(guī)劃中。那么,2021年,作為新手開發(fā)者,該如何把握趨勢,邁向Kubernetes之旅呢?本文將重點介紹關(guān)于Kubernetes的主流應用工具,即Helm、Kustomize和Skaffold。

[[393188]]

Helm

Helm是Kubernetes的包管理器,是打包、共享和部署k8s應用的事實標準。Helm允許你把多個YAML配置片段以一致的、結(jié)構(gòu)化的方式組合成一個邏輯包,即 "chart"。這樣,開發(fā)者在部署應用時可以使用自定義參數(shù),來確保應用程序可配置。另外,你還可以將你的應用程序以版本化和可跟蹤的方式發(fā)布到私有或公有存儲庫中。換言之,Helm為我們提供了強大的封裝機制,可以確保你的應用程序按預期部署。

另外,通過Helm,你可以去訪問廣泛公開可用的圖表庫,并為你的組織提供任何的chart;你也可以根據(jù)軟件包作者提供的設置來定制應用程序。最重要的是,我們不必擔心Kubernetes規(guī)范語言的復雜性,Helm能支持Atomic操作,能最大限度地降低應用程序和集群風險。也就是說,Helm為我們提供了一個易于理解和隨時可使用的應用程序包。

問題是,Helm有哪些新的應用功能?

在2019年底,我們看到Helm v3正式發(fā)布,其中刪除了集群側(cè)組件(Tiller)和其他一系列功能。在2020年底,Helm v2被廢止,大多數(shù)chart已經(jīng)遷移到v3格式。如果你還在使用Helm v2,一定要合理分配時間,在近期規(guī)劃升級。

在過去的幾個版本中,Helm團隊一直忙于解決Helm用戶經(jīng)常抱怨的問題,即YAML模板使用問題。Helm新增的另一個完整的功能是后期渲染功能,可以允許我們使用Kustomize等工具時自定義chart。

最后,但并非最不重要的是,2020年,我們還見證了向更分散方向發(fā)展的chart管理方式的轉(zhuǎn)變,并推出了公共Helm Charts的中央存儲庫。

Helm有很多優(yōu)勢,但有有一個最大的弊端,那就是應用程序的定制化能力僅限于預先存在的配置選項。不僅如此,還得用模板化的方式實現(xiàn)這些自定義選項,非常繁瑣,而Kustomize可以彌補這一劣勢。

Kustomize

kustomize 是一個更方便我們基于模版進行配置和自定義的工具,允許開發(fā)者將Kubernetes應用構(gòu)建分成一系列的層和補丁,并且具有無限廣闊的定制化能力。

Kustomize使用基于YAML的Kubernetes感知的補丁格式來添加/刪除/更新應用清單的任何部分。Kustomize在1.14版本上已成為了kubectl的一個組成部分,你所要做的就是執(zhí)行kubectl -k來調(diào)用它。

簡單理解,Kustomize是一個更強大的應用工具,它能最大化賦予我們修改Kubernetes應用程序的權(quán)限。但同樣,Kustomize也有不足之處,那就是無形中加大了開發(fā)者的學習曲線。另外,無限制的定制意味著錯誤配置應用程序的可能性增加。

關(guān)于Kustomize,有一個使用Helm的新功能,那就是通過post-render功能來修補現(xiàn)有的Helm chart缺陷,并且不需要分拆,能讓版本升級變得更加無縫。

目前,Kubernetes生態(tài)系統(tǒng)中的許多工具都已經(jīng)嵌入了Kustomize,如ArgoCD、Flux和Kubestack編排和持續(xù)部署工具。如果你搜索類似Kustomize的補丁功能,會看到很多新功能已經(jīng)存在于你的CD工具中。

尤其作為新手開發(fā)者,如果不熟悉Kubernetes構(gòu)建過程,就可以考慮使用Kustomize作為一個獨立的CLI工具。

Skaffold

創(chuàng)建Kubernetes原生應用程序,通常要花很長的時間跨注冊中心構(gòu)建和管理容器映像、手動更新Kubernetes清單文件,以及每次進行哪怕極小的代碼更改都要重新部署其應用程序。如何通過創(chuàng)建一個專有工具來自動執(zhí)行這些任務,而不是重復管理編輯-調(diào)試-部署這樣一個步驟。于是,Skaffold由此誕生了。

Skaffold遵循DevOps最佳實踐,即在SDLC中保持開發(fā)環(huán)境和工作流的一致性。Skaffold為開發(fā)者帶來了工作流和持續(xù)集成(CI)和持續(xù)部署(CD)能力,可以幫助企業(yè)快速構(gòu)建和部署Kubernetes應用。

在構(gòu)建部分,Skaffold可以利用Dockerfiles、Buildpacks、Bazel,甚至是自定義腳本,實現(xiàn)快速構(gòu)建目標。而在部署時,基于Skaffold模板引擎,可以調(diào)用kubectl、Helm或Kustomize,實現(xiàn)應用的快速落地。

在2020年,Skaffold團隊專注于各種工作流程的適配,努力其他工具更具互操作性。包括在CI/CD和GitOps方面的能力賦予,以及對Python和Java提供更好的支持。

此外,Skaffold現(xiàn)在有一個新的測試版--skaffold debug。基于新版本應用,Skaffold會嘗試在自動配置應用程序時可進行遠程調(diào)試。

總結(jié)

總之,當你看到關(guān)于Kubernetes的各種應用工具無從下手時,請不必糾結(jié)。不妨先看看Kubernetes的主流應用工具,沒準已經(jīng)能滿足您的業(yè)務需求。比如通過使用Helm,我們可以打包、共享和安裝定義好的Kubernetes應用。而使用Kustomize使用補丁,可以修改現(xiàn)有的Kubernetes應用。同時,Skaffold也是一個很受歡迎的工具,可以更好地管理Kubernetes環(huán)境。 

 

責任編輯:趙寧寧 來源: IT168網(wǎng)站
相關(guān)推薦

2015-09-15 16:10:45

PythonPython 開發(fā)Docker

2015-07-23 10:07:22

PHPPHP開發(fā)Docker

2014-04-08 09:58:26

PythonPython教程

2011-12-29 17:09:08

開發(fā)者沙龍

2013-11-06 09:18:44

異構(gòu)計算移動計算高通

2016-03-25 09:29:24

Apple開發(fā)工具開發(fā)者

2024-02-01 09:37:42

Kubernetes服務網(wǎng)格? 命令

2023-08-28 13:34:00

KuberneteIDP安全

2015-11-18 19:03:27

開發(fā)者Linux容器

2015-11-19 14:48:01

LinuxLinux容器虛擬機

2015-10-13 09:24:24

Chrome開發(fā)者工具

2019-11-14 14:44:32

開發(fā)者工具

2013-11-13 07:19:19

2021-08-01 22:59:16

Python工具開發(fā)

2023-11-30 15:30:19

Python編程語言

2015-08-05 10:43:40

開發(fā)者開發(fā)工具

2015-08-05 14:25:26

開發(fā)者開發(fā)工具

2014-07-04 09:43:22

點贊
收藏

51CTO技術(shù)棧公眾號