精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

從容器和Kubernetes看現(xiàn)代云計算的發(fā)展軌跡

責任編輯:editor005

2015-01-19 13:40:25

摘自:云創(chuàng)存儲

本文選自 Google Cloud Platform Blog,是一個主要介紹容器技術(shù)的系列博客的開篇。最明顯的一個方面就是:開發(fā)者只需要通過他們的筆記本電腦就能同時運行多個容器,并進行方便快速的服務(wù)部署。

本文選自 Google Cloud Platform Blog,是一個主要介紹容器技術(shù)的系列博客的開篇。文中通過對容器技術(shù)和kubernetes的大致介紹,闡述了容器技術(shù)的優(yōu)勢以及Google對于容器技術(shù)的理解。基于單臺服務(wù)器的容器虛擬化技術(shù)可以為測試和部署提供方便,但是在生產(chǎn)環(huán)境中,客戶往往面對的是整個集群的資源。Google的kubernetes產(chǎn)品為容器的集群化部署和管理提供了解決方案,kubernetes從另一個角度對資源進行了抽象,把每一個服務(wù)當作一個整體來對待。作者認為容器技術(shù)僅僅是當前計算模型演變的一個開端,而Google將會在這場新的技術(shù)革命中扮演重要的角色。

云計算


各位好!歡迎來到我們新的系列博客,在這個系列中,我們將要為大家介紹當今計算模型創(chuàng)新中最時髦的領(lǐng)域之一:容器化技術(shù)(containerization)。

你可能會有很多疑惑:容器到底是什么,它究竟怎樣工作?Docker、Kubernetes到底指的是什么,Google Container Engine以及Managed VM又有什么用?它們之間有何關(guān)聯(lián),我們?nèi)绾瓮ㄟ^容器來構(gòu)建一個功能強大的服務(wù),并且能讓它們在生產(chǎn)環(huán)境的大規(guī)模集群中使用? 用戶采用這種技術(shù),怎樣才能獲得商業(yè)價值?好了,我們不再賣關(guān)子,接下來就直入主題。我們首先會對容器技術(shù)進行具體的介紹,之后講述容器技術(shù)究竟如何使我們更好地進行工作。

隨著計算模型(computing models)的不斷發(fā)展衍化,我們曾經(jīng)經(jīng)歷過幾次計算模型解決方案的轉(zhuǎn)變。回顧在過去的10年,我們從虛擬化技術(shù)的角度可以很清楚看到這種變化的過程。受益于虛擬化技術(shù)的發(fā)展,我們對整體資源的使用效率有了巨大的提升,與此同時,我們工作的時間價值和為了交付服務(wù)所做的重復(fù)性工作得到了相應(yīng)減少。隨著多租戶、基于API的管理以及公有云計算技術(shù)的到來,這一趨勢更是被不斷加強。這其中,最關(guān)鍵的突破就是資源使用方式所發(fā)生的變化。通過虛擬化的方式,我們可以在幾分鐘之內(nèi),虛擬出一個小的、獨立的、隨需隨用CPU內(nèi)核,這個虛擬的CPU內(nèi)核感覺像是直接運行在物理機之外。那么問題來了,當你僅僅需要使用一小部分資源的時候,是否還有必要虛擬出一整臺機器?

Google在很早的時候就已經(jīng)遇到了這個問題:我們需要更快、更便宜的方式發(fā)布軟件,并且支撐服務(wù)運行所需要的計算資源的規(guī)模也以前從未有過的,那么這一問題應(yīng)該如何解決?為了滿足這一需求,我們需要對已有資源進行更高級別的抽象,使得服務(wù)可以通過更細的粒度對資源進行控制。為此,我們?yōu)長inux內(nèi)核添加了新的技術(shù),這便是眾所周知的cgroup,我們通過這一技術(shù)來對服務(wù)運行時環(huán)境進行隔離,這種被隔離起來的運行時環(huán)境就被稱為容器。這是一種新的虛擬化技術(shù),通過這一技術(shù),我們簡化了Google全部服務(wù)運行所需要的底層OS環(huán)境。之后的幾年一直到現(xiàn)在,容器相關(guān)的技術(shù)不斷發(fā)展,隨著Docker的出現(xiàn),這一技術(shù)的影響得到了進一步擴大,Docker也正是通過使用這一技術(shù)為基于容器的應(yīng)用創(chuàng)建了一種可互操作的格式(interoperable format)。

