溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Docker的十大問(wèn)題是什么

發(fā)布時(shí)間:2021-12-13 16:17:14 來(lái)源:億速云 閱讀:117 作者:iii 欄目:安全技術(shù)

本篇內(nèi)容主要講解“Docker的十大問(wèn)題是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Docker的十大問(wèn)題是什么”吧!

1. 最適合容器的使用場(chǎng)景是什么?

在生產(chǎn)環(huán)境中,最適合容器化部署的理想應(yīng)用類型應(yīng)該是微服務(wù)。微服務(wù)是一個(gè)聚焦的任務(wù),它只代表整個(gè)應(yīng)用程序中很小部分。因?yàn)槲⒎?wù)專注于單個(gè)任務(wù),所以它可以獨(dú)立于應(yīng)用程序的其它部分進(jìn)行伸縮擴(kuò)展。此外,由于微服務(wù)是高內(nèi)聚和松散耦合的,因此可以彼此獨(dú)立部署和發(fā)布。

此外,使用容器基礎(chǔ)設(shè)施構(gòu)建微服務(wù)可以更快、更好地實(shí)現(xiàn)其優(yōu)勢(shì)。只要面向外部的API不破壞應(yīng)用兼容性,軟件開(kāi)發(fā)人員就可以快速迭代并改進(jìn)整個(gè)微服務(wù),且不會(huì)影響其它開(kāi)發(fā)人員的微服務(wù)。但是,大多數(shù)傳統(tǒng)的企業(yè)應(yīng)用程序并不符合微服務(wù)體系結(jié)構(gòu),所以也不是所有企業(yè)都適合使用微服務(wù)。

2. 容器部署時(shí)需要考慮的關(guān)鍵因素都有哪些?

(1)UI界面管理和API

管理用戶界面UI,包括那些基于API的圖形化UI(即外部系統(tǒng)直接使用API訪問(wèn)系統(tǒng))。

(2)鏡像倉(cāng)庫(kù)

公共鏡像倉(cāng)庫(kù),例如Docker Hub提供公共管理的容器鏡像倉(cāng)庫(kù)。許多容器管理系統(tǒng)都提供私有鏡像倉(cāng)庫(kù),企業(yè)組織可以在其中管理自己的鏡像。

(3)編排和調(diào)度

編排層能夠使容器以所需的狀態(tài)運(yùn)行,并提供滾動(dòng)更新和回滾的功能。當(dāng)然,Kubernetes已經(jīng)成為容器編排的實(shí)際標(biāo)準(zhǔn)。

(4)容器運(yùn)行時(shí)

容器運(yùn)行時(shí),可以讓集群節(jié)點(diǎn)在鏡像倉(cāng)庫(kù)中獲取容器鏡像,還可生成正確的文件結(jié)構(gòu)在主機(jī)上運(yùn)行容器,也可與網(wǎng)絡(luò)和存儲(chǔ)插件交互,也能創(chuàng)建、啟停容器。

(5)安全管控

通過(guò)安全組件執(zhí)行安全策略,包括秘鑰管理、安全掃描、圖像簽名、網(wǎng)絡(luò)隔離和加密、以及基于角色的訪問(wèn)控制(RBAC)等。

(6)持續(xù)監(jiān)控

監(jiān)控程序能夠提供集群節(jié)點(diǎn)、容器和微服務(wù)級(jí)別的可視化能力。

(7)DevOps工作流

DevOps對(duì)于容器部署并不重要,但是它們通常一起使用,例如,DevOps工具、CI/CD管道工具和容器鏡像生成器等工具需要協(xié)同工作。

3. 是否可以在Windows、VMware環(huán)境運(yùn)行容器?

Windows容器生態(tài)系統(tǒng)還不夠成熟,無(wú)法廣泛應(yīng)用于生產(chǎn)環(huán)境中。Windows容器缺乏容器編排工具的支持。例如,最新的Kubernetes軟件版本只提供了對(duì)Windows容器的beta支持。此外,容器支持的Windows應(yīng)用程序非常少。Windows服務(wù)器對(duì)身份驗(yàn)證、安全和網(wǎng)絡(luò)的支持也非常有限的。現(xiàn)有的幾個(gè)組件要么處于“beta”版本,要么處于“預(yù)覽”版本。當(dāng)然,盡管有這些限制,針對(duì)特定場(chǎng)景也是可以使用Windows容器,例如內(nèi)部開(kāi)發(fā)等場(chǎng)景,通過(guò)容器可以獲得敏捷性、可移植性和成本優(yōu)勢(shì)。

