在federation v2多集羣環境中,經過前面幾篇文章的介紹,咱們能夠很容易的進行服務多集羣部署,考慮到業務部署和容災須要,咱們一般須要調整服務在各個集羣的流量分佈。本文下面簡單介紹如何在阿里雲上進行多集羣流量調度。服務器
參考容器服務kubernetes federation v2實踐一:基於External-DNS的多集羣Ingress DNS實踐 進行兩個聯邦集羣的join,完成External-DNS、FederatedDeployment、FederatedService、FederatedIngress和IngressDNSRecord的部署,域名解析詳情以下:架構
kubectl get ingress -n test-namespace --context cluster1 NAME HOSTS ADDRESS PORTS AGE test-ingress * 39.97.196.33 80 107m kubectl get ingress -n test-namespace --context cluster2 NAME HOSTS ADDRESS PORTS AGE test-ingress * 39.96.244.3 80 107m dig +short @dns7.hichina.com ingress-example.example-domain.club 39.97.196.33 39.96.244.3
注意【ingress-example.example-domain.club】爲測試域名,請注意替換成本身在阿里雲上購買的域名。dom
一般,咱們但願根據各個集羣的服務狀態進行流量調整,當某一個集羣服務所有掛掉時能夠快速的將流量遷移至其餘集羣,保證服務的可用性。下圖爲部署架構圖:測試
在阿里雲【雲解析DNS/域名解析/權重配置】中,經過配置測試域名解析權重進行流量調整,能夠經過下面的腳本進行簡單的驗證dns解析結果:阿里雲
DOMAIN=$1 COUNT=$2 for i in `seq 1 ${COUNT}` do dig +short @dns7.hichina.com ${DOMAIN} >> result.txt done
經過上述腳本驗證1000次域名解析,驗證結果以下:spa
集羣 | 權重1:1 | 權重1:3 | 權重1:99 |
---|---|---|---|
39.97.196.33(Cluster1) | 504 | 268 | 5 |
39.96.244.3(Cluster2) | 496 | 732 | 995 |
解析比例 | 1.02 | 0.37 | 0.005 |
能夠看出dns解析結果和配置的權重基本上仍是一致的,說明咱們能夠經過在阿里雲的雲解析上配置各個集羣的流量配比。code
爲了爲用戶提供更好更快的服務,咱們但願用戶能夠就近訪問咱們的服務,以下圖所示,咱們但願華東用戶訪問咱們Cluster1的服務,華北用戶訪問Cluster2的服務。blog
在阿里雲上,咱們能夠經過【雲解析DNS/全局流量管理】來進行面向用戶來源的流量管理。
第一步:在【雲解析DNS/全局流量管理】上建立實例,而後完成相關配置。
第二步:在第一步建立的實例中建立兩個地址池。
第三步:配置訪問策略,配置華東用戶訪問華東地址池,華北用戶訪問華北地址池。
第四步:在【雲解析DNS/域名解析】的測試域名中添加記錄,類型爲CNAME,值爲第一步中生成的CNAME值。
第五步:分別在北京和杭州找一臺服務器,執行下面腳本:dns
DOMAIN=$1 COUNT=$2 for i in `seq 1 ${COUNT}` do nslookup ${DOMAIN} | grep -v "#" | awk '/Address/{print $2}' >> result.txt done
其中執行次數爲1000次,獲得下面結果:部署
集羣 | 杭州 | 北京 |
---|---|---|
39.97.196.33(Cluster1) | 1000 | 0 |
39.96.244.3(Cluster2) | 0 | 1000 |
能夠看到,全局流量管理能夠根據用戶地域解析到不通集羣的LB上,固然全局流量管理還有不少其餘功能,例如地址池的健康檢查等,你們能夠親自測試使用。
本文經過DNS解析權重和全局流量管理相關配置,調整多個集羣上面的流量,很好的知足不一樣的業務場景。
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。