我正在使用docker構建一個微服務項目。Docker上的微服務 - 架構
我的一個微服務是一個應該從各種來源獲取數據的監聽器。
我想要實現的是能夠啓動和停止從源動態獲取數據。
例如在該圖中,我有3個源極連接到3個碼頭工人。
我的問題開始,因爲我需要創建另一個碼頭實例,當一個新的來源可用。在這個例子中,讓我們說源#4現在可用,我需要得到他的數據(我知道什麼時候有新源可用),但我希望它自動縮放(用於收聽源#4信息)
I提出了兩種解決方案,每種解決方案都有優點和缺點:
1)創建一個運行偵聽器服務的大量docker的docker池,並且每當有新的源可用時發送消息(使用rabbitmq但我認爲較少相關)到可用碼頭工人開始獲取數據。
在這個解決方案中,我有點擔心沒有理由運行Docker鏡像的內存消耗 - 但這不是一個非常複雜的解決方案。
2)每當一個新的源變得可用創建一個新的泊塢窗(用不同的環境變量)
有了這個解決方案,我有創造泊塢窗的問題。 在這一刻我已經實現了這一點,但啓動docker的服務(讓我們稱之爲管理器)只是一個常規的nodejs應用程序,它在同一臺服務器上執行命令 - 我還需要它在docker容器中。
所以這裏的問題是我無法管理從主碼頭創建一個ssh連接來創建我的新Docker。
我不太確定我的兩個解決方案是否有進展,並且會真正感謝我的問題的任何建議。
謝謝您的回答,我會努力讓我的問題更加清晰。我的源代碼是動態更新(添加和刪除),所以我需要我的偵聽器動態擴展,是否可以使用'Kubernetes'?如果是的話,我會很感激這個問題的參考(我在我的服務器上有一個openshift環境) – Yogevnn
嗨,是的,如果你按照我的第二個鏈接的答案,你會看到這樣的縮放命令:'kubectl scale deployment nginx-部署--replicas 10' –
謝謝!我剛剛檢查過,看起來不錯。關於它的一些問題,我可以從不同的Docker運行這個命令嗎?比方說,我將有一個dockerManager來監聽RabbitMQ,當有新的源代碼可用時,dockerManager將使用此命令來縮放Pod。還有一個問題,我可以在創建pod時使用環境變量嗎? (順便說一句,我使用nodejs) – Yogevnn