閱讀554 返回首頁    go 魔獸


lb__服務編排文檔_用戶指南_容器服務-阿裏雲

通過自定義阿裏雲負載均衡 nat 映射的方式來暴露服務端口到公網或者到內網。需要升級到最新版本的 Agent 方能支持該擴展能力標簽。

標簽格式如下,帶$的變量為占位符。

  1. aliyun.lb.port_$container_port:$scheme://$[slb_name|slb_id]:$slb_front_port

示例:

  1. web:
  2. image: wordpress:4.2
  3. ports:
  4. - 7777:80
  5. - 9999:9999
  6. - 8080:8080
  7. - 53:53/udp
  8. links:
  9. - db:mysql
  10. labels:
  11. aliyun.lb.port_80: https://slb_example_name:8080
  12. aliyun.lb.port_9999: tcp://slb_example_name:9999
  13. aliyun.lb.port_8080: https://14a7ba06d3b-cn-hangzhou-dg-a01:80
  14. aliyun.lb.port_53: udp://14a7ba06d3b-cn-hangzhou-dg-a01:53
  15. db:
  16. image: mysql
  17. environment:
  18. - MYSQL_ROOT_PASSWORD=password

要使用好自定義負載均衡的 lb 標簽,您需要理解請求路由過程中的 3 個端口,即負載均衡的前端端口,負載均衡的後端端口(也就是 ECS vm 的端口),最後就是容器的端口。以第一個lb標簽aliyun.lb.port_80為例,從左往右看,在 key 中的 80 端口指的是容器要暴露的端口,後麵的 8080 端口指的是負載均衡要暴露的前端端口。負載均衡的後端端口是 ECS vm 的端口,可從標簽 ports 的主機:容器端口映射中獲取到,由此,您可以查到容器端口 80 對應的主機端口是 7777,因此確定了負載均衡轉發的後端端口是 7777 端口。因此第一個標簽說明了當向服務 Web 發起請求時,首先通過負載均衡前端的 8080 端口進入,轉發到後端主機 vm 的 7777 端口,然後再根據端口映射 ports 的聲明,請求最終從容器端口 80 進入,交由容器內的 WordPress 進程提供服務。接下來的標簽以此進行相同的解釋。該標簽配置的負載均衡均不經過集群內置的 routing 服務,請求的路由由您自己控製。

標簽聲明的格式要求:

  • 指明負載均衡實例時,可以使用負載均衡實例的名稱或者負載均衡實例的 ID。
  • 負載均衡實例名稱的限製為 1~80 個字符,允許包含字母、數字、連字符(-)、正斜杠(/)、點號(.)、下劃線(_)。
  • 容器端口限製為 1~65535。
  • 負載均衡前端端口的限製為 1~65535。

帶有自定義負載均衡 nat 映射的服務部署限製:

  • 您需要自己創建負載均衡實例,對負載均衡實例命名,並創建對應監聽端口,然後以擴展標簽的方式提供負載均衡實例的名稱 $slb_name 或者 $slb_id,以及要暴露的端口,使用的協議 $scheme(可能的值有 tcphttphttpsudp),映射的容器端口 $container_port,指定負載均衡實例的前端端口 $slb_front_port
  • 您必須指定服務要暴露端口的主機和容器端口的映射,通過 Dockerfile 標準的標簽 ports 指定,注意必須指定主機端口,且與其他服務映射的主機端口不能衝突,需要主機的端口用於負載均衡綁定後端的 ECS vm 機器。
  • 一個服務隻能使用一個或者多個負載均衡實例進行服務端口的暴露,因多個服務會分布在不同的 vm 後端,多個服務不能共享使用同一個負載均衡實例。
  • 部署了帶有負載均衡 nat 映射的服務的主機使用相同的主機:容器端口映射,因此這些服務在每台 vm 主機上隻有一個實例。
  • 支持的負載均衡協議 $scheme 包括tcp、http、https、udp協議。
  • 您需要自行在阿裏雲負載均衡官方控製台創建監聽的端口。
  • 請自行登錄負載均衡官方控製台對使用在容器服務中的負載均衡實例進行具體的配置修改,例如帶寬限製等配置。
  • lb 標簽的價值在於您不需要自行綁定負載均衡後端的 ECS vm 服務器, 隻需要配置好相應的標簽,,就會幫助您完成綁定後端的操作。因此,除了綁定負載均衡後端的操作,您對負載均衡的設置和修改需要自行在阿裏雲負載均衡管理控製台上完成。
  • 容器服務會幫助您生成一個 RAM 子賬戶(需要您開通 RAM),使用這個具有部分負載均衡權限(沒有創建和刪除負載均衡的權限)的賬號幫助您管理在容器服務中使用的負載均衡實例,例如綁定集群中某些節點作為服務的後端。
  • 在服務的整個生命周期內,lb標簽會一直生效,除非服務被刪除,或者lb標簽刪除之後重新部署了服務,在此期間,配置在lb標簽內的SLB實例不能混用。

最後更新:2016-12-20 14:43:16

  上一篇:go routing__服務編排文檔_用戶指南_容器服務-阿裏雲
  下一篇:go 日誌__服務編排文檔_用戶指南_容器服務-阿裏雲