2016-06-15 36 views
39

我一直在挖掘Kubernetes文檔數小時。我理解核心設計以及服務,控制器,豆莢等的概念。Kubernetes可以像Docker Compose一樣使用嗎?

但是,我不明白的是我可以聲明性地配置集羣的過程。也就是說,我可以編寫一個配置文件(或其中的一組文件)來定義雲部署的構成和擴展選項。我希望能夠聲明哪些容器是我想要的,在哪些容器中,它們將如何進行通信,如何進行擴展等,而無需運行大量cli命令。

有沒有docker-compose Kubernetes的功能?

我希望我的應用程序在git中被定義爲受版本控制,而無需依賴手動cli交互。

這是可能做到一個簡潔的方式嗎?有沒有比官方文件更清晰的參考?

回答

22

如果你還在尋找,也許這工具可幫助:https://github.com/kelseyhightower/compose2kube

您可以創建一個文件撰寫:

# sample compose file with 3 services 
web: 
    image: nginx 
    ports: 
    - "80" 
    - "443" 
database: 
    image: postgres 
    ports: 
    - "5432" 
cache: 
    image: memcached 
    ports: 
    - "11211" 

然後使用工具把它轉換爲kubernetes對象:

compose2kube -compose-file docker-compose.yml -output-dir output 

這將創建這些文件:

output/cache-rc.yaml 
output/database-rc.yaml 
output/web-rc.yaml 

然後,您可以使用kubectl將它們應用於kubernetes。

+7

請不要添加鏈接只有答案。鏈接可以消失。 –

+3

嗨艾哈邁德,歡迎來到堆棧溢出。正如@ KurtVandenBranden所說,只有鏈接的答案本身並不是很好,例如引用鏈接文章的重要部分,使其成爲一個有用的答案,即使在本網站中也很重要。有關更多指導,請參閱[答案]。 –

7

Kubernetes肯定有自己的YAML(如圖「Deploying Applications‘)

但作爲’Docker Clustering Tools Compared: Kubernetes vs Docker Swarm」,它不是寫(只)的泊塢窗,它有自己的系統。

雖然您可以使用docker-compose來啓動Kubernetes,如「vyshane/kid」中所示:它不會屏蔽某些kubectl commands cli in scripts(可以進行版本控制)。

+0

對於託管部署(即Google的Container Service)我不認爲「docker-compose-kubernetes」適用。 (這也是一個棄用的項目。)我想我想知道的是大型組織管理部署的情況。是否有一個kubernetes管理軟件包,我可以將配置yaml提供給? –

+0

@DonScott好點。我已經用未棄用的項目更新了答案。 – VonC

相關問題