當您使用EDAS將應用托管到Kubernetes上,并且需要統一流量入口時,您可以為EDAS應用綁定CLB實例,將應用Pod作為CLB的后端,由CLB根據轉發策略將流量分發到不同的應用Pod。
背景信息
EDAS支持以容器的方式托管應用,EDAS代為構建鏡像并部署到Kubernetes集群,有效簡化流程降低使用門檻。阿里云上K8s集群中部署的CCM(Cloud Controller Manager)組件已支持將集群內一個應用的多個容器副本無縫對接到CLB后端,并支持應用進行彈性擴縮容時,自動將應用副本添加到CLB監聽后端或從后端移除。
使用CLB的兩種方式:
在EDAS中部署的應用,可以在應用總覽頁選擇配置新建CLB,使用由EDAS代購的CLB。通過這種方式使用CLB不支持在CLB控制臺直接修改該CLB的配置。
在EDAS中復用已有CLB,在應用總覽頁選擇已經在CLB控制臺創建的CLB,配置EDAS應用端口監聽,在暴露EDAS應用同時不影響CLB已有監聽。詳細操作,請參考復用負載均衡CLB。
約束限制
禁止從負載均衡控制臺直接修改EDAS代購的CLB實例的監聽配置(含監聽和證書),這可能導致CLB控制臺修改的配置回退,引發應用入口相關的故障。
若復用CLB來暴露K8s上EDAS應用,則創建的CLB要和K8s集群在同一個VPC內。
新建CLB或復用CLB的使用限制及配額,請參考使用限制。
前提條件
您已成功在EDAS控制臺導入Kubernetes集群并部署了一個EDAS應用。
使用JAR包或WAR包部署應用。具體操作,請參見在容器服務K8s集群中使用JAR包或WAR包部署應用。
使用鏡像部署應用。具體操作,請參見在K8s集群中使用鏡像部署Java微服務應用。
將K8s中Deployment轉化為EDAS應用。具體操作,請參見使用控制臺轉化Deployment為EDAS應用。
單應用獨享負載均衡實例
使用CLB可以為一個應用的多個后端副本提供一個穩定的對外訪問地址,并進行流量負載均衡。可以使用不同CLB為一個應用的不同程序端口提供對外訪問,且不同的CLB可以配置不同的實例規格,以支持不同服務的不同業務流量需求。也可以使用多個CLB綁定同一組后端副本,以擴展單個CLB的規格限制,分擔流量壓力。
K8s上EDAS應用支持使用公網CLB和私網CLB組合方式提供應用訪問。能夠使用公網CLB提供Web應用公網訪問,使用私網CLB提供后端其他應用間內網訪問。您可以根據業務實際需求配置各自的應用及負載均衡。
本文以公網CLB為例進行介紹。
登錄EDAS控制臺。
在左側導航欄,單擊應用管理 > 應用列表,在頂部菜單欄選擇地域并在頁面上方選擇微服務空間,在集群類型下拉列表中選擇K8s集群,然后單擊目標應用名稱。
在基本信息頁面中基本信息頁簽的應用設置區域,單擊負載均衡(公網)右側的添加。
在彈出的頁面中,選擇CLB并完成端口配置。完成后單擊確認。
多應用共享負載均衡實例
為了降低成本,減少CLB的實例數,EDAS允許多個應用共享一個CLB來支持對外服務訪問。
支持多個應用通過配置不同的監聽端口使用一個CLB對外訪問。您也可以配置基于域名及URL的轉發,詳情可參考創建應用路由(Nginx Ingress)。
本文以基于不同端口的轉發為例進行介紹。在EDAS中,找到需要使用CLB的應用,在進行訪問配置時,選擇同一個CLB并配置不同的端口映射,即可支持多個應用使用同一個CLB。
復用CLB需要您持有一個或多個處于運行中狀態的CLB實例。具體操作,請參見創建和管理CLB實例。
如果需要使用公網CLB綁定應用,則需CLB網絡類型為公網;如果需要使用私網CLB綁定應用,則需要CLB網絡類型為私網。
CLB實例和K8s集群位于同一地域。
如果CLB實例和K8s集群實例的網絡類型均為專有網絡,則必須位于同一專有網絡。
本文以公網CLB為例進行介紹。
登錄EDAS控制臺。
在左側導航欄,單擊應用管理 > 應用列表,在頂部菜單欄選擇地域并在頁面上方選擇微服務空間,在集群類型下拉列表中選擇K8s集群,然后單擊目標應用名稱。
在基本信息頁面中基本信息頁簽的應用設置區域,單擊負載均衡(公網)右側的添加。
在彈出的頁面中,選擇CLB并完成端口配置。完成后單擊確認。