国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一文帶你重新認識 Docker 與 Kubernetes

baishancloud / 1664人閱讀

摘要:公司始于名為的平臺即服務供應商。跨多個機器之間協調這些容器需要額外的工具,這稱之為容器編排。的核心優勢是為應用程序開發人員提供了用于編排無狀態容器的強大工具。

有無數的文章都在討論和比較Docker、Kubernetes 以及Mesos。如果你是初學者,那么你可能會認為這三個開源項目正為了稱霸容器界而殊死搏斗。

雖然這三種技術都使得使用容器部署、管理和伸縮應用成為可能,但實際上它們各自解決了不同的問題,并且根植于迥異的上下文環境中。事實上,這三種被廣泛采用的工具鏈,都是有差別的。

讓我們來對三個項目的原始任務、技術架構,以及它們是如何相互補充和交互的來進行對比。

Docker

Docker 公司-始于名為dotCloud 的平臺即服務(PaaS)供應商。dotCloud 團隊發現,在許多應用和客戶之間管理依賴和二進制文件時需要付出大量的工作。因此他們將Linux 的cgroups和namespace 的一些功能合并成一個單一且易于使用的軟件包,以便于應用程序可以一致地運行在任何基礎設施上。這個軟件包就是所謂的Docker 鏡像,它提供了如下的功能:

將應用程序和依賴庫封裝在一個軟件包(即Docker 鏡像)中,因此應用可以被一致地部署在各個環境上;

提供類似Git 的語義,例如 docker push,docker commit 等命令讓應用開發者可以快速接受這門新的技術,并將其融入到現有的工作流中;

定義Docker 鏡像為不可變的層,支持不可變的基礎設施。新提交的變更被分別保存為只讀層,讓復用鏡像和追蹤變更記錄變得十分簡單。還通過只傳輸更新而不是整個鏡像來節省磁盤空間和網絡流量;

通過實例化不可變的鏡像和讀寫層來運行Docker 容器,讀寫層可以臨時地存儲運行時變更,從而輕松部署和擴展應用程序的多個實例。

Docker 變得越來越受歡迎,開發者們開始從在筆記本電腦上運行容器轉而在生產環境中運行容器。跨多個機器之間協調這些容器需要額外的工具,這稱之為”容器編排”。第一個支持Docker 鏡像的容器編排工具是Apache Mesos 的marathon。那年,Docker 的創始人兼首席技術官Solomon Hykes 將Mesos 推薦為”生產集群的黃金標準“。不久之后,除了Mesos 的Marathon 之外,還出現了許多的容器編排技術:Nomad、Kubernets,Docker Swarm 。

隨著Docker 開始商業化其開源的文件格式,該公司還開始引入工具來完善其核心的Docker 文件格式和運行時引擎,包括:

為公開存儲Docker 鏡像的而生的Docker hub;

存儲私有鏡像的Docker 倉庫(Docker registry);

Docker cloud,用于構建和運行容器的管理性服務;

Docker數據中心作為一種商業產品體現了許多Docker 技術;

Docker 將軟件及其依賴關系封裝在一個軟件包中的洞察力改變了軟件行業的游戲規則,Docker 文件格式成為行業標準,領先的容器技術供應商(包括Docker、Google、Pivotal、Mesosphere 等) 組建了 CNCF和OCI 。如今,CNCF 和OCI 旨在確保容器技術之間的互操性和標準化接口,并確保使用任何工具構建的任何Docker 容器都可以在任何運行時或基礎架構上運行。

Kubernetes

Google 很早就認識到了Docker 的潛力,并試圖在Google Cloud Platform (GCP)上提供容器編排“即服務”。Google 在容器方面擁有豐富的經驗(是他們在Linux 中引入了cgroups),但現有的內部容器和Borg 等分布式計算工具直接與其基礎架構相耦合。所以,Google 沒有使用原有系統的任何代碼,而是從頭開始設計Kubernetes (K8S)來編排Docker 容器。Kubernetes 于2015 年2 月發布,其開發目標包括:

