久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Kubernetes常見部署工具介紹及比較

 新用戶2011qwLg 2022-12-28 發(fā)布于山東

1 Minikube

Minikube 是由 Kubernetes 社區(qū)維護(hù)的單機(jī)版的 Kubernetes 集群快速部署工具,是一種輕量化的Kubernetes集群,。目前支持 MacOS,、 Linux 以及 Windows 等多種操作系統(tǒng)平臺, 非常適合在自己的筆記本上作為 Kubernetes 入門環(huán)境或作為開發(fā)測試環(huán)境使用,, 當(dāng)然由于只支持單節(jié)點(diǎn)不支持高可用因此不能用于生產(chǎn)部署,。

由于支持跨平臺, 但是我們知道 MacOS 以及 Windows 是不支持直接運(yùn)行容器的,, 因此Minikube默認(rèn)會啟動一個Linux虛擬機(jī),, 然后在虛擬機(jī)上通過kubeadm部署 Kubernetes 集群, 關(guān)于 kubeadm 工具下面將會介紹,。 當(dāng)然如果運(yùn)行的 OS 本身就是 Linux 系統(tǒng),,則可以通過指定--vm-driver=none 參數(shù)直接部署 Kubernetes集群在操作系統(tǒng)上, 不需要虛擬機(jī),, 不過需要自己手動部署Docker,。使用 Minikube部署單節(jié)點(diǎn) Kubernetes 非常簡單, 可以參考官方文檔,, 這里不再介紹,。

通常情況下,一套完整的Kubernetes集群至少需要包括master節(jié)點(diǎn)和node節(jié)點(diǎn),,下圖是常規(guī)k8s的集群架構(gòu),,master節(jié)點(diǎn)一般是獨(dú)立的,用于協(xié)調(diào)調(diào)試其它節(jié)點(diǎn)之用,,而容器實(shí)際運(yùn)行都是在node節(jié)點(diǎn)上,,kubectl位于 master節(jié)點(diǎn)。

下圖是 Minikube 的架構(gòu),,可以看出,,master 節(jié)點(diǎn)與其它節(jié)點(diǎn)合為一體,,而整體則通過宿主機(jī)上的 kubectl 進(jìn)行管理,這樣可以更加節(jié)省資源,。

2. kind

kind 是 Kubernetes 社區(qū)新維護(hù)的一個本地測試環(huán)境快速部署工具,, 除了用于本地測試, 未來還可能用于做 Kubernetes 本身的 CI 集成測試,。 目前 kind 工具仍處于開發(fā)階段,, 可以查看版本 1.0 的 roadmap。如 kind 的官方 Logo 所示,, kind 把 Kubernetes 的 Node 節(jié)點(diǎn)運(yùn)行在 Docker容器上,,因此需要提前安裝 Docker。

3 kops

kops 是生產(chǎn)級別的 Kubernetes 集群部署,、 升級和管理命令行工具,, 它主要用于在公有云平臺上通過 Terraform 自動創(chuàng)建虛擬機(jī)作為節(jié)點(diǎn)并自動化部署Kubernetes 集群, 目前官方支持的公有云平臺為 AWS,, GCE,、 DigitalOcean、OpenStack 目前處于 beta 階段,。國內(nèi) fitcloud 開源的 KubeOperator 也是一個類似的工具,, 通過 Web UI 在VMware、 OpenStack 和物理機(jī)上規(guī)劃,、 部署和運(yùn)營生產(chǎn)級別的 Kubernetes 集群,。

4 kubespray

Kubespray 使用 Ansible 部署生產(chǎn)級別的 Kubernetes 集群。 對于已經(jīng)了解Ansible 的人們來說,, 該工具是一個不錯的選擇,, 因?yàn)闊o需使用其他工具進(jìn)行預(yù)配和編排。

5 kubeadm

kubeadm 是和 Kubernetes 一塊發(fā)布的集群部署工具,, 與 Kubernetes 在同一個代碼倉庫中,, 因此可以說 kubeadm 是 Kubernetes 最親的部署工具, 目前使用最多的,, 同時也是社區(qū)最為推薦的 Kubernetes 部署工具,。

該工具的目標(biāo)是實(shí)現(xiàn)盡可能簡單地部署符合最佳實(shí)踐、 滿足基本安全合規(guī)要求的 Kubernetes 高可用集群,, 因此基本不需要太多的配置, 就能快速的部署一套生產(chǎn)可用的 Kubernetes 集群,。另外其實(shí)很多其他的部署工具也都是基于 kubeadm實(shí)現(xiàn)的,, 前面提到的 minikube、 kind 等工具都是基于 kubeadm 實(shí)現(xiàn)的,。