VMware的vSphere可將Docker引擎與vSphere集成,為容器在輕量級(jí)VM中運(yùn)行提供了途徑。此外VMware還提供了用于安全存儲(chǔ)鏡像的容器管理門(mén)戶和私有倉(cāng)庫(kù)。

4. 應(yīng)該選擇CaaS、Kubernetes還是BYO容器管理解決方案

市場(chǎng)上有多種產(chǎn)品允許企業(yè)大規(guī)模部署容器。這些產(chǎn)品為應(yīng)用程序開(kāi)發(fā)人員提供的抽象程度不同。最抽象的產(chǎn)品是容器即服務(wù)產(chǎn)品(CaaS),這類產(chǎn)品以前大多是PaaS產(chǎn)品,比如Cloud  Foundry和OpenShift。這些CaaS產(chǎn)品從開(kāi)發(fā)人員那里抽象出基礎(chǔ)設(shè)施的細(xì)節(jié),并以結(jié)構(gòu)化方式提供應(yīng)用程序工具。而B(niǎo)YO容器管理方案,則提供了最少的抽象和最大的靈活性,但是增加了復(fù)雜性。

  • BYO:盡量避免使用BYO,除非在極少數(shù)情況下。因?yàn)楹苌儆薪M織有能力實(shí)現(xiàn)它。對(duì)于想要BYO的組織,可以選擇集成一些快速移動(dòng)的開(kāi)源產(chǎn)品。

  • Kubernetes:至少在概念上了解基礎(chǔ)設(shè)施并且能夠動(dòng)手實(shí)踐,那么選擇一個(gè)相對(duì)靈活K8S發(fā)行版是一個(gè)可行方案。有些CaaS產(chǎn)品提供了一些開(kāi)發(fā)人員工具的選項(xiàng),同時(shí)也為開(kāi)發(fā)人員提供了更直接地使用容器編排、調(diào)度組件的選項(xiàng)。

  • PaaS:如果剛剛進(jìn)入微服務(wù)開(kāi)發(fā),那么就使用PaaS提供的服務(wù)。

5. 容器技術(shù)會(huì)比虛擬機(jī)技術(shù)(VM)更不安全嗎?

容器技術(shù)本身并非不安全。事實(shí)上,以防止由于其它容器的破壞而遭受攻擊,  容器中每個(gè)應(yīng)用程序和用戶是相互隔離的。所以確保共享主機(jī)OS內(nèi)核的完整性是至關(guān)重要的,并確保在主機(jī)上容器的相互隔離。此外,需要監(jiān)控和保護(hù)容器間通信,而傳統(tǒng)的安全工具在這方面大多是無(wú)效的。

采用容器技術(shù)時(shí)候,建議考慮以下3點(diǎn):

  • 使用一個(gè)經(jīng)過(guò)加固的操作系統(tǒng),通常是一個(gè)“瘦客戶機(jī)操作系統(tǒng)”,它可以限制攻擊面,并通過(guò)一個(gè)嚴(yán)格的和自動(dòng)化的補(bǔ)丁管理系統(tǒng)對(duì)其進(jìn)行補(bǔ)充。

  • 在容器的構(gòu)建和運(yùn)行階段采取控制手段,例如在軟件開(kāi)發(fā)生命周期過(guò)程中對(duì)軟件進(jìn)行掃描,及早發(fā)現(xiàn)漏洞。

  • 通過(guò)使用細(xì)粒度容器安全工具主動(dòng)檢測(cè)和監(jiān)控異常行為,例如青藤蜂巢等容器安全產(chǎn)品可以提供容器和服務(wù)器級(jí)別的安全可視化圖,并有助于防止惡意應(yīng)用程序流量。

6. 容器是否可以處理敏感數(shù)據(jù)和應(yīng)用程序?

通過(guò)聚焦于容器安全的方法進(jìn)行容器部署,同時(shí)結(jié)合現(xiàn)有加密等安全工具,那么容器就可用于處理敏感數(shù)據(jù)和應(yīng)用程序。此外,還可以使用一些容器安全廠商的方案確保容器的安全,例如青藤云安全的容器解決方案等。當(dāng)然,要使此方法成功,安全團(tuán)隊(duì)必須盡早參與為敏感數(shù)據(jù)部署容器的過(guò)程。

7. 容器是否適合COTS應(yīng)用?