為應用程序開發人員提供編排Docker 容器的強大工具,而無需與底層基礎設施交互;

提供標準部署接口。以實現云端一致的應用部署體驗和API;

基于模塊化API 核心。允許供應商圍繞Kubernetes 的核心技術集成其系統。

Kubernetes 對應用程序開發人員非常有吸引力,因為它減輕了對基礎架構和運營團隊的依賴程度。供應商也喜歡Kubernetes,因為它提供了一個容易的方式來擁抱容器化運動,并為客戶部署自己的Kubernetes提供商業解決方案。

Kubernetes 的核心優勢是為應用程序開發人員提供了用于編排無狀態Docker 容器的強大工具。

Apache Mesos

Apache Mesos應用了從云計算級別的分布式基礎架構中習得的經驗和教訓。并且,Mesos 推出了一種模塊化架構,一種開源的開發方法,旨在完全獨立于基礎架構。Mesos 迅速被Twitter ,Apple ,Yelp ,Netflix和許多領先的技術公司采用,支持從微服務、大數據和實時分析到彈性擴展的一切。

Apache Mesos在設計之初,設定的開發目標如下:

將數據中心資源抽象為單個池來簡化資源分配,同時在私有云或公有云中提供一致的應用和運維體驗;

在相同的基礎架構上協調多個工作負載,如分析、無狀態微服務、分布式數據服務和傳統應用程序,以提高利用率,降低成本和臺面空間;

為應用程序特定的任務(如部署、自我修復、擴展和升級),自動執行第二天的操作;提供高度可用的容錯基礎設施;

提供持久的可擴展性來運行新的應用程序和技術,而無需修改集群管理器或其上構建的任何現有應用程序;

彈性擴展可以將應用程序和底層基礎設施從少量擴展到數十到數萬個節點。

Mesos 獨有的獨立管理各種工作負載的能力—— 包括Java 這樣的傳統應用程序、無狀態Docker 微服務、批處理作業、實時分析和有狀態的分布式數據服務。Mesos 廣泛的工作負載覆蓋來自于其兩級架構,從而實現了“應用感知”調度。通過將應用程序特定的操作邏輯封裝在“Mesos 框架”中來實現應用程序感知調度。資源管理器Mesos Master 提供了這些框架基礎架構的部分,同時保持隔離。這種方法允許每個工作負載都有自己的專門構建的應用程序調度程序,可以了解其部署、擴展和升級的特定操作要求。應用程序調度程序也是獨立開發、管理和更新的,這讓Mesos 擁有高度可擴展的能力,支持新的工作負載或隨著時間的推移而增加更多的操作功能。

Mesos的運行機制是新版本的應用運行起來時,原先舊版本的軟件依然還正常運轉著,然后當舊應用被銷毀時流量將會切換到新的應用上。但是升級數據工作負載例如HDFS 或者Cassandra 要求節點停機一次,此時需要持久化本地數據卷以防止數據丟失,并且按照特定的順序執行原位升級,在升級之前和升級完成之后,都要在每一個節點類型上執行特定的檢查和命令。任何這些步驟都是應用程序或服務特定的,甚至可能是版本特定的。這讓使用常規容器編排調度程序來管理數據服務變得非常困難。

總結

三種項目的運行機制和運行目的并不相同,所以當人們將Docker 和Kubernetes 與Mesos 進行比較時,他們實際上是將Kubernetes 和Docker Swarm 與在Mesos 上運行的Marathon 進行比較。

Mesos 坦率地講并不在乎它上面運行了什么。Mesos 可以在共享的基礎設施上彈性地為Java 應用服務器提供集群服務、Docker 容器編排、Jenkins 持續集成任務、Apache Spark 分析、Apache Kafka 流,以及更多其他的服務。Mesos 甚至可以運行Kubernetes 或者其他的容器編排工具。所有這三種技術都與Docker 容器有關,可以讓你在容器編排上實現應用程序的可移植性和擴展性。至于選擇哪種項目,這主要取決于你的身份。

