Kubernetes 應用程式部署工具概覽

2020-12-16 51CTO

Kubernetes 應用程式部署工具概覽

將應用程式部署到 Kubernetes 就像在 yaml 或 json 中編寫一些資源定義並將其與 kubectl 一起應用一樣簡單,但它也可以自動化很多(並且很複雜)。

作者:xiebo翻譯來源:Dockone.io|2020-12-11 19:06

將應用程式部署到 Kubernetes 就像在 yaml 或 json 中編寫一些資源定義並將其與 kubectl 一起應用一樣簡單,但它也可以自動化很多(並且很複雜)。

在應用程式部署中,一個流行的方式是持續部署和GitOps的組合:每次更改原始碼後自動部署資源。為了使你能夠使用 GitOps 將應用程式部署到 Kubernetes,你需要做幾件事:

  • 容器鏡像構建,用於將原始碼和本地依賴項構建到容器鏡像中。
  • 資源模板,為你的環境自定義部署資源。
  • 軟體包管理,可將多個資源捆綁到版本發布中並管理軟體包依賴。
  • 持續部署,通常使用使用一系列步驟和階段對您的環境進行新的更改。
  • 命令式部署,可通過編程方式管理複雜的服務生命周期,並減少手動或脆弱的腳本化步驟。
  • 自動縮放,可根據使用和消耗情況隨時對應用進行複製和資源分配。

在本文中,我列出了應用程式生命周期管理中每個階段的許多工具(主流的和非主流的)。由於很難客觀地判斷受歡迎程度或成功程度,因此我嘗試對這些工具進行注釋,以使其易於查看哪些大型企業支持者已在這些項目上進行了投資。請記住,大型的雲計算支持者可能會進行多項競爭性投資,因此,僅僅因為它擁有一位知名的投資者,並不意味著它可以長期生存和發展。

希望如下列表將為您尋找應用程式部署問題的解決方案提供一個起點。

容器鏡像構建

  • 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)——用於使用雲原生構建包來構建應用程式的 CLI 和服務。
  • Carvel / kbld(VMware/Pivotal)——一種用於構建並推送鏡像到開發和部署工作流中的服務。
  • Google Cloud Buildpacks(Google)——一種用於在 Google 雲平臺運行的構建器和構建包。
  • Makisu(Uber)——一種快速靈活的 Docker 鏡像構建工具,可在 Mesos 和 Kubernetes 等無特權的容器化環境中使用。

資源模板

  • 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 模板引擎。

包管理器

  • Helm(Microsoft,Google)——Kubernetes 軟體包管理器
  • Cloud Native Application Bundles (CNAB) / Porter / Duffle(Microsoft/Deis,Docker)——一種軟體包格式規範、打包和安裝程序,用於管理與雲無關的分布式應用程式。

持續部署

  • Spinnaker(Netflix,Google)——一個多雲的持續交付平臺,用於平穩高效的發布軟體變更。
  • Terraform Kubernetes Provider(Hashicorp)——一個Terraform 插件,可以對 Kubernetes 資源進行完整的生命周期管理。
  • Concourse(VMware/Pivotal)——一個用 Go 和 Elm 編寫的基於容器的連續事物。
  • JenkinsX(CloudBees)——用於 Kubernetes 的自動化 CI/CD,具有使用 Tekton,Knative,Lighthouse,Skaffold 和 Helm 進行拉取請求的預覽環境。
  • Argo CD(Intuit)——用於 Kubernetes 的說明性 GitOps 持續交付工具。
  • Tekton / Tekton Pipelines(Google)——一個 Kubernetes 控制器,提供 CI/CD 樣式的管道資源。
  • Cloud Build(Google)——提供在 Google Platform 基礎架構上執行構建的服務。
  • 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 鏡像的工具。