6 部署工具對比

除了以上介紹的部署工具,, 還有很多其他的部署工具,, 這些工具中:

minikube 和 kind 主要用于單機(jī)測試, 一般不用于生產(chǎn)部署,。

kops 主要用于在 IaaS 云平臺上部署集群,, 如果在公有云上部署可以嘗試使用這個工具。

kubespray 需要依賴 Ansible 自動化工具,, 如果熟悉 Ansible 可以嘗試使用,。

kubeadm 是 Kubernetes 項(xiàng)目自帶的部署工具, 社區(qū)最為推薦并且目前使用最多的工具,, 該工具基本不依賴外部工具,, 也基本不需要額外配置就可以快速搭建一個符合最佳實(shí)踐的Kubernetes 平臺。

Kubernetes 應(yīng)用程序部署工具概覽將應(yīng)用程序部署到 Kubernetes 就像在 yaml 或 json 中編寫一些資源定義并將其與 kubectl 一起應(yīng)用一樣簡單,, 但它也可以自動化很多(并且很復(fù)雜),。在應(yīng)用程序部署中, 一個流行的方式是持續(xù)部署和 GitOps 的組合:每次更改源代碼后自動部署資源,。 為了使你能夠使用 GitOps 將應(yīng)用程序部署到Kubernetes,, 你需要做幾件事:

l  容器鏡像構(gòu)建,用于將源代碼和本地依賴項(xiàng)構(gòu)建到容器鏡像中,。

l  資源模板,,為你的環(huán)境自定義部署資源。

l  軟件包管理,, 可將多個資源捆綁到版本發(fā)布中并管理軟件包依賴,。

l  持續(xù)部署, 通常使用使用一系列步驟和階段對您的環(huán)境進(jìn)行新的更改,。

l  命令式部署,, 可通過編程方式管理復(fù)雜的服務(wù)生命周期, 并減少手動或脆弱的腳本化步驟,。

l  自動縮放,, 可根據(jù)使用和消耗情況隨時對應(yīng)用進(jìn)行復(fù)制和資源分配。

在本文中,,列出了應(yīng)用程序生命周期管理中每個階段的許多工具(主流的和非主流的),。由于很難客觀地判斷受歡迎程度或成功程度, 因此我嘗試對這些工具進(jìn)行注釋,, 以使其易于查看哪些大型企業(yè)支持者已在這些項(xiàng)目上進(jìn)行了投資,。 請記住, 大型的云計算支持者可能會進(jìn)行多項(xiàng)競爭性投資,, 因此,, 僅僅因?yàn)樗鼡碛幸晃恢耐顿Y者, 并不意味著它可以長期生存和發(fā)展。

希望如下列表將為您尋找應(yīng)用程序部署問題的解決方案提供一個起點(diǎn),。

容器鏡像構(gòu)建

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

kaniko(Google)——從容器或 Kubernetes 集群內(nèi)部的 Dockerfile 構(gòu)建容器鏡像的工具。

img(Jess Frazelle)——一個獨(dú)立的,, 無守護(hù)進(jìn)程的,,無特權(quán)的 Dockerfile 和OCI 兼容的容器鏡像構(gòu)建器。

buildah(IBM/Red Hat)——一種有利于構(gòu)建開放容器計劃(OCI)容器鏡像的工具,。

Source-To-Image(IBM/Red Hat)——用于從源碼生成構(gòu)建包并將其注入容器鏡像的工具,。

Tanzu Build Service / kpack / pack(VMware/Pivotal)——用于使用云原生構(gòu)建包來構(gòu)建應(yīng)用程序的 CLI 和服務(wù)。

Carvel / kbld(VMware/Pivotal)——一種用于構(gòu)建并推送鏡像到開發(fā)和部署工作流中的服務(wù),。

Google Cloud Buildpacks(Google)——一種用于在 Google 云平臺運(yùn)行的構(gòu)建器和構(gòu)建包,。

Makisu(Uber)——一種快速靈活的 Docker 鏡像構(gòu)建工具, 可在Mesos 和Kubernetes 等無特權(quán)的容器化環(huán)境中使用,。

資源模板

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

Kustomize(Google, Apple)——一種用來自定義原始,、 無模板的 YAML 文件的 CLI,, 使原始 YAML 保持不變并可以按原樣使用。

Carvel / ytt(VMware/Pivotal)——一種 YAML 模板工具,, 該工具可在 YAML格式而非文本格式上運(yùn)行

jsonnet / go-jsonnet(Google)——一種 JSON 模板語言,。

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

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

