成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

選型必看:Kubernetes 應用程序部署工具應該選哪些?

新聞 前端
本文介紹了 Kubernetes 應用程序生命周期管理的各個階段可能會使用的一些工具(主流非主流的都有),而且通過標注各項目背后的投資大佬,給大家提供一種選擇的決策依據。

將應用程序部署到 Kubernetes 非常簡單,只需要用 yaml 或 json 編寫一些資源定義并將它們應用到 kubectl 中就可以了,但要實現配置自動化就相對復雜了。

在應用程序部署中,一個比較流行的做法是將持續部署和 GitOps 結合使用:每次對源代碼進行更改后,資源都會自動部署。如果想要使用 GitOps 將應用程序部署到 Kubernetes,需要經歷以下過程:

  • 容器映像構建, 將源代碼和本地依賴關系構建到容器映像中。
  • 資源模板, 為環境定制部署資源的資源模板。
  • 包管理, 將多個資源捆綁到版本發布中,并管理包依賴關系。
  • 持續部署, 通常通過一系列操作和步驟,對環境進行更改。
  • 命令式部署, 以編程方式管理復雜的服務生命周期,并減少手動或簡單的腳本化步驟。
  • 自動縮放, 根據資源使用情況和消耗情況,自動縮放來管理應用程序的響應和資源分配。

在本文中,我介紹了 Kubernetes 應用程序生命周期管理的各個階段可能會使用的一些工具(主流非主流的都有)。由于很難客觀地判斷工具的流行性和成熟度, 因此我對這些工具進行了注釋,說明了哪些大型公司對這些項目進行了投資,供你參考判斷。不過請記住,大公司對一個項目通常可能會做多個競爭性投資,因此,僅僅因為項目擁有一位知名的投資者,并不能得出它可以長期生存和發展的結論。

希望此列表可以在你尋找應用程序部署問題解決方案時提供一些幫助。

1. 容器鏡像構建

  • Moby /buildkit (Docker) ——用于將源代碼轉換為構建工件的工具包。
  • kaniko(Google)—— 在容器或 Kubernetes 集群中從 Dockerfile 構建容器映像的工具。
  • img(Jess Frazelle) ——一個獨立的,沒有守護進程,非特權模式的 Dockerfile 和 OCI 兼容的容器映像構建器。
  • buildah (IBM/Red Hat)——用于構建開放式容器計劃 (OCI) 容器映像的工具。
  • Source-To-Image(IBM/Red Hat)——用于從源構建工件并注入容器映像的工具。
  • Tanzu Build Service/kpack /pack (VMware/Pivotal) ——使用 Cloud Native Buildpacks 構建應用程序的 CLI 和服務。
  • Carvel /kbld (VMware/Pivotal)——用于構建映像并將其推入開發和部署工作流的服務。
  • Google Cloud Buildpacks(Google)——為運行在谷歌云的容器平臺而設計的構建器和構建包。
  • Makisu (Uber) ——快速而靈活的 Docker 鏡像構建工具,可以在 Mesos 和 Kubernetes 等非特權的容器環境中工作。

2. 資源模板

  • Helm(Microsoft, Google) ——Kubernetes 包管理器。
  • Kustomize(Google, Apple)——用于定制原始的、無模板的 YAML 文件的 CLI,使原始的 YAML 保持原樣并保持可用。
  • Carvel /ytt (VMware/Pivotal)——基于 YAML 結構的 YAML 模板工具。
  • jsonnet/go-jsonnet(Google) ——JSON 模板語言。
  • gomplate(Dave Henderson) ——用于 golang 模板渲染的 CLI,支持本地和遠程數據源。
  • Mustache (Github) ——與框架無關的 JSON 模板引擎。

3. 包管理

  • Helm(Microsoft, Google) ——一個 Kubernetes 包管理器。
  • Cloud Native Application Bundles (CNAB)/Porter/Duffle(Microsoft/Deis, Docker)——這是一個用于管理云無關的分布式應用程序的包格式規范、打包器和安裝程序。

4. 持續部署

  • Spinnaker(Netflix, Google) ——多云持續交付平臺,用于快速高質量迭代發布軟件變更。
  • Terraform Kubernetes Provider (Hashicorp) ——一個 Terraform 插件,支持 Kubernetes 資源的完整生命周期管理。
  • Concourse (VMware/Pivotal)——一個基于容器的連續事務處理程序,用 Go 和 Elm 編寫。
  • JenkinsX(CloudBees)—— 用于 Kubernetes 的自動化 CI / CD,提供使用 Tekton、Knative、Lighthouse、Skaffold 和 Helm 的 pull 請求預覽環境
  • Argo CD(Intuit)—— 用于 Kubernetes 的高效 GitOps 持續交付工具。
  • Tekton/Tekton Pipelines(Google) ——一個 Kubernetes 控制器, 提供 CI / CD 樣式的管道資源。
  • Cloud Build(Google)——在谷歌云平臺基礎設施上執行構建的服務。
  • Skaffold(Google)——促進 Kubernetes 應用程序持續開發的 CLI。
  • Azure DevOps/Azure Pipelines(Microsoft) ——一種云服務,它可以自動構建和測試項目的代碼,并將其提供給其他用戶。
  • Brigade(Microsoft) —— Kubernetes 的基于事件的腳本。
  • Habitat/habitat-operator(Chef) ——Kubernetes 控制器,在 Kubernetes 上運行和管理 Habitat 服務。
  • gitkube(Hasura) ——使用 git push 在 Kubernetes 上構建和部署 Docker 鏡像的工具。

