容器服务kubernetes federation v2实践五:多集群流量调度

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 概述 在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
AI 代码解读

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

按流量配比分流

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

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

DOMAIN=$1
COUNT=$2

for i in `seq 1 ${COUNT}`
do
    dig +short @dns7.hichina.com ${DOMAIN} >> result.txt
done
AI 代码解读

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

集群 权重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解析结果和配置的权重基本上还是一致的,说明我们可以通过在阿里云的云解析上配置各个集群的流量配比。

按用户所在地分流

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

在阿里云上,我们可以通过【云解析DNS/全局流量管理】来进行面向用户来源的流量管理。
第一步:在【云解析DNS/全局流量管理】上创建实例,然后完成相关配置。
image
第二步:在第一步创建的实例中创建两个地址池。
image
第三步:配置访问策略,配置华东用户访问华东地址池,华北用户访问华北地址池。
image
第四步:在【云解析DNS/域名解析】的测试域名中添加记录,类型为CNAME,值为第一步中生成的CNAME值。
image
第五步:分别在北京和杭州找一台服务器,执行下面脚本:

DOMAIN=$1
COUNT=$2

for i in `seq 1 ${COUNT}`
do
    nslookup ${DOMAIN} | grep -v "#" | awk '/Address/{print $2}' >> result.txt
done
AI 代码解读

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

集群 杭州 北京
39.97.196.33(Cluster1) 1000 0
39.96.244.3(Cluster2) 0 1000

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

总结

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

钧博
+关注
目录
打赏
0
0
0
0
54637
分享
相关文章
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
31 16
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
阿里云容器服务在AI智算场景的创新与实践
本文源自张凯在2024云栖大会的演讲,介绍了阿里云容器服务在AI智算领域的创新与实践。从2018年推出首个开源GPU容器共享调度方案至今,阿里云容器服务不断推进云原生AI的发展,包括增强GPU可观测性、实现多集群跨地域统一调度、优化大模型推理引擎部署、提供灵活的弹性伸缩策略等,旨在为客户提供高效、低成本的云原生AI解决方案。
集群部署:使用Rancher部署Kubernetes集群。
以上就是使用 Rancher 部署 Kubernetes 集群的流程。使用 Rancher 和 Kubernetes,开发者可以受益于灵活性和可扩展性,允许他们在多种环境中运行多种应用,同时利用自动化工具使工作负载更加高效。
37 19
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版