如何將swarm中的service的端口暴露出去?


將swarm中的service端口暴露出去,供集羣外的服務進行訪問的 2 種方法:

 

1、路由網格

 

也就是在docker create service時,使用下面的參數

 

--publish published=<published_port>,target=<service_port>

 

 

2、將task端口直接映射到節點主機上

 

在創建service時,使用如下的參數,比上面多了個mode=host

 

--publish mode=host,published=<published_port>,target=<service_port>

 

 

這樣,外部的請求就可以通過主機的端口對service中的服務進行訪問了。

 

3、兩者的區別?

 

  • 路由網格,使用任意的主機的端口都可以訪問
  • 路由網格,節點上不一定必須運行task (比如:5個節點,一個實例,但是通過任意的節點都能訪問)

 

  • 直接端口映射,節點無task,無法訪問 (比如:5個節點,一個實例,只有在節點所在的主機上才能訪問這個服務,其他的節點無法訪問)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章