閱讀863 返回首頁    go 小米 go 小米5


容器間的互相發現__服務發現和負載均衡_用戶指南_容器服務-阿裏雲

容器服務為集群內的服務和容器提供多種服務發現方式,可以通過容器名,link,hostname 等進行發現。

通過容器名

容器服務不僅可以通過容器的 IP 進行訪問,還可以通過網絡中其他容器的容器名進行訪問,通過 容器網絡互連 中的例子,您可以在 cross-host-network-test2 的容器中通過 cross-host-network-test1 的容器名進行訪問。

如果在編排文件中不指定 container_name 的話,默認的容器名為 {project-name}_{service-name}_{container-index},所以在連接管理終端後,您可以通過另外一個服務的容器名進行訪問。

通過 link

容器服務支持編排模板服務間的 link,服務間的 link 可以將一個服務的容器 link 到另外一個服務的容器中,而容器中可以通過 link 進來的服務別名訪問到依賴的容器,並且在依賴的容器的 IP 變化時可以動態的更新別名解析的 IP。具體的例子可以參考容器服務示例編排中的 WordPress 編排,其中 WordPress 中 Web 服務 link db:mysql 的服務到容器內,容器內部就可以通過 MySQL 的域名訪問到 db 服務的容器。

通過 hostname

如果在編排模板的服務中定義了 hostname 的配置,則在集群中便可以通過這個 hostname 訪問到這個容器。

例如:

  1. testhostname:
  2. image: busybox
  3. hostname: xxserver
  4. command: sleep 100000
  5. tty: true

那麼,集群中就可以通過 xxserver 解析並訪問到這個服務的容器,並當這個服務在有多個容器時,通過這個域名訪問還可以做到一定的負載均衡的作用。

另外,如果服務沒有配置 hostname 的話,容器服務會把容器的容器名作為容器內部的 hostname;如果有應用需要在容器內知道自己的容器名,用於服務的注冊,比如 Eureka Client,需要注冊一個可被訪問的地址到 Eureka Server,容器內的進程可以獲取到容器名用於服務注冊,並讓其他的服務調用者通過容器名互相訪問。

最後更新:2016-11-23 16:45:26

  上一篇:go 負載均衡路由__服務發現和負載均衡_用戶指南_容器服務-阿裏雲
  下一篇:go 簡單路由藍綠發布策略__發布策略_用戶指南_容器服務-阿裏雲