久久国产乱子伦精品免费观看_亚洲欧美日韩综合在线丁香_欧 美 成 人 网站在线观看_最新欧美电影免费在线_国产精品操干在线观看_最近中文字幕在线视频1_69天堂人成无码_国产影视一区二区三区_中文亚洲精油按摩色偷偷av_99自拍偷拍视频

您當(dāng)前的位置:首頁(yè) > 新聞中心 > 行業(yè)新聞
選型必看:Kubernetes 應(yīng)用程序部署工具應(yīng)該選哪些? 2021年07月28日
 將應(yīng)用程序部署到 Kubernetes 比較簡(jiǎn)單,但要進(jìn)行大型項(xiàng)目管理實(shí)現(xiàn)配置自動(dòng)化就相對(duì)復(fù)雜了,本文介紹了 Kubernetes 應(yīng)用程序生命周期管理的各個(gè)階段可能會(huì)使用的一些工具(主流非主流的都有),而且通過(guò)標(biāo)注各項(xiàng)目背后的投資大佬,給大家提供一種選擇的決策依據(jù)。

將應(yīng)用程序部署到 Kubernetes 非常簡(jiǎn)單,只需要用 yaml 或 json 編寫(xiě)一些資源定義并將它們應(yīng)用到 kubectl 中就可以了,但要實(shí)現(xiàn)配置自動(dòng)化就相對(duì)復(fù)雜了。

在應(yīng)用程序部署中,一個(gè)比較流行的做法是將持續(xù)部署和 GitOps 結(jié)合使用:每次對(duì)源代碼進(jìn)行更改后,資源都會(huì)自動(dòng)部署。如果想要使用 GitOps 將應(yīng)用程序部署到 Kubernetes,需要經(jīng)歷以下過(guò)程:

容器映像構(gòu)建, 將源代碼和本地依賴關(guān)系構(gòu)建到容器映像中。

資源模板, 為環(huán)境定制部署資源的資源模板。

包管理, 將多個(gè)資源捆綁到版本發(fā)布中,并管理包依賴關(guān)系。

持續(xù)部署, 通常通過(guò)一系列操作和步驟,對(duì)環(huán)境進(jìn)行更改。

命令式部署, 以編程方式管理復(fù)雜的服務(wù)生命周期,并減少手動(dòng)或簡(jiǎn)單的腳本化步驟。

自動(dòng)縮放, 根據(jù)資源使用情況和消耗情況,自動(dòng)縮放來(lái)管理應(yīng)用程序的響應(yīng)和資源分配。

在本文中,我介紹了 Kubernetes 應(yīng)用程序生命周期管理的各個(gè)階段可能會(huì)使用的一些工具(主流非主流的都有)。由于很難客觀地判斷工具的流行性和成熟度, 因此我對(duì)這些工具進(jìn)行了注釋,說(shuō)明了哪些大型公司對(duì)這些項(xiàng)目進(jìn)行了投資,供你參考判斷。不過(guò)請(qǐng)記住,大公司對(duì)一個(gè)項(xiàng)目通常可能會(huì)做多個(gè)競(jìng)爭(zhēng)性投資,因此,僅僅因?yàn)轫?xiàng)目擁有一位知名的投資者,并不能得出它可以長(zhǎng)期生存和發(fā)展的結(jié)論。

希望此列表可以在你尋找應(yīng)用程序部署問(wèn)題解決方案時(shí)提供一些幫助。

1 容器鏡像構(gòu)建

Moby /buildkit (Docker) ——用于將源代碼轉(zhuǎn)換為構(gòu)建工件的工具包。

kaniko(Google)—— 在容器或 Kubernetes 集群中從 Dockerfile 構(gòu)建容器映像的工具。

img(Jess Frazelle) ——一個(gè)獨(dú)立的,沒(méi)有守護(hù)進(jìn)程,非特權(quán)模式的 Dockerfile 和 OCI 兼容的容器映像構(gòu)建器。

buildah (IBM/Red Hat)——用于構(gòu)建開(kāi)放式容器計(jì)劃 (OCI) 容器映像的工具。