5. 命令式部署

  • Kubebuilder(CNCF, Google, Apple, IBM/Red Hat) ——用于使用 CRD 構建 Kubernetes API(以及控制器和操作符) 的 SDK。
  • Operator Framework/Operator SDK(IBM/Red Hat/CoreOS) ——用于構建 Kubernetes 應用程序操作符的 SDK。
  • KUDO(D2IQ) ——使用聲明式方法構建生產級 Kubernetes 操作符的框架。
  • Pulumi(Pulumi)——可以作為代碼 SDK 的基礎設施,用于在各種云上創建和部署使用容器、無服務器功能、托管服務和基礎架構的云軟件。
  • Carvel/kapp/kapp-controller(VMware/Pivotal)——CLI 和 Kubernetes 控制器,用于安裝應用程序 CRD 所描述的配置 (helm 圖表, ytt 模板,yaml 文件)。
  • Isopod(Cruise)——在沒有 YAML 的情況下,用于 Kubernetes 資源配置的表達性 DSL 和框架。

6. 自動縮放

  • Horizontal Pod Autoscaler(built-in)—— Kubernetes 控制器,它根據配置的指標自動伸縮復制控制器、部署、復制集或有狀態集中的 Pods 數量。
  • Vertical Pod Autoscaler(Google)——一組 Kubernetes 組件,自動調整運行在 Kubernetes 集群中的 pods 請求的 CPU 和內存數量。
  • Addon Resizer(Google) ——垂直 Pod 自動調用器的簡化版本,它根據 Kubernetes 集群中的節點數量修改部署的資源請求。
  • KEDA(Microsoft)——一個基于 kubernet 的事件驅動的自動縮放組件。
  • Watermark Pod Autoscaler Controller(DataDog) ——擴展了 Horizontal Pod Autoscaler (HPA) 的自定義控制器。
  • Pangolin(Damian Peckett)—— 針對 Kubernetes 的一個增強的 Horizontal Pod Autoscaler,它基于 Prometheus 指標來擴展部署,使用各種高度可配置的控制策略。
  • Predictive Horizontal Pod Autoscaler(IBM) —— 自定義 Pod Autoscaler,類似于 Horizontal Pod Autoscaler,但是添加了預測元素。
  • Horizontal Pod Autoscaler Operator(Banzai Cloud)——Kubernetes 控制器,它監視部署或狀態集,并基于 autoscale 注釋自動創建 Horizontal Pod Autoscaler 資源。

7. 寫在最后

正如 DevOps 倡導者宣揚的那樣:這與工具無關,而與觀念有關。沒有一個工具能給你帶來讓你興奮的全生命周期端到端管理體驗,因為每種工具都有他們自己的工具組合,通過與腳本和集成代碼配合完成工作。

你可以找到能夠很好地完成一件事情的工具,易于替換和擴展,也可以選擇為你提供最大性價比的工具,讓你更容易對項目進行管理,集成成本也更低,同時還擁有較好的端到端用戶體驗。以上的選擇都沒有什么錯。

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

 

責任編輯:張燕妮 來源: 架構頭條
相關推薦

2020-12-11 19:06:03

Kubernetes工具應用程序

2021-11-02 17:27:40

部署高可用Kubernetes

2015-03-11 09:50:10

2009-08-05 10:16:54

部署ASP.NET應用

2015-02-11 09:15:46

云部署嵌套虛擬化PaaS

2010-12-15 16:17:59

服務部署

2009-08-27 11:40:43

ibmdw云計算

2012-07-18 11:29:32

ibmdw

2024-03-05 08:00:00

人工智能Kuberneste

2018-12-28 14:10:57

開發工具 移動應用

2020-09-18 07:00:00

Kubernetes應用程序架構

2020-01-03 14:03:46

云計算開發云原生

2018-06-21 08:16:41

ETL工具數據倉庫企業

2013-01-21 13:39:06

IBMdW

2023-10-25 10:46:56

Radius開源

2009-06-14 18:06:06

ibmdwWebSphere

2013-02-22 09:28:45

MEAP軟件移動應用開發HTML5

2014-05-22 10:03:29

2016-03-12 21:46:56

Inspeckage應用程序動態分析

2009-12-23 10:29:01

WPF應用程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品三区 | 国产精品三级 | 91国内产香蕉| 国产一区精品 | 欧美精品三区 | 中文字幕成人 | 久久不卡 | av网站在线看 | 日韩视频免费 | 美女福利视频网站 | 韩日精品一区 | 男人天堂网站 | 手机在线观看 | 久久精品中文字幕 | 亚洲精品在线免费播放 | 黄色免费三级 | 国产高清视频在线观看 | 国产精品一区二区三区久久 | 欧美性视频在线播放 | 久久宗合色 | www.中文字幕 | 毛片网站免费观看 | 亚洲一区二区国产 | 久久一区二区三区四区 | 久久久国产一区 | 午夜av电影院 | 99精品国自产在线 | 精品日韩一区 | 91极品尤物在线播放国产 | 亚洲日产精品 | 免费看黄色视屏 | аⅴ资源新版在线天堂 | 日韩精品视频在线 | 日韩中文字幕久久 | 免费视频二区 | 最新中文在线视频 | 欧美一级久久精品 | 午夜影院| 美女爽到呻吟久久久久 | 日韩免费视频一区二区 | 中国一级特黄毛片大片 |