命令式部署

  • 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)——一種基礎架構,像是 Code SDK,用於在任何雲上使用容器,無伺服器函數,託管服務和基礎架構來創建和部署雲軟體。
  • Carvel / kapp / kapp-controller(VMware/Pivotal)——一個 CLI 和 Kubernetes 控制器,用於安裝 App CRD 所述的配置(helm 圖表,ytt 模板,純 yaml)。
  • Isopod(Cruise)——在不使用 YAML 的情況下,用於 Kubernetes 資源配置的表達性 DSL 和框架。

自動縮放

  • 水平 Pod 自動縮放器(內置)——Kubernetes 控制器會根據配置的指標自動縮放 replication controller,deployment,replica set 或 stateful set 中的pod數量。
  • 垂直 Pod 自動縮放器 (Google) --- 一組 Kubernetes 組件,可自動調整 Kubernetes 集群中運行的 Pod 請求的 CPU 和內存。
  • Addon Resizer (Google) --- 垂直 Pod 自動縮放器的簡化版本,可根據 Kubernetes 集群中的節點數量修改部署的資源請求。
  • KEDA (Microsoft) --- 基於 Kubernetes 的事件驅動自動縮放組件。
  • Watermark Pod 自動縮放器 (DataDog) --- 自定義控制器,用於擴展水平 Pod 自動縮放器(HPA)。
  • Pangolin (Damian Peckett) --- 用於 Kubernetes 的增強型水平 Pod 自動縮放器,可使用各種高度可配置的控制策略,根據 Prometheus 指標擴展部署。
  • 預測水平 Pod 自動縮放器 (IBM) --- 一個可自定義的pod自動縮放器,和水平Pod自動縮放器類似,但是加入了預測元素。
  • 水平 Pod 自動縮放器操作員 (Banzai Cloud) --- 一個 Kubernetes 控制器用來監控 Deployments 或 StatefulSets,並且基於自動縮放註解自動創建水平 Pod 自動縮放器資源。

最後

正如任何 DevOps 倡導者會告訴您的那樣,這與工具無關,而與觀念有關。沒有一種工具可以給您帶來端到端的應用程式生命周期管理體驗能讓您感到滿意,因為每個人都使用自己的排列工具,並與腳本和集成代碼耦合在一起。

您可以尋找能夠做好一件事的工具,它易於替換和擴展,或者提供最大價值,更少管理,更易集成以及最佳端到端用戶體驗的工具。沒有真正錯誤的答案。

由於存在這些折衷,因此有必要查看每個項目的幕後人物,投資的公司數量以及該工具的受歡迎程度。擁有大型,多元化投資者的熱門工具在您使用它們時更有可能保持增長,而不是停滯不前並被拋棄,這需要您用自己的時間和精力替換工具或替換投資。

希望這種分類法將很有用,並在您考慮選擇時為您提供一個起點。祝好運!

我忘記了您最喜歡的工具嗎?發表評論或在 Twitter 上告訴我!

【編輯推薦】

【責任編輯:

未麗燕

TEL:(010)68476606】

點讚 0

