【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

如何为多个 Kubernetes 集群设置全局负载均衡器

  • 2020-03-11
  • 本文字数:1350 字

    阅读完需:约 4 分钟

如何为多个Kubernetes集群设置全局负载均衡器

Jetstack 的工程团队介绍了如何跨多个谷歌 Kubernetes 引擎(Google Kubernetes Engine,简称GKE)集群设置全局负载均衡器,同时使用谷歌的非标准容器原生负载平衡和Google Cloud Armor 来进行 DDoS 保护。


Jetstack 的一个客户具有现成的配置环境,该环境由多个Kubernetes集群组成,并基于 DNS 路由至不同的负载均衡器 IP。他们希望整合 Google Cloud Armor 的 DDos 保护功能,并使用容器原生负载平衡来“改善流量的可见性和网络性能”。该团队经历了多个迁移阶段以引入这些功能并采用了一种自定义方式将单个 GLB 和多个 Kubernetes 集群后端绑定在一起。


在 Kubernetes 规范中,服务级别有三种不同的“负载平衡”方式,即 ClusterIP、NodePort 和 LoadBalancer,其中不包括 Ingress。Jetstack 的客户利用“LoadBalancing”服务类型,该服务类型会转换成基于底层云平台的特定 LB 实现。在 GKE 中,这由网络 LB(NLB)实现。然而,为了接受来自互联网的流量,Kubernetes 集群通常有个 Ingress,它由 GKE 中的全局 LB(global LB,简称GLB)实现。在客户之前的配置里面,AWS Route53中有基于地理位置的 IP 地址路由。根据 DNS 的查询来源,Route53 可以返回不同的IP地址


尽管 Google Cloud Armor 配置支持3-7网络规则,但是,谷歌的 NLB 不支持 Google Cloud Armor DDoS 保护服务。因此,切换到一个 L7 LB(全局负载均衡器,即 GLB)是必要的。在 GKE 中创建一个 Ingress 资源就可以自动创建它。作为负载均衡器,L7 GLB 给路由 URL 和 TLS 终止带来了灵活性,并把流量服务端口限制为80、8080和443。后者导致了应用程序的一些变化,该应用程序之前使用多个其他端口。在该阶段结束时还有多个 L7 负载均衡器,DNS 指向了它们的 IP 地址。


GKE 有个叫做“容器原生负载平衡”的功能,该功能允许 pod 直接接收来自负载均衡器的流量。这并不是 Kubernetes 规范的一部分,而是 GKE 中的优化,因而不能用于其他供应商托管的 Kubernetes 产品。如果没有该功能的话,从 LB 到 pod 的流量需要在 GKE 网络中绕行。其中涉及的额外网络跳跃(hop)会增加延迟。容器原生负载均衡需要创建网络端点群组(Network Endpoint Groups,简称NEG),这是一个谷歌的特定功能,它包含服务于流量的后端 pod 的 IP 地址。在迁移的第二阶段包含了这些任务。


在第三个阶段,主要的变化是使用单个 GLB IP 地址,而不是使用 DNS 返回不同负载均衡器的特定于区域的 IP 地址。Kubernetes 没有在单个 Ingress 背后包含多个集群的机制。谷歌有个测试版的工具,试图来做这件事,但是,还它还处于早期阶段。重要的是,让多个 Kubernetes 集群拥有一个 GLB(或另一个 Ingress LB)不同于多个Kubernetes集群协同工作。前者是关于使用单个端点,全局流量通过它被路由到独立的 Kubernetes 集群。而后者是关于对多个 Kubernetes 集群使用单个控制平面。在其他云中实现前者也不简单。Jetstack 团队借助 Terraform 的Google provider实现了自动化,他们分别创建了 NEG 资源和 GLB,并使用注解把它们绑定在一起。还有另一个工具致力于简化这项工作。其他公司用其它方法解决了这个问题,例如,使用一个Envoy控制平面和使用集群注册表(Cluster Registry)


原文链接:


How Jetstack Set Up a Global Load Balancer for Multiple Kubernetes Clusters


2020-03-11 09:001575

评论

发布
暂无评论
发现更多内容

亲测可用 Illustrator 2024更新,最新AI2024下载mac/win

iMac小白

Illustrator 2024 ai2024下载 AI2024破解版

锁定云栖大会!共同见证阿里云大数据+AI产品年度重磅发布及创新

阿里云大数据AI技术

大数据 AI

NFTScan | 10.09~10.15 NFT 市场热点汇总

NFT Research

NFT\ NFTScan

软件测试|教你用skip灵活跳过用例

霍格沃兹测试开发学社

软件测试|简单易学的性能监控体系prometheus+grafana搭建教程

霍格沃兹测试开发学社

进来“抄作业”!示例代码、操作手册,尽在华为云Codelabs!

华为云PaaS服务小智

云计算 软件开发 华为云

软件测试|Pytest必会技巧(三)

霍格沃兹测试开发学社

深度学习应用开发示例之目标识别

矩视智能

深度学习 机器视觉

Chiplet封装技术的应用现状

IC男奋斗史

封装 芯片 半导体 chiplet

了解容器运行时安全:保护你的容器应用

统信软件

容器 安全 运行时

OpenHarmony创新赛丨报名倒计时,超强秘籍带你直通大奖!

OpenHarmony开发者

如何管理嵌入式开发中产生的数字资产?ACT汽车电子与软件技术周演讲回顾

龙智—DevSecOps解决方案

嵌入式开发 汽车嵌入式开发

浅谈 33 台 iPad 发展史;OpenAI“悄悄”修改了企业核心价值观丨 RTE 开发者日报 Vol.67

声网

在 Windows 平台下安装与配置 MySQL 5.7.36

小齐写代码

OpenHarmony创新赛|赋能直播第四期

OpenHarmony开发者

谁在“操控”虚拟人?

自象限

虚拟人

探索工作流应用场景下解决重复审批的方法

inBuilder低代码平台

工作流 低代码

Linux爆发好时机!Windows这次换代为何这么难!

树上有只程序猿

windows 11

挖掘文本的奇妙力量:传统与深度方法探索匹配之道

汀丶人工智能

推荐系统 语义搜索 向量搜索

再玩玩B端搭建

得物技术

架构 规则引擎 B端搭建

IPQ9554 and QCN9274 - The key to high-speed connectivity - Go beyond tradition and lead the future:

wifi6-yiyi

中文永久激活版:IBM SPSS Statistics 26 for Mac破解资源 支持M1

iMac小白

IBM SPSS Statistics 26 SPSS26破解版

DeFi/DApp矿机算力质押挖矿系统开发

l8l259l3365

10个最佳区块链分析工具 区块链系统开发

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

体育赛事技术演进历程,开发技术发展趋势

软件开发-梦幻运营部

CSS魔法!如何将任意CSS类型转换为数值?

高端章鱼哥

CSS

premiere pro 2024 新功能介绍 pr2024中文激活版下载mac/win

iMac小白

Premiere Pro 2024 Pr2024下载 pr2024破解版

软件测试|Pytest的必会技巧(一)

霍格沃兹测试开发学社

每个开发人员都想使用的编程语言

互联网工科生

rust

数据结构与算法 | 数组(Array)

Java研究者

Java 算法 数组 算法题 数据结构,

业内首个基于Iceberg的“云端仓转湖”生产实践探索

腾讯云大数据

湖仓一体

如何为多个Kubernetes集群设置全局负载均衡器_软件工程_Hrishikesh Barua_InfoQ精选文章