將此篇文章跟 Facebook 上的朋友分享將此篇文章跟 Plurk 上的朋友分享將此篇文章跟 Twitter 上的朋友分享列印轉寄
2019/3/11

容器技術條理說分明 由淺入深QA快問快答

基礎知識打底必讀 Docker面試100題(二)

鄭淳尹
本系列文章根據Ajeet Singh Raina所寫的「Top 100 Docker Interview Questions」文章,翻譯轉載成一百個問題與答案,並Docker相關面試問題分成初級、中級和進階級。本文為初級的第二部分,很適合正在準備Docker相關工作的職缺面試或是想要吸收Docker相關知識的IT從業人員。


Q53:可以使用Docker Compose建構Swarm/Kubernetes叢集嗎?

是的,可使用docker stack deploy指令,配合docker-compose.yml檔案和stack名稱在Kubernetes上部署技術推疊,例如:

 
$ docker stack deploy --compose-
file /path/to/docker-compose.yml
mystack


以下指令可列出mystack技術堆疊的所有服務:

 
$ docker stack services mystack


亦可使用kubectl get services指令來查看所部署的服務:

 
$ kubectl get svc,po,deploy


Q54:docker stack deploy指令代表什麼意義?

docker stack deploy是一個部署新技術堆疊或更新現有技術堆疊的指令,技術堆疊(Stack)是在特定環境中建構出應用系統的多個服務集,技術堆疊文件以YAML格式來表示,它定義了一個或多個服務,類似Docker Compose的docker-compose.yml文件,且有擴充一些額外的功能,如圖11所示。


▲圖11 docker stack deploy指令使用範例。


Q55:請列出Docker EE 2.0的主要元件?

Docker EE不僅僅是一個容器協同調度解決方案,也是一套完整的軟體生命週期管理解決方案,可針對在各種的基礎架構平台上實現傳統應用程序和微服務的現代化。

它是容器即服務(Containers-as-a-Service,CaaS)平台,協助IT管理和保護跨本地端和雲端的不同基礎架構上之各種應用程序。Docker EE為企業應用系統運行在Linux、Windows作業系統和雲端服務商,提供了整合、經過驗證測試和認證的平台,它與底層基礎架構緊密結合,以便提供原生、輕易安裝體驗和優化過的Docker環境。

Docker EE 2.0 GA由三個主要元件所組成,共同構成了一套完整的軟體供應鏈,從映像檔建立到安全映像檔儲存庫,最後是安全的映像檔部署。

‧Universal Control Plane 3.0.0(應用系統和叢集管理):藉由協同運作管理工具,如Kubernetes和Swarm,以映像檔來部署應用程式,UCP是針對高可用性(HA)所設計,可將多個UCP Manager節點連接到叢集,若有一個Manager節點發生故障,另一個Manager節點會自動替代它,而不會影響叢集運作。

‧Docker Trusted Registry 2.5.0(映像檔簽章儲存庫):由Docker提供的營運級映像檔儲存解決方案。

‧EE Engine 17.06.2:商業支持的Docker Engine,用於建立映像檔並在Docker容器中運行。

Q56:請解釋在Swarm模式下HA的概念?

HA意味著高可用性(High Availability),高可用性是一項功能,如圖12所示,當中可以並列執行多個應用系統實例來處理額外增加的負載或故障情況,這兩種情境非常適合Docker Swarm,那是Docker附帶的內建協同調度器,以這樣方式部署你的應用系統,將改善正常運行的時間,進而讓你變成快樂的系統管理員。


▲圖12 HA架構示意圖。


為了示範在Docker Swarm中建立高可用性容器,這裡使用nginx映像檔將Docker服務部署到Swarm,這可使用先前描述過的docker swarm create指令來完成:

 
$ docker service create --name
nginx --publish 80:80 nginx


Q57:請解釋Docker Swarm模式下的網狀式路由是什麼?

網狀式路由(Routing Mesh)是利用Load Balancer概念的一項功能,為了要對外提供的服務賦予全域公開連接埠,網狀式路由使用基於連接埠的服務探索和負載平衡,因此欲從叢集外部存取任何服務,便只需要公開連接埠並透過發布之連接埠來存取其服務。

Docker Engine的Swarm模式可以輕鬆發布服務連接埠,讓Swarm叢集以外可存取這些可用資源,所有節點都會參與到Ingress網狀式路由,網狀式路由可讓叢集中的每個節點,接收任何運行在Swarm上公開服務之連線,即便那個節點上沒有服務正在運行,網狀式路由會將所有傳入的請求繞送到可用節點所發布的連接埠,對應到運作中之容器,如圖13所示。


▲圖13 Swarm模式的Routing Mesh示意圖。


這篇文章讓你覺得滿意不滿意
送出
相關文章
看清微服務架構發展脈絡 軟體開發流程革新求變
趨勢科技推出 DevOps 防護及擴充需求的雲端原生防護
專家知識演算分析 主動追蹤微服務運行
基礎知識打底必讀 Docker面試100題
走入軟體架構演進史 見證微服務發展今昔
留言
顯示暱稱:
留言內容:
送出