相關焦點

  • 親測好用的Kubernetes&DevOps工具!
    Amazon Elastic Container Service是一個Kubernetes DevOps工具,它允許用戶管理和擴展他們的容器化應用程式,並使用Kubernetes簡化部署。 3、Conjure-up Conjure-up易於使用,允許用戶以最少的問題部署他們的應用程式。支持本地主機部署、AWS、bare metal、Azure、VMware、Joynet和OpenStack。
  • 如何部署一個Kubernetes集群
    數量就比較有限了; 磁碟空間要求在30GB以上,主要用於存儲Docker鏡像及相關日誌文件;在本次實驗中由於條件有限,我是在Mac筆記本上通過虛擬軟體準備了兩臺虛擬機,其具體配置如下:2核CPU、2GB內存,30GB的磁碟空間; Unbantu 20.04 LTS的Sever版本,其Linux內核為5.4.0; 內網互通,外網訪問權限不受控制;2、Kubeadm一鍵部署工具簡介
  • 如何在 Kubernetes 上配置 Jenkins?
    4.設置並運行pipeline,對一個簡單的web應用程式進行測試。先決條件1.Docker。有關安裝Docker的詳細信息,請參閱下方「Docker安裝」頁面。https://docs.docker.com/get-docker/2.Kubernetes集群。
  • 2020版Kubernetes快速上手指南,讓你所見即所得
    部署困難。例如:多節點群集,多個部署工具和方式選擇困難,Kubernetes部署過程中問題多。欠缺好的文章指導,目前能Google搜索的技術文章不是滯後就是凌亂,而官方文檔雖然權威、詳盡,但新人起步的針對性不足。讓人心煩的網絡和存儲配置。
  • 春眠不覺曉,Kubernetes知多少
    目前已成為開發者、運維人員中最流行的開發工具。本文從Kubernetes的主要組成部分和主要資源類型出發,簡要講解Kubernetes的基本技術原理。同時全面分析POD、Deployment、Service等主要組成資源,並且結合案例展現其基本應用方法。
  • 簡化公有雲K3s部署體驗,Rancher開源自動化工具AutoK3s
    2020年10月26日,業界應用最為廣泛的Kubernetes管理平臺創建者Rancher Labs(以下簡稱Rancher)正式發布並開源K3s自動化工具項目AutoK3s, 一款用於幫助用戶在多個雲供應商上快速創建和管理K8S集群的輕量級工具,可以極大地簡化並提升公有雲用戶的部署體驗
  • 13種工具助你打造企業的雲原生屬性
    可見,理解並選擇正確的雲原生技術,將有助於提高應用與服務的開發速度,減少維護工具的複雜性,並能提高有限基礎設施的利用率。本文將向您介紹13種雲原生工具,以方便您打造本企業的雲原生屬性。 什麼是原生雲?
  • 50個最流行的免費Kubernetes工具集 - 雲計算_CIO時代網...
    費用:免費 15.Weave ScopeWeave Scope是Docker和Kubernetes集群的故障排除和監控工具。它可以自動生成應用程式和基礎架構拓撲,可幫助輕鬆識別應用程式性能瓶頸。Keel通過標籤,注釋和圖表幫助部署Kubernetes服務。你只需要為每個部署或Helm版本指定更新策略。一旦新的應用程式版本在存儲庫中可用,Keel將自動更新環境。費用:免費 36.ApolloApollo是一個開源應用程式,為團隊提供自助UI,用於創建和部署Kubernetes的服務。
  • 機器人應用部署——ROS簡介
    QDN提供了各種相關的學習資源,幫助您了解如何在Qualcomm®機器人RB3平臺上安裝ROS,Qualcomm機器人RB3如何驅動Turtlebots 3 Burger,以及如何使用AWS Robomaker將應用部署到Qualcomm機器人RB3。
  • 《蹲坑學kubernetes》之四:了解Kubernetes安裝部署方式
    在實際的應用中也會有不同的選擇,那麼你會選擇哪種方式部署Kubernetes呢?在實際應用中,針對Kubernetes的不同應用目的,選擇安裝部署的方式也不一樣。圖2:Minikube安裝部署二、使用Kubeadm安裝部署Kubernetes群集Kubeadm工具的出發點很簡單
  • TrustBase智能合約平臺:一鍵部署波卡應用程式
    無需競拍平行鏈插槽 TrustBase助開發者一鍵部署來自全球的區塊鏈開發者還有一個選擇——通過波卡的智能合約平行鏈,開發智能合約應用。任何應用程式開發者都可以在不構建整個區塊鏈的情況下,在Polkadot上部署其應用程式,這樣其開發的成本和難度都將大大降低,迭代速度也更快。
  • 嵌入式Linux啟動時間優化的秘密之一工具鏈/應用程式優化
    >   01   工具鏈/應用程式優化   導讀:嵌入式Linux在應用中往往希望系統能在儘量短的時間內啟動,以提高用戶體驗。   尋找耗時最長的開銷應用   查找在應用程式和腳本中完成的不必要的工作。例如:多次打開同一文件,或嘗試打開不存在的文件。   局限性:您無法跟蹤init進程!
  • Kubernetes的Local Persistent Volumes使用小記
    和常見的分布式文件系統相比,本地磁碟故障會導致數據丟失,保存重要數據請勿使用HostPath Volume和Local PV;基本概念說完了,接下來實戰體驗;實戰環境信息作業系統:CentOS Linux release 7.8.2003 (Core)kubernetes
  • Facebook(FB.US)成立新團隊,提供遊戲及商業工具等應用程式
    美股 Facebook(FB.US)成立新團隊,提供遊戲及商業工具等應用程式 2019年7月10日 06:00:00 智通財經網智通財經APP獲悉,周二,Facebook(FB.US)表示其成立了一個名為「NPE」(New Product Experimentation)的新團隊,為用戶提供「構建社區的全新體驗」。這些應用程式涵蓋從遊戲到商業工具等各個方面。
  • 中國線上峰會分論壇前瞻丨應用程式+開發+案例研究+運營
    技術發展日新月異,隨著雲原生被越來越多的企業所應用,雲原生應用程式的開發、運營以及案例應用逐漸成為企業關注的焦點。與傳統應用程式開發不同,雲原生是基於雲計算基礎設施構建的,而雲計算應用本身並不關注伺服器、資料庫、連接等,而是將硬體和維護等服務抽離,因此開發者更應專注真正重要的產品。首屆KubeCon 2020將聚焦15大技術主題,在3天的時間裡,更有來自全球各地100+雲原生技術大咖傾情分享,涵蓋前沿技術、應用實踐、案例分析以及趨勢解讀,共同探討雲原生的未來和方向。
  • Blue Mockingbird Monero-Mining競選活動針對Web應用程式
    安全公司Red Canary的研究人員發現了一個名為Blue Mockingbird的門羅幣加密貨幣開採活動,該活動利用了基於ASP.NET框架的Web應用程式中的CVE-2019-18935漏洞。「他們通過利用面向公眾的Web應用程式(特別是那些使用Telerik UI for ASP.NET的Web應用程式,然後通過多種技術執行和持久化)來實現初始訪問」黑客將針對ASP.NET的Telerik UI的易受攻擊的版本作為目標,以將XMRig Monero挖掘有效負載部署為Windows系統上的DLL。
  • 【乾貨分享】時速雲基於Kubernetes的CI/CD實踐
    2 CI/CD規劃概覽  2.1 架構總覽  結合 Kubernetes 的一些基礎理念和特性,綜合考慮容器 PaaS 平臺、微服務治理平臺在 DevOps 的需求,並融合企業內部已有的 CI/CD 等工具,自主實現了一套更適合於雲原生應用平臺的 DevOps 服務體系。
  • 這包括適用於Facebook等平臺的移動和社交應用程式
    近期涉及這包括適用於Facebook等平臺的移動和社交應用程式內容備受矚目,很多讀者對此也很有興趣,現在給大家羅列關於這包括適用於Facebook等平臺的移動和社交應用程式最新消息。為幫助工具流程,Java用戶體驗和門戶技術的製造商eXo宣布了適用於Elastic Beanstalk的eXo Cloud IDE,這是Amazon Web Services提供的新平臺即服務。
  • 如何利用Kubernetes部署並管理XSKY SDS?
    我們在某涉密機構實際落地項目中,客戶選用了Kubernetes作為計算平臺,同時選用了XSKY SDS作為容器存儲,提供塊、文件、對象多種協議接口,承載數百種上層業務應用。
  • 硬核評測 | 小程序如何一鍵轉快應用?
    在2020年HDC大會(華為開發者大會)上,我們發現華為快應用升級到了2.0版本,不僅為用戶帶來了更豐富、更便捷的場景流量入口,還為開發者打造了更加開放高效的開發工具,其中一鍵將小程序轉為快應用的服務,更是驚豔。  接下來讓我們一起來剖析與評測這款「流量觸達利器」——華為快應用。  一、什麼是快應用?  快應用的故事,要從2018年說起。