為何使用容器?

容器技術(shù)究竟提供了哪些虛擬機所沒有的?

簡化部署(Simple deployment):容器技術(shù)可以將你的應(yīng)用打包成單一地址訪問的、registry存儲的(registry-stored)、僅通過一行命令就可以部署完成的組件。不論你想將服務(wù)部署在哪里,容器都可以從根本上簡化你的服務(wù)部署工作。

快速可用(Rapid availability):容器技術(shù)對操作系統(tǒng)的資源進行再次抽象,而并非對整個物理機資源進虛擬化,通過這種方式,打包好的服務(wù)可以在1/20秒的時間內(nèi)啟動,相比之下,可能需要一分鐘的時間才能啟動一臺虛擬機。

微服務(wù)化(Leverage microservices):容器可以允許開發(fā)者和系統(tǒng)管理人員對計算資源進行進一步細分,如果一個小型的虛擬機所提供的資源相對于服務(wù)運行所需要的資源來說過于龐大,或者對于你的系統(tǒng)而言,一次性地擴展出一臺虛擬機會需要很多的工作量,那么容器可能會很好的改善這一狀況。

容器技術(shù)的這些優(yōu)點能為你的工作帶來哪些幫助?

最明顯的一個方面就是:開發(fā)者只需要通過他們的筆記本電腦就能同時運行多個容器,并進行方便快速的服務(wù)部署。雖然在一臺筆記本電腦上運行多個虛擬機也是可以的,但是顯然通過容器的方式可以更快速、簡單、輕量級。

不僅如此,容器還可以使得服務(wù)發(fā)行版的管理變得更加容易,發(fā)布一個新的容器版本僅僅需要一個單獨的命令就能完成。同時,測試工作也變得更加容易,在公有云平臺中,虛擬機的計費方式可能至少以10分鐘為單位(或者,一整個小時?),如果僅運行單個測試程序,由于測試所消費的資源可能并不多。但是,如果你每天要運行上千個測試驅(qū)動導(dǎo)向的程序,資源成本就可能直線上升。如果改用容器進行同樣的測試工作,你只需要用同樣的資源消耗(與使用一臺虛擬機相同的資源消耗)來完成這上千個測試,這將會大大節(jié)省你的服務(wù)運行成本。

另外一個重要的優(yōu)勢就是組合特性,采用容器的方式進行部署,整個系統(tǒng)會變得易于組合,特別是對于那些需要使用到開源軟件的系統(tǒng)。對于系統(tǒng)管理人員,以下的工作可能會使人望而卻步:安裝和配置MySQL、Memcatched、MongoDB、Hadoop、GlusterFS、RabbitMQ、Node.js、Nginx等等,之后再將這些軟件封裝起來,為服務(wù)提供一個運行平臺。然而,這些復(fù)雜的工作完全可以通過啟動幾個容器來完成:先將這些服務(wù)封裝在對應(yīng)的容器中,之后結(jié)合一些腳本使這些容器按照要求相互協(xié)作,這樣操作不僅可以簡化部署難度還可以降低操作風(fēng)險。

如果你想按照前面所描述的過程構(gòu)建一個服務(wù)平臺,可能會有許多容易出錯的地方,整個配制過程也需要具備很專業(yè)的知識, 中間可能還會有許多重復(fù)的勞動。因此,我們可以先將核心的容器組件以規(guī)范的方式來實現(xiàn),之后將它們添加在公共的registry服務(wù)中。這樣其他用戶就可以通過registry服務(wù)隨時獲得所需要的容器,擁有高質(zhì)量組件的容器生態(tài)系統(tǒng)就這樣被構(gòu)建起來。