Source-To-Image(IBM/Red Hat)——用于從源構(gòu)建工件并注入容器映像的工具。

Tanzu Build Service/kpack /pack (VMware/Pivotal) ——使用 Cloud Native Buildpacks 構(gòu)建應(yīng)用程序的 CLI 和服務(wù)。

Carvel /kbld (VMware/Pivotal)——用于構(gòu)建映像并將其推入開(kāi)發(fā)和部署工作流的服務(wù)。

Google Cloud Buildpacks(Google)——為運(yùn)行在谷歌云的容器平臺(tái)而設(shè)計(jì)的構(gòu)建器和構(gòu)建包。

Makisu (Uber) ——快速而靈活的 Docker 鏡像構(gòu)建工具,可以在 Mesos 和 Kubernetes 等非特權(quán)的容器環(huán)境中工作。

2 資源模板

Helm(Microsoft, Google) ——Kubernetes 包管理器。

Kustomize(Google, Apple)——用于定制原始的、無(wú)模板的 YAML 文件的 CLI,使原始的 YAML 保持原樣并保持可用。

Carvel /ytt (VMware/Pivotal)——基于 YAML 結(jié)構(gòu)的 YAML 模板工具。

jsonnet/go-jsonnet(Google) ——JSON 模板語(yǔ)言。

gomplate(Dave Henderson) ——用于 golang 模板渲染的 CLI,支持本地和遠(yuǎn)程數(shù)據(jù)源。

Mustache (Github) ——與框架無(wú)關(guān)的 JSON 模板引擎。

3 包管理

Helm(Microsoft, Google) ——一個(gè) Kubernetes 包管理器。

Cloud Native Application Bundles (CNAB)/Porter/Duffle(Microsoft/Deis, Docker)——這是一個(gè)用于管理云無(wú)關(guān)的分布式應(yīng)用程序的包格式規(guī)范、打包器和安裝程序。

4 持續(xù)部署

Spinnaker(Netflix, Google) ——多云持續(xù)交付平臺(tái),用于快速高質(zhì)量迭代發(fā)布軟件變更。

Terraform Kubernetes Provider (Hashicorp) ——一個(gè) Terraform 插件,支持 Kubernetes 資源的完整生命周期管理。

Concourse (VMware/Pivotal)——一個(gè)基于容器的連續(xù)事務(wù)處理程序,用 Go 和 Elm 編寫(xiě)。

JenkinsX(CloudBees)—— 用于 Kubernetes 的自動(dòng)化 CI / CD,提供使用 Tekton、Knative、Lighthouse、Skaffold 和 Helm 的 pull 請(qǐng)求預(yù)覽環(huán)境

Argo CD(Intuit)—— 用于 Kubernetes 的高效 GitOps 持續(xù)交付工具。

Tekton/Tekton Pipelines(Google) ——一個(gè) Kubernetes 控制器, 提供 CI / CD 樣式的管道資源。

Cloud Build(Google)——在谷歌云平臺(tái)基礎(chǔ)設(shè)施上執(zhí)行構(gòu)建的服務(wù)。

Skaffold(Google)——促進(jìn) Kubernetes 應(yīng)用程序持續(xù)開(kāi)發(fā)的 CLI。

Azure DevOps/Azure Pipelines(Microsoft) ——一種云服務(wù),它可以自動(dòng)構(gòu)建和測(cè)試項(xiàng)目的代碼,并將其提供給其他用戶。

Brigade(Microsoft) —— Kubernetes 的基于事件的腳本。

Habitat/habitat-operator(Chef) ——Kubernetes 控制器,在 Kubernetes 上運(yùn)行和管理 Habitat 服務(wù)。

gitkube(Hasura) ——使用 git push 在 Kubernetes 上構(gòu)建和部署 Docker 鏡像的工具。

5 命令式部署

Kubebuilder(CNCF, Google, Apple, IBM/Red Hat) ——用于使用 CRD 構(gòu)建 Kubernetes API(以及控制器和操作符) 的 SDK。

