天天看點

Kubernetes讓Docker容器如虎添翼

本文講的是<b>Kubernetes讓Docker容器如虎添翼</b>【編者的話】本文主要講述作者看好Kubernetes與Docker結合的未來。

一年前,我開始學習Docker容器。幾個月下來,我意識到我正在學習的是一項革命性技術,原因如下:

快速學習:對于任何我想學習的工具、架構或者程式設計語言,按需使用Docker容器可以加快我探索性學習環境的搭建。

按需自助服務環境:Docker容器可以用來搭建按需自助服務的開發和測試環境。對于開發和測試人員來說,這是巨大生産力的助推器。

自動部署:使用Docker容器可以搭建Jenkins、代碼倉庫等工具,在開發、測試以及UAT(User Acceptance Test,使用者驗收測試)服務環境中進行自動部署。

對于Docker容器而言,我覺得以下功能是需要的:

管理app叢集:規模化多個Docker容器來滿足應用程式的需求。例如,一個由Flume、Kafka以及Spark容器組成的資料管道。現在的需求是,通過擴大管道增加更多的Flume、Kafka以及Spark容器來處理更大的資料集。或者說通過叢集配置啟動更多的應用程式來處理更大的資料集。例如,Flume叢集傳輸資料到Kafka叢集。

容器編排:根據按需服務需求管理容器,啟動或者停止運作着應用程式的容器。例如,啟動或停止Jenkins叢集按需進行CI工作。

元件重新打包:有時候想重新打包已有應用程式,然後将他們一起啟動來測試不同應用程式的配置。

對于這些需求,使用Kubernetes能夠很容易滿足。

當我潛心深入Kubernetes的世界時,我發現這是最近一段時間我使用過的最棒的工具之一。毫無疑問它對于使用Docker容器的DevOps專業人員來說是如虎添翼。

以下是Kubernetes的幾個關鍵子產品,通過這些子產品能夠簡化我将多個容器配置在一起的過程,并且不論何時當我想将這些容器作為一個統一服務時,都能保持特定數量的副本。

Pods:Pod可以被看作是一組由一個或者多個同地協作且共同管理的容器,這些容器共享相同的命名空間以及volume。每一個pod都關聯了一個IP位址,進而能夠讓外界通路運作在pod中的應用程式。Pod能夠用于同地協作且共同管理多個共享volume的Docker容器。

Services:Services給pod提供了更高層次的抽象。如果一個或者多個pod需要依賴其他pod,這就需要通過service來完成。設想通過Kubernetes的service來暴露一個Kafka叢集。

Replication controllers: Replication controllers在任何時候都保持着一定數量的pod副本。這意味着如果有一個或者多個pod停止服務,控制器能夠合适地啟動相同數量的pod。

在原生雲應用程式的發展趨勢下容器和微服務成為了關鍵元件,而Kubernetes被認為是在不同層次共同管理原生雲應用程式的最關鍵元件。事實上,CNCF.io也已經意識到Kubernetes是滿足原生雲應用程式的首選工具。并且,随着目前Docker容器逐漸成為最流行的容器化技術,它們的結合隻會讓彼此變得更加強大,超越其他任何需要容器間協同工作的原生雲結構編排工具。

<b>原文釋出時間為:</b>2016-10-06

<b>本文作者:</b>肖遠昊

<b>本文來自雲栖社群合作夥伴Dockerone.io,了解相關資訊可以關注Dockerone.io。</b>

<b></b>

<b>原文标題:</b><b>Kubernetes讓Docker容器如虎添翼</b>