在相當長的一段時間內(nèi),容器技術(shù)最重要的價值就是為不同的主機上運行服務(wù)提供一個輕便的、一致的格式。例如,如果你今天要構(gòu)建一個服務(wù),你可能先要接入裸機服務(wù)器,并且使用虛擬化之后的預(yù)先定義好的基礎(chǔ)設(shè)施,或者直接使用共有或者私有的云服務(wù)平臺,當然也有許多PaaS提供商可以供你選擇。然而,你為了使自己服務(wù)能夠運行在不同的服務(wù)平臺上,可能需要通過多種不通的方式對服務(wù)進行打包!而如果通過在容器格式進行標準化的操作,這些不同的計算模型的提供商們就可以給用戶提供一種獨特的交付體驗,這可以允許用戶方便地對工作負載地進行遷移,用戶可以選擇將工作任務(wù)部署在最便宜和最快的平臺上,避免局限于單一的平臺提供商。

Docker

網(wǎng)上已經(jīng)有很多的對于容器技術(shù)和Docker相關(guān)技術(shù)如何實現(xiàn)的細致的介紹文檔,特別是這里、這里和這里。這些文檔已經(jīng)足夠能說明,Docker是一個“很棒的解決方案”,也就是說,目前可能還沒有其它方案能夠和它相媲美。

容器技術(shù)增強了對資源控制的粒度,這一點確實有很高的實用價值,但是對于那些需要上千臺服務(wù)器一起來運行的服務(wù)而言,單純的容器技術(shù)并沒有從本質(zhì)上提高任何工作負載的運行效率。如今的Docker僅僅是為了在單一的機器操作而設(shè)計,于是我們又可以提出一連串的問題:這些在集群上所運行的容器和容器中運行的工作負載應(yīng)該被如何分配和協(xié)調(diào),它們怎樣才能按照資源的消耗量來進行管理?它們?nèi)绾卧诙嘧鈶舻木W(wǎng)絡(luò)環(huán)境下進行運行?它們的安全性能又該如何被保證?

或許從系統(tǒng)設(shè)計的角度來看,我們可以提出一個更本質(zhì)的問題:當前我們所討論的到底是不是正確的資源抽象方式?與我交流過的大多數(shù)開發(fā)者以及公司的贊助商,他們對在指定的機器上的指定容器并不感興趣,他們真正想要自己的服務(wù)如何能被啟動運行,產(chǎn)生價值,并且易于監(jiān)管和維護,他們并不想了解全部的瑣碎細節(jié)(至少他們希望這樣),例如指定個機器上的指定個容器到底在做什么。

Kubernetes

Google通過產(chǎn)品的不斷迭代解決了這個問題:我們構(gòu)建了一個管理系統(tǒng),它可以用來管理集群、網(wǎng)絡(luò)以及命名系統(tǒng)。這個管理系統(tǒng)的第一個版本被稱為Brog,它的后續(xù)的版本稱為Omega。通過這個管理系統(tǒng),我們可以在Google的大規(guī)模的集群資源上使用容器技術(shù)。我們現(xiàn)在每秒會啟動大約7000個容器,每周可能會超過20億個容器。我們利用Google在容器技術(shù)上的實踐經(jīng)驗和技術(shù)積累,構(gòu)建了Kubernetes(在論壇上有些時候被簡寫為K8s)。

Kubernetes從另一個角度對資源進行抽象,它讓開發(fā)人員和管理人員共同著眼于服務(wù)的行為和性能的提升,而不是僅僅關(guān)注對單一的組件或者是基礎(chǔ)資源。