Operator Framework/Operator SDK(IBM/Red Hat/CoreOS) ——用于構(gòu)建 Kubernetes 應(yīng)用程序操作符的 SDK。

KUDO(D2IQ) ——使用聲明式方法構(gòu)建生產(chǎn)級(jí) Kubernetes 操作符的框架。

Pulumi(Pulumi)——可以作為代碼 SDK 的基礎(chǔ)設(shè)施,用于在各種云上創(chuàng)建和部署使用容器、無(wú)服務(wù)器功能、托管服務(wù)和基礎(chǔ)架構(gòu)的云軟件。

Carvel/kapp/kapp-controller(VMware/Pivotal)——CLI 和 Kubernetes 控制器,用于安裝應(yīng)用程序 CRD 所描述的配置 (helm 圖表, ytt 模板,yaml 文件)。

Isopod(Cruise)——在沒(méi)有 YAML 的情況下,用于 Kubernetes 資源配置的表達(dá)性 DSL 和框架。

6 自動(dòng)縮放

Horizontal Pod Autoscaler(built-in)—— Kubernetes 控制器,它根據(jù)配置的指標(biāo)自動(dòng)伸縮復(fù)制控制器、部署、復(fù)制集或有狀態(tài)集中的 Pods 數(shù)量。

Vertical Pod Autoscaler(Google)——一組 Kubernetes 組件,自動(dòng)調(diào)整運(yùn)行在 Kubernetes 集群中的 pods 請(qǐng)求的 CPU 和內(nèi)存數(shù)量。

Addon Resizer(Google) ——垂直 Pod 自動(dòng)調(diào)用器的簡(jiǎn)化版本,它根據(jù) Kubernetes 集群中的節(jié)點(diǎn)數(shù)量修改部署的資源請(qǐng)求。

KEDA(Microsoft)——一個(gè)基于 kubernet 的事件驅(qū)動(dòng)的自動(dòng)縮放組件。

Watermark Pod Autoscaler Controller(DataDog) ——擴(kuò)展了 Horizontal Pod Autoscaler (HPA) 的自定義控制器。

Pangolin(Damian Peckett)—— 針對(duì) Kubernetes 的一個(gè)增強(qiáng)的 Horizontal Pod Autoscaler,它基于 Prometheus 指標(biāo)來(lái)擴(kuò)展部署,使用各種高度可配置的控制策略。

Predictive Horizontal Pod Autoscaler(IBM) —— 自定義 Pod Autoscaler,類(lèi)似于 Horizontal Pod Autoscaler,但是添加了預(yù)測(cè)元素。

Horizontal Pod Autoscaler Operator(Banzai Cloud)——Kubernetes 控制器,它監(jiān)視部署或狀態(tài)集,并基于 autoscale 注釋自動(dòng)創(chuàng)建 Horizontal Pod Autoscaler 資源。

7 寫(xiě)在最后

正如 DevOps 倡導(dǎo)者宣揚(yáng)的那樣:這與工具無(wú)關(guān),而與觀念有關(guān)。沒(méi)有一個(gè)工具能給你帶來(lái)讓你興奮的全生命周期端到端管理體驗(yàn),因?yàn)槊糠N工具都有他們自己的工具組合,通過(guò)與腳本和集成代碼配合完成工作。

你可以找到能夠很好地完成一件事情的工具,易于替換和擴(kuò)展,也可以選擇為你提供最大性價(jià)比的工具,讓你更容易對(duì)項(xiàng)目進(jìn)行管理,集成成本也更低,同時(shí)還擁有較好的端到端用戶體驗(yàn)。以上的選擇都沒(méi)有什么錯(cuò)。

權(quán)衡這些因素后,你還需要看看這些項(xiàng)目背后的大佬,它是哪家公司投資的、項(xiàng)目的流行度如何?那些擁有大型公司或者有著多樣化投資者的主流工具更具有持續(xù)成長(zhǎng)性。不然,你選擇后,項(xiàng)目不更新或者被拋棄了,那你只能花自己的時(shí)間和精力來(lái)維護(hù)這些工具了。

 


分享到:

最熱資訊

熱門(mén)標(biāo)簽