如果你是一個應用開發人員,正在尋找現代化的方式來構建和打包你的應用程序,或者想加速你的微服務計劃,Docker 容器和開發工具就是最好的選擇。

如果你是一個開發人員或者DevOps 的團隊,并希望構建一個專門用于Docker 容器編排的系統,而且愿意花時間折騰集成解決方案與底層基礎設施,Kubernetes 是一個可以考慮的好技術。

如果你想要建立一個運行多個關鍵任務工作負載的可靠平臺,包括Docker 容器、傳統應用程序和分布式數據服務,并希望所有這些可依移植到云端提供商或者數據中心,那么Mesos,更適合你們的需求。

互動區

* 你對以上內容有什么看法?你最關注云計算哪個趨勢?如果你還有想了解的技術話題,歡迎留言分享。

第三十二期 啟迪云交付工程師 ?王中杰

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/5872.html

相關文章

  • 帶你理解Kubernetes,部署一個Node應用

    摘要:應用實例創建完成后,會持續監視這些實例。創建時,會創建了一個來托管應用。通過請求,可以從集群的外部訪問一個服務。使用云提供商的負載均衡器如果支持,可以向外部暴露服務。使用在中部署第一個應用本文以為例進行。目標是將簡單的應用部署在上運行。 Kubernetes是什么? Kubernetes是容器集群管理系統,是一個開源的平臺,可以實現容器集群的自動化部署、自動擴縮容、維護等功能。可以在物...

    qqlcbb 評論0 收藏0
  • 帶你理解Kubernetes,部署一個Node應用

    摘要:應用實例創建完成后,會持續監視這些實例。創建時,會創建了一個來托管應用。通過請求,可以從集群的外部訪問一個服務。使用云提供商的負載均衡器如果支持,可以向外部暴露服務。使用在中部署第一個應用本文以為例進行。目標是將簡單的應用部署在上運行。 Kubernetes是什么? Kubernetes是容器集群管理系統,是一個開源的平臺,可以實現容器集群的自動化部署、自動擴縮容、維護等功能。可以在物...

    lbool 評論0 收藏0
  • 零基礎入門│帶你理解Kubernetes

    摘要:的核心是以容器為中心的管理環境。命名空間提供了名稱范圍。換句話說,確保或同類組始終可用。用于管理有狀態應用程序,它管理一組的部署和擴展,并提供有關這些的排序和唯一性的保證。 條分縷析帶你充分理解Kubernetes的各個細節與部分:它是什么,它如何解決容器編排問題,它包含哪些你必須掌握的關鍵對象,以及如何快速上手部署使用Kubernetes。 showImg(https://segme...

    DevWiki 評論0 收藏0
  • Docker Swarm的前世今生

    摘要:當然此時的局限性較大,比如沒有副本和負載均衡的概念,這導致服務無法高可用當然也更不存在什么服務網絡管理和跨節點數據存儲這些東西沒有服務模型集群中服務間關系和啟動順序編排也很復雜于是就有了下面的的誕生。 showImg(https://segmentfault.com/img/remote/1460000015317037?w=1885&h=1153); 概述 在我的《Docker S...

    lemon 評論0 收藏0
  • VLIS實驗室云計算組張磊:關于Docker、開源,以及教育的嘗試

    摘要:年我們開始專注于開源云計算技術,當時開源的力量正在逐漸浮現。問你現在在實驗室的工作是什么我主要負責實驗室云計算團隊的技術工作,以及與技術相關的其他事宜,包括開源以及一些商業上的技術合作。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203520 張磊,浙江大學計算機學院博士生,科研人員,VLIS實驗室云計算組技...

    Mike617 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<