現(xiàn)在越來(lái)越多的軟件供應(yīng)商將容器化部署作為產(chǎn)品一個(gè)選項(xiàng)。有的供應(yīng)商采用敏捷開(kāi)發(fā)模式滿足容器化部署方式,將其納入他們編寫(xiě)、測(cè)試和交付軟件的一部分。這些應(yīng)用都被重構(gòu)為天然適配容器的微服務(wù)。但也有供應(yīng)商,是因?yàn)楹ε虏惶峁┤萜骰渴鸸δ軐⑹ナ袌?chǎng),故而勉強(qiáng)提供容器部署,這種情況下COTS多數(shù)不適合容器,因?yàn)檫@些應(yīng)用程序本質(zhì)上可能仍然是整體的,或者應(yīng)用程序沒(méi)有獨(dú)立可擴(kuò)展屬性。此外,如果企業(yè)本身沒(méi)有現(xiàn)有的容器基礎(chǔ)設(shè)施來(lái)管理,那么COTS應(yīng)用程序的容器部署可能不適合企業(yè)。

在絕大多數(shù)情況下,應(yīng)該避免在沒(méi)有供應(yīng)商明確支持的情況下封裝COTS應(yīng)用程序,避免出差錯(cuò)。

8. Foundry、OpenShift等產(chǎn)品和容器之間有什么關(guān)系

Cloud  Foundry是一個(gè)應(yīng)用程序PaaS平臺(tái),它支持多種框架、語(yǔ)言、運(yùn)行時(shí)環(huán)境、云平臺(tái)及應(yīng)用服務(wù),使開(kāi)發(fā)人員能夠在幾秒鐘內(nèi)進(jìn)行應(yīng)用程序的部署和擴(kuò)展,無(wú)需擔(dān)心任何基礎(chǔ)架構(gòu)的問(wèn)題。因此,也是一個(gè)相對(duì)固定的容器框架。之所以這樣描述,是因?yàn)樗穷A(yù)先配置的,以便于安裝和維護(hù)。

OpenShift是紅帽的云開(kāi)發(fā)平臺(tái)即服務(wù)(PaaS),能使開(kāi)發(fā)人員創(chuàng)建、測(cè)試和運(yùn)行他們的應(yīng)用程序,并且可以把它們部署到云中。OpenShift廣泛支持多種編程語(yǔ)言和框架,如Java、Ruby和PHP等。另外它還提供了多種集成開(kāi)發(fā)工具如Eclipse  integration,JBoss Developer Studio和 Jenkins等。

企業(yè)在評(píng)估面向容器場(chǎng)景的PaaS產(chǎn)品時(shí),重需要重點(diǎn)注意其提供服務(wù)范圍,區(qū)分它們自身是否支持容器場(chǎng)景,還是需要自定義配置或者需要通過(guò)第三方組件服務(wù)才能支持容器場(chǎng)景。

9. 是否應(yīng)該重構(gòu)應(yīng)用程序,以更好地支持容器?

在生產(chǎn)中,如果通過(guò)部署容器來(lái)支持微服務(wù)的彈性工作負(fù)載時(shí),容器將會(huì)帶來(lái)最大的幫助。因此是否要重構(gòu)應(yīng)用程序以支持容器化部署,這取決于企業(yè)組織是否計(jì)劃在開(kāi)發(fā)測(cè)試、生產(chǎn)等階段中使用容器。

另外,企業(yè)在決定重構(gòu)應(yīng)用程序以更好支持容器,應(yīng)該首先重構(gòu)無(wú)狀態(tài)部分應(yīng)用程序,例如web應(yīng)用程序前端部分,將其重構(gòu)為微服務(wù),以便能夠支持使用容器。此外,企業(yè)可以通過(guò)微服務(wù)體系結(jié)構(gòu)來(lái)構(gòu)建新的應(yīng)用程序,避免以后重構(gòu)。

10. 在公有云中部署容器服務(wù)效果如何?

云IaaS服務(wù)提供商提供完全托管服務(wù),而不需要處理虛擬機(jī)或底層基礎(chǔ)設(shè)施,這種趨勢(shì)現(xiàn)在也被應(yīng)用到容器中,例如,AWS  Fargate提供了抽象底層基礎(chǔ)設(shè)施的托管容器服務(wù),以便開(kāi)發(fā)人員關(guān)注需要執(zhí)行的任務(wù),而不是Kubernetes集群中的實(shí)例數(shù)量。

到此,相信大家對(duì)“Docker的十大問(wèn)題是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI