在EDAS中的Container ServiceKubernetes叢集中建立應用後,可以為應用添加公網或私網負載平衡CLB來實現應用的公網或私網訪問。本文介紹如何為Container ServiceKubernetes叢集中的應用添加公網CLB和私網CLB。
背景資訊
如果需要為應用關聯負載平衡CLB,必須在EDAS控制台完成關聯CLB執行個體的監聽組態管理。
為Container ServiceK8s叢集或自建K8s叢集中的應用綁定CLB有以下區別:
- 自建K8s叢集:為應用綁定CLB都需新購CLB執行個體,每個應用獨享CLB執行個體。
- Container ServiceK8s叢集:為應用綁定CLB可以新購CLB執行個體來獨享CLB執行個體,也可以複用CLB執行個體。
約束限制
為Container ServiceK8s叢集或自建K8s叢集中的應用綁定CLB有以下約束條件,否則可能導致修改被回退,引發應用訪問相關的故障。
- 不支援通過Container ServiceACK控制台、kubectl或者第三方介面刪除或修改EDAS建立的Service資源(EDAS資源含有以下label:edas-domain:edas-admin)。
- 不支援通過負載平衡控制台修改或刪除EDAS代購的CLB執行個體。
- 不支援通過負載平衡控制台修改或刪除EDAS託管的CLB執行個體的監聽配置。
- 不支援通過命令列工具kubectl或在Container Service控制台更新Service的外部流量策略配置。
綁定建立CLB(公網)
登入EDAS控制台,在左側導覽列單擊 ,在頂部功能表列選擇地區並在頁面上方選擇微服務空間,在叢集類型下拉式清單中選擇K8s叢集,然後單擊目標應用程式名稱。
- 在應用總覽頁面的訪問方式配置地區,單擊負載平衡(公網)右側的表徵圖。說明
如果您已經配置過負載平衡,則在此處會顯示負載平衡的IP和連接埠資訊,您可單擊表徵圖進入配置頁面修改負載平衡資訊,或可單擊表徵圖解除CLB的綁定。
- 在負載平衡(公網)對話方塊,設定負載平衡參數,完成後單擊確認。
配置項 描述 選擇SLB 在下拉式清單中選擇建立SLB或已有SLB。 調度演算法 選擇輪詢(RR)或加權輪詢(WRR)。 外部流量策略 選擇建立SLB時,外部流量策略地區下方可以查看SLB配額檢查和賬戶餘額檢查的狀態和說明以及Server Load Balancer-公網的產品配置、數量、付費方式、購買周期和資費。單擊查看價格瞭解SLB價格。
選擇Local和Cluster兩種模式:
- Local:流量只發給原生Pod。配置為Local模式時,只有叢集中存在Service對應Pod的節點會被添加到SLB後端,且流量不會轉寄到叢集中其它節點的Pod中。結合SLB的負載平衡能力,能夠獲得較好的效能,且該模式支援保留四層源IP地址。說明 當配置為Local模式時,推薦配置SLB的調度演算法為加權輪詢(WRR)。在容器叢集中,CCM組件會根據節點上部署的Pod的數量來調整節點在SLB後端的權重,使用WRR演算法能夠獲得較好的負載平衡能力。
- Cluster:流量可以轉寄到叢集中其他節點上的Pod。說明 配置為Cluster模式時,叢集的所有節點將被掛載到SLB的後端伺服器組中,即使所訪問的節點上沒有啟動對應的Pod,也可以通過SNAT轉寄訪問到Pod服務。但是該模式無法保留四層源IP地址。
該SLB已有的監聽資訊 僅當選擇SLB類型為已有SLB時,需要配置此項。您可以查看網路通訊協定、連接埠號碼和容器連接埠(Target port)。 TCP|HTTP 協議 - SLB連接埠(應用程式名稱):公網負載平衡前端連接埠,通過該連接埠訪問應用,可設定範圍為[1,65535]。
- 容器連接埠(TargetPort):進程監聽的連接埠,一般由程式定義。例如,Web應用預設使用8080連接埠。
UDP 協議 - SLB連接埠(應用程式名稱):公網負載平衡前端連接埠,通過該連接埠訪問應用。
- 容器連接埠(TargetPort):進程監聽的連接埠,一般由程式定義。
HTTPS協議 - HTTPS連接埠(應用程式名稱):公網負載平衡前端連接埠,通過該連接埠訪問應用,可設定範圍為[1,65535]。
- SSL認證:SSL協議認證,在下拉式功能表中選擇已上傳的SSL認證。
- 容器連接埠(TargetPort):進程監聽的連接埠,一般由程式定義。例如,Web應用預設使用8080連接埠。
說明 該監聽配置支援設定多個監聽,您可以單擊添加新的監聽配置。 - Local:流量只發給原生Pod。配置為Local模式時,只有叢集中存在Service對應Pod的節點會被添加到SLB後端,且流量不會轉寄到叢集中其它節點的Pod中。結合SLB的負載平衡能力,能夠獲得較好的效能,且該模式支援保留四層源IP地址。
- 如果您的應用訪問需求量已經超出了當前設定的CLB規格,則重複步驟2~步驟3,添加多個SLB。說明
CLB的規格指標主要有最大串連數、每秒建立串連數和每秒查詢數,如果應用訪問量超過了CLB的規格指標,您可以通過添加多個CLB來分擔流量壓力。
結果驗證
在瀏覽器地址欄中輸入<負載平衡IP>:<連接埠號碼>
,例如115.xx.xx.xx:80
,再按斷行符號鍵即可進入各自的應用首頁。
如果負載平衡右側未出現IP和連接埠資訊,則表示綁定負載平衡失敗,請進入變更記錄查看變更詳情,根據變更記錄排查並修複失敗原因。
綁定建立CLB(私網)
登入EDAS控制台,在左側導覽列單擊 ,在頂部功能表列選擇地區並在頁面上方選擇微服務空間,在叢集類型下拉式清單中選擇K8s叢集,然後單擊目標應用程式名稱。
- 在應用總覽頁面的訪問方式配置地區,單擊負載平衡(私網)右側的表徵圖。說明
如果您已經配置過負載平衡,則在此處會顯示負載平衡的IP和連接埠資訊,您可單擊表徵圖進入配置頁面修改負載平衡資訊,或可單擊表徵圖解除CLB的綁定。
- 在負載平衡(私網)對話方塊,設定負載平衡參數,完成後單擊確認。
參數 描述 選擇SLB 您可以在下拉式清單中選擇建立SLB或已有SLB。 調度演算法 您可以選擇輪詢(RR)或加權輪詢(WRR)。 外部流量策略 當您選擇建立SLB時,外部流量策略地區下方可以查看SLB配額檢查的狀態和說明以及Server Load Balancer-私網的產品配置和數量。
您可以選擇Local和Cluster兩種模式:
- Local:流量只發給原生Pod。配置為Local模式時,只有叢集中存在Service對應Pod的節點會被添加到SLB後端,且流量不會轉寄到叢集中其他節點的Pod中。結合SLB的負載平衡能力,能夠獲得較好的效能且該模式下能夠保留四層源IP地址。說明 當配置為Local模式時,推薦配置SLB的調度演算法為加權輪詢(WRR)。在容器叢集中,CCM組件會根據節點上部署的Pod的數量來調整節點在SLB後端的權重,使用WRR演算法能夠獲得較好的負載平衡能力。
- Cluster:流量可以轉寄到叢集中其他節點上的Pod。說明 配置為Cluster模式時,叢集的所有節點將被掛載到SLB的後端伺服器組中,即使所訪問的節點上沒有啟動對應的Pod,也能通過SNAT轉寄訪問到Pod服務。但是該模式無法保留四層源IP地址。
該SLB已有的監聽資訊 當您選擇已有SLB時,該參數才會出現。您可以查看網路通訊協定、連接埠號碼和容器連接埠(Target port)。 TCP|HTTP 協議 - SLB連接埠(應用程式名稱):私網負載平衡前端連接埠,通過該連接埠訪問應用,可設定範圍為1~65535。
- 容器連接埠(TargetPort):進程監聽的連接埠。一般由程式定義,例如:Web應用預設使用8080連接埠。
HTTPS協議 - HTTPS連接埠(應用程式名稱):私網負載平衡前端連接埠,通過該連接埠訪問應用,可設定範圍為1~65535。
- SSL認證:SSL協議認證,在下拉式功能表中選擇已上傳的SSL認證。
- 容器連接埠(TargetPort):進程監聽的連接埠。一般由程式定義,例如:Web應用預設使用8080連接埠。
說明 該監聽配置支援設定多個監聽,您可以單擊添加新的監聽進行配置。 - Local:流量只發給原生Pod。配置為Local模式時,只有叢集中存在Service對應Pod的節點會被添加到SLB後端,且流量不會轉寄到叢集中其他節點的Pod中。結合SLB的負載平衡能力,能夠獲得較好的效能且該模式下能夠保留四層源IP地址。
- 如果您的應用訪問需求量已經超出了當前設定的CLB規格,則重複步驟2~步驟3,添加多個SLB。說明
CLB的規格指標主要有最大串連數、每秒建立串連數和每秒查詢數,如果應用訪問量超過了CLB的規格指標,您可以通過添加多個CLB來分擔流量壓力。
結果驗證
在瀏覽器地址欄中輸入<負載平衡IP>:<連接埠號碼>
,例如115.xx.xx.xx:80
,再按斷行符號鍵即可進入各自的應用首頁。
如果負載平衡右側未出現IP和連接埠資訊,則表示綁定負載平衡失敗,請進入變更記錄查看變更詳情,根據變更記錄排查並修複失敗原因。