<thead id="jirdo"></thead>
  • <progress id="jirdo"></progress>
    <thead id="jirdo"></thead>

    <dl id="jirdo"><em id="jirdo"></em></dl>
    <thead id="jirdo"><tbody id="jirdo"></tbody></thead>
    <li id="jirdo"><em id="jirdo"></em></li>

          <thead id="jirdo"></thead>
          <li id="jirdo"><em id="jirdo"></em></li>

            <thead id="jirdo"></thead>

              <thead id="jirdo"><dd id="jirdo"><big id="jirdo"></big></dd></thead>

              <nav id="jirdo"></nav>

              <thead id="jirdo"><dd id="jirdo"><big id="jirdo"></big></dd></thead>

                <nav id="jirdo"><sub id="jirdo"></sub></nav>

                    超越Docker和Kubernetes:容器生態系統不斷發展

                        在過去幾年,容器走過了漫長的道路–從利基技術發展成為部署現代云原生應用和服務的關鍵平臺,而隨著部署的增長,這個生態系統也在不斷發展。容器作為一個概念其實已經存在很多年,它一直是作為分配計算機資源的一種方法,這也是虛擬機的功能。

                        這兩者的區別是,虛擬化在裸機級別運行,容器是從操作系統內核交付,并且,本質上為每個單獨應用或代碼模塊提供單獨的執行環境。

                    微信圖片_20180730150114

                        曾經企業主要是使用虛擬機,直到Docker給容器注入新生命力通過將容器技術與工具相結合,使其成為敏捷開發的理想工具。由于容器比虛擬機更輕且速度更快,企業也喜歡使用容器來部署基于微服務的架構和部署DevOps舉措。

                        自五年前Docker平臺推出以來,容器生態系統已經迅速擴張。這是好事情,因為這項技術最初缺乏很多支持工具和功能(例如協調和負載均衡)這些工具都圍繞虛擬機創建,這也促使開發人員迅速填補這個空白。

                    一、構建生態系統

                        我們看到,在編排方面,Kubernetes已經在很大程度贏得了這場比賽。它不僅用于越來越多的內部部署容器平臺,而且所有主要云服務提供商提供容器服務時都將Kubernetes作為編排層。

                        與此同時,支持容器的底層技術也建立了更多的標準化,這些技術包括容器運行時(實際運行容器的引擎)以及用于存儲和分發容器映像的文件格式。在運行時方面,在Linux基金會支持下成立的開放容器倡議組織(OCI)負責對容器以及進行監督,并且,Docker貢獻了runc:基于其自身技術的參考部署,其中提供基本功能。隨后Dockerrunc整合到名為containerd的功能更豐富的運行時中,以供自己使用,并將其提交給云原生計算基金會(CNCF),這是監督Kubernetes的機構。Docker也在自己的產品中使用containerd。由于它包含runc,containerd仍然與OCI規范兼容。

                        在一段時間后,OCI成立了一個新的工作組,旨在為標準容器映像格式創建規范。Dcoker也參與到創建規范的工作中,并將產生的OCI格式整合到其自己的平臺,作為Docker V2映像。

                        因此,容器運行時和容器映像都開始有自己的標準。所有容器運行時最終都需要遵守OCI標準,這意味著如果基礎設施的其他部分也兼容OCI的話,則應該可相對容易地混合和匹配來自不同來源的軟件組件作為容器部署的一部分。

                    二、解決容器安全難題

                        那些想要使用容器的企業非常關注容器的安全性,因為它們并不提供虛擬機部署中虛擬管理程序實現的實例之間的隔離級別。這是因為所有在主機運行的容器都是通過調用相同共享內核來訪問資源,這使得潛在漏洞可能影響所有容器。

                        目前容器領域正在試圖以不同方式解決這個問題。例如,OpenStack支持的Kata容器項目最近發布了1.0版,它的策略是創建類似于容器的輕量級虛擬機。它通過使用遵守OCI規范的虛擬機管理程序來實現此目的,并將外部世界視為容器運行時。該管理程序會創建一個輕量級虛擬機,封裝最小的操作系統內核和實際容器。這與一些現有平臺整合容器支持的方式類似。Pivotal Container ServicePKS)在VMwarevSphere或者谷歌Cloud Platform的虛擬機內運行容器,而亞馬遜的AWS運行多個容器服務,所有容器服務將容器放在EC2實例內。這些都是用標準虛擬機作為容器主機,而Kata Containers似乎是用輕量級虛擬機偽裝作為容器運行時。

                        與此同時,谷歌已經開發出另一種解決方案來提高容器安全性,即通過gVisor開源項目。在這里他們沒有使用虛擬機管理程序,而是充當主機內核和容器應用之間的額外內核。gVisor內核具有正常用戶級特權,并可攔截來自應用的系統調用,通過執行該操作來為它們提供服務。換句話說,gVisor就像是代理或者緩沖層,阻止應用直接訪問主機內核或者其他資源。

                        然而,gVisorKata Containers都帶來增加額外性能開銷和潛在應用兼容性問題。對于gVisor更是如此,谷歌警告稱它不會支持每次Linux系統調用。

                        另外,容器生態系統仍在繼續擴張,第三方工具和平臺在不斷涌現,以填補構建容器基礎設施所需的缺失部分。其中新工具可為特定工作負載提供持久性存儲,例如StorageOS或者PortWorx。其他工具還提供監視和高級網絡功能,有些工具則集中在構建容器映像存儲庫。另外,其他供應商和項目專注于圍繞容器構建平臺來創建交鑰匙式交付管道,以支持現代云原生應用(例如CircleClGoCD)的整個構建、測試和部署。

                        可以說,很多像亞馬遜這樣的云服務提供商已經提供這種功能,而傳統平臺即服務產品(例如Red HatOpenShift)已經變成圍繞容器的開發者平臺。

                        不過,目前容器可能不像虛擬機那樣成熟,特別是在管理和編排領域,但這個市場正在迅速發展,容器正成為云計算時代應用開發的首選工具。




                    2018年7月30日 15:13
                    ?瀏覽量:0
                    ?收藏

                    其他成功案例

                    陌陌怎么约到炮啊