博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
容器服务kubernetes federation v2实践:多集群流量调度
阅读量:6261 次
发布时间:2019-06-22

本文共 1856 字,大约阅读时间需要 6 分钟。

概述

在federation v2多集群环境中,通过前面几篇文章的介绍,我们可以很容易的进行服务多集群部署,考虑到业务部署和容灾需要,我们通常需要调整服务在各个集群的流量分布。本文下面简单介绍如何在阿里云上进行多集群流量调度。

环境准备

参考进行两个联邦集群的join,完成External-DNS、FederatedDeployment、FederatedService、FederatedIngress和IngressDNSRecord的部署,域名解析详情如下:

kubectl get ingress -n test-namespace --context cluster1NAME           HOSTS   ADDRESS        PORTS   AGEtest-ingress   *       39.97.196.33   80      107mkubectl get ingress -n test-namespace --context cluster2NAME           HOSTS   ADDRESS       PORTS   AGEtest-ingress   *       39.96.244.3   80      107mdig +short @dns7.hichina.com ingress-example.example-domain.club39.97.196.3339.96.244.3复制代码

注意【ingress-example.example-domain.club】为测试域名,请注意替换成自己在阿里云上购买的域名。

按流量配比分流

通常,我们希望根据各个集群的服务状态进行流量调整,当某一个集群服务全部挂掉时可以快速的将流量迁移至其他集群,保证服务的可用性。下图为部署架构图:

在阿里云【云解析DNS/域名解析/权重配置】中,通过配置测试域名解析权重进行流量调整,可以通过下面的脚本进行简单的验证dns解析结果:

DOMAIN=$1COUNT=$2for i in `seq 1 ${COUNT}`do    dig +short @dns7.hichina.com ${DOMAIN} >> result.txtdone复制代码

通过上述脚本验证1000次域名解析,验证结果如下:

集群权重1:1权重1:3权重1:9939.97.196.33(Cluster1)504268539.96.244.3(Cluster2)496732995解析比例1.020.370.005

可以看出dns解析结果和配置的权重基本上还是一致的,说明我们可以通过在阿里云的云解析上配置各个集群的流量配比。

按用户所在地分流

为了为用户提供更好更快的服务,我们希望用户可以就近访问我们的服务,如下图所示,我们希望华东用户访问我们Cluster1的服务,华北用户访问Cluster2的服务。

在阿里云上,我们可以通过【云解析DNS/全局流量管理】来进行面向用户来源的流量管理。

第一步:在【云解析DNS/全局流量管理】上创建实例,然后完成相关配置。

第二步:在第一步创建的实例中创建两个地址池。

第三步:配置访问策略,配置华东用户访问华东地址池,华北用户访问华北地址池。

第四步:在【云解析DNS/域名解析】的测试域名中添加记录,类型为CNAME,值为第一步中生成的CNAME值。

第五步:分别在北京和杭州找一台服务器,执行下面脚本:

DOMAIN=$1COUNT=$2for i in `seq 1 ${COUNT}`do    nslookup ${DOMAIN} | grep -v "#" | awk '/Address/{print $2}' >> result.txtdone复制代码

其中执行次数为1000次,得到下面结果:

集群杭州北京39.97.196.33(Cluster1)1000039.96.244.3(Cluster2)01000

可以看到,全局流量管理可以根据用户地域解析到不通集群的LB上,当然全局流量管理还有很多其他功能,例如地址池的健康检查等,大家可以亲自测试使用。

总结

本文通过DNS解析权重和全局流量管理相关配置,调整多个集群上面的流量,很好的满足不同的业务场景。

本文为云栖社区原创内容,未经允许不得转载。

转载于:https://juejin.im/post/5cee31ede51d454f72302493

你可能感兴趣的文章
MAC下安装MAMP的PHPredis扩展
查看>>
通过函数指针调用函数
查看>>
苹果虚拟机显示卡顿
查看>>
对代码评审的感想(回忆篇)
查看>>
LOJ#6437. 「PKUSC2018」PKUSC
查看>>
[学习笔记]同余
查看>>
报表开发工具中开放的部分图表js接口列表
查看>>
如何实现 Python 中 selnium 模块的换行
查看>>
Scut游戏服务器引擎6.0.5.0发布-支持C#脚本
查看>>
有关FPGA
查看>>
[caffe(二)]Python加载训练caffe模型并进行测试2
查看>>
javasrcipt——正则
查看>>
事务的特性——ACID
查看>>
VUE页面渲染问题
查看>>
day38——多进程Manager、进程池
查看>>
Asp.Net 弹出窗体始终在顶层方法
查看>>
C语言字符串函数总结--<转载>
查看>>
POJ 1185 炮兵阵地[状态压缩DP]
查看>>
POJ 2369 Budget【有上下界的最大流】
查看>>
HNU Indiana Jones and the lost Soccer Cup 【拓扑排序】
查看>>