容器服務kubernetes federation v2實踐:多集羣流量調度

概述

在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解析權重和全局流量管理相關配置,調整多個集羣上面的流量,很好的知足不一樣的業務場景。


原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索