包管理器

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

Cloud Native Application Bundles (CNAB) / Porter / Duffle(Microsoft/Deis,,

Docker)——一種軟件包格式規(guī)范,、 打包和安裝程序, 用于管理與云無關(guān)的分布式應(yīng)用程序,。

持續(xù)部署

Spinnaker(Netflix,, Google)——一個多云的持續(xù)交付平臺, 用于平穩(wěn)高效的發(fā)布軟件變更,。

Terraform Kubernetes Provider(Hashicorp)——一個 Terraform 插件,, 可以對Kubernetes 資源進(jìn)行完整的生命周期管理。

Concourse(VMware/Pivotal)——一個用 Go 和 Elm 編寫的基于容器的連續(xù)事物,。

JenkinsX(CloudBees)——用 于 Kubernetes 的 自 動 化 CI/CD,, 具有使用Tekton,Knative,, Lighthouse,, Skaffold 和 Helm 進(jìn)行拉取請求的預(yù)覽環(huán)境。

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

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

Cloud Build(Google)——提供在 Google Platform 基礎(chǔ)架構(gòu)上執(zhí)行構(gòu)建的服務(wù),。

Skaffold(Google)——有助于持續(xù)開發(fā) Kubernetes 應(yīng)用程序的 CLI,。

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

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

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

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

命令式部署

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)級 Kubernetes 操作員的框架,。

Pulumi(Pulumi)——一種基礎(chǔ)架構(gòu),, 像是 Code SDK, 用于在任何云上使用容器,, 無服務(wù)器函數(shù),,托管服務(wù)和基礎(chǔ)架構(gòu)來創(chuàng)建和部署云軟件。

Carvel / kapp / kapp-controller(VMware/Pivotal)——一個 CLI 和Kubernetes控制器,, 用于安裝 App CRD 所述的配置(helm 圖表,, ytt 模板, 純 yaml),。

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

自動縮放

水平 Pod 自動縮放器(內(nèi)置)——Kubernetes 控制器會根據(jù)配置的指標(biāo)自動縮放 replication controller,,deployment,, replica set 或 stateful set 中的 pod 數(shù)量。

垂直 Pod 自 動縮放器 (Google) --- 一組 Kubernetes 組件,, 可自 動調(diào)整Kubernetes 集群中運(yùn)行的 Pod 請求的CPU 和內(nèi)存,。

Addon Resizer (Google) --- 垂直 Pod 自 動縮放器的簡化版本, 可根據(jù)Kubernetes 集群中的節(jié)點(diǎn)數(shù)量修改部署的資源請求,。

KEDA (Microsoft) --- 基于 Kubernetes 的事件驅(qū)動自動縮放組件,。

Watermark Pod 自 動縮放器 (DataDog) --- 自 定義控制器, 用于擴(kuò)展水平Pod 自動縮放器(HPA),。

Pangolin (Damian Peckett) --- 用于 Kubernetes 的增強(qiáng)型水平 Pod 自動縮放器,, 可使用各種高度可配置的控制策略,根據(jù) Prometheus 指標(biāo)擴(kuò)展部署。

預(yù)測水平Pod 自動縮放器 (IBM) ---一個可自定義的 pod 自動縮放器,, 和水平 Pod 自動縮放器類似,, 但是加入了預(yù)測元素。

水平 Pod 自動縮放器操作員 (Banzai Cloud) --- 一個 Kubernetes 控制器用來監(jiān)控 Deployments 或 StatefulSets,, 并且基于自動縮放注解自動創(chuàng)建水平 Pod自動縮放器資源,。

最后

正如任何 DevOps 倡導(dǎo)者會告訴您的那樣, 這與工具無關(guān),, 而與觀念有關(guān),。沒有一種工具可以給您帶來端到端的應(yīng)用程序生命周期管理體驗(yàn)?zāi)茏屇械綕M意, 因?yàn)槊總€人都使用自己的排列工具,, 并與腳本和集成代碼耦合在一起,。

您可以尋找能夠做好一件事的工具, 它易于替換和擴(kuò)展,, 或者提供最大價值,,更少管理, 更易集成以及最佳端到端用戶體驗(yàn)的工具,。 沒有真正錯誤的答案,。由于存在這些折衷, 因此有必要查看每個項(xiàng)目的幕后人物,, 投資的公司數(shù)量以及該工具的受歡迎程度,。 擁有大型,多元化投資者的熱門工具在您使用它們時更有可能保持增長,, 而不是停滯不前并被拋棄,, 這需要您用自己的時間和精力替換工具或替換投資。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多