那么Kubernetes集群到底提供了哪些單一容器所沒有功能?它主要關(guān)注的是對服務(wù)級別的控制而并非僅僅是對容器級別的控制,Kubernetes提供了一種“機智”的管理方式,它將服務(wù)看成一個整體。在Kubernete的解決方案中,一個服務(wù)甚至可以自我擴展,自我診斷,并且容易升級。例如,在Google中,我們使用機器學(xué)習(xí)技術(shù)來保證每個運行的服務(wù)的當前狀態(tài)都是最高效的。

如果說單一容器能夠幫助開發(fā)者減少部署工作的繁瑣,那么Kubernetes就可以最大化的減少團隊開發(fā)過程中協(xié)同工作的復(fù)雜性。Kubernets可以讓團隊以容器的方式將服務(wù)結(jié)合在一起,并且讓這些容器按照指定的規(guī)則來進行部署,以確保服務(wù)能夠正確運行。在傳統(tǒng)的方式下,由于缺乏隔離性,服務(wù)之間或服務(wù)之間的各個部分很容易產(chǎn)生相互干擾,但是通過Kubernetes,這些矛盾可以從系統(tǒng)的角度上被避免,在Google,通過使用這種增強的協(xié)同工作的方式,開發(fā)者的生產(chǎn)力得以提高,服務(wù)的可用性也進一步增強,這也使得在大規(guī)模的集群上的部署變得更加敏捷。

然而我們的技術(shù)仍然處于早期的發(fā)展階段。目前,Kubernetes已經(jīng)被許多客戶和公司的知名團隊所采用,包括RedHat ,VMware,CoreOS,以及Mesosphere 等等。這些公司迫切地希望通過Kubernete進行的規(guī)模化部署來幫助他們的客戶提取出容器技術(shù)的商業(yè)價值。

Container Engine

Google Container Engine在Google的云平臺上引入了“容器即服務(wù)”的理念。基于Kubernetes的技術(shù),容器引擎為開發(fā)者提供了快速構(gòu)建和運行容器的方法,此外,容器引擎還可以對容器進行部署、管理、并且使容器按著設(shè)定的邊界進行擴展。在接下來的文章中我們會對容器引擎進行更多的介紹。

Deployment options

我們可以看到,容器化技術(shù)已經(jīng)成為了計算模型演化的一個開端,Google在這場技術(shù)革命中扮演重著要的角色。隨著讀者開始逐漸接觸容器,并對容器部署方式了解不斷深入,在實際服務(wù)部署中,可以對下面幾種方式進行調(diào)研,并從中選出最適合的一種:

如果你打算運行一個被管理的集群或者啟動幾十個容器,使用Google Container Engine試一試。如果你想要在共有的基礎(chǔ)設(shè)施上或者是自己的系統(tǒng)中構(gòu)建自己的集群,可以使用Kubernetes來操作。想要在已經(jīng)被管理好的基礎(chǔ)設(shè)施上運行一個容器,可以嘗試使用Google App Engine或者是Managed VMs。

最后,我們要說明的是,我們對你的使用容器技術(shù)的經(jīng)歷,對容器技術(shù)的需求以及想法(甚至你在github中提出的每個請求)都很感興趣。不要猶豫,請聯(lián)系我們,我們會盡所能舉辦盡量多的會議和Meetup。我們期望能與你聯(lián)系。讓我們一起討論關(guān)于容器技術(shù)如何給你的工作帶來改變。期待與你交流.

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 九龙坡区| 南宫市| 竹山县| 嫩江县| 平陆县| 昭觉县| 辽阳市| 青岛市| 砀山县| 财经| 平山县| 邻水| 濉溪县| 阳高县| 万载县| 额济纳旗| 娄烦县| 会理县| 新民市| 黑水县| 买车| 星座| 忻州市| 宁国市| 盐津县| 苗栗市| 巴青县| 澄迈县| 宜丰县| 肥东县| 吉林省| 常州市| 称多县| 当阳市| 五寨县| 民县| 南华县| 翼城县| 平潭县| 嘉兴市| 苍山县|