2017-04-21 45 views
0

Docker Task是否可能知道哪個任務編號以及某個特定服務正在運行多少個任務?Swarm中的Docker Task可以知道哪個實例號或總共有多少個實例?

E.g.我希望在工作隊列中有一個適用於不同範圍的服務。任何一個服務實例(即任務)的作業範圍取決於任務總數和當前任務的總數。因此,如果這是第20項任務中的第5項,那麼它將適用於一個範圍的工作,但如果它是20項中的第12項任務,則它將在不同的範圍內工作。

我希望有一個DOCKER_SERVICE_TASK_NUMBER環境變量或類似的東西。

謝謝!

回答

0

我已經看過這個請求了幾次,所以你並不孤單,但它不是碼頭羣模式的當前特性。由於需要支持擴展服務以及swarm服務的其他更新,因此實現這一點並不重要。如果您縮小服務範圍,並且碼頭工清理了5中的任務2,因爲它位於最繁忙的節點上,那麼您將處於起始計數小於當前計數並且當前編號方案存在漏洞的奇怪情況。

如果您有此要求,那麼像consul或etcd這樣的外部服務發現工具可能會有用。您還可以嘗試利用容器內可用的tasks.$service_name DNS條目實施您自己的解決方案。這就爲您提供了所有其他提供此服務的容器的IP,就像您在羣模式VIP抽象出來之前使用循環負載均衡器一樣。