当前位置: 首页 > article >正文

Kubernetes Gateway API-2-跨命名空间路由

1 跨命名空间路由

Gateway API 具有跨命名空间路由的核心支持。当多个用户或团队共享底层网络基础设施时,这很有用,但必须对控制和配置进行分段,以尽量减少访问和容错域。

Gateway 和 Route(HTTPRoute,TCPRoute,GRPCRoute) 可以部署到不同的命名空间中,路由可以跨命名空间边界连接到网关。本指南探讨了路由附件,并演示了独立团队如何安全地共享同一网关。

在本指南中,有两个独立的团队,store 和 site,在同一个Kubernetes集群中的 store-nssite-ns Namespaces 中运行。

这些是他们的目标,以及他们如何使用Gateway API资源来实现这些目标:

  • store 团队有两个应用程序,home(/) 和 login(/login)。该团队希望尽可能地隔离应用程序之间的访问和配置,以尽量减少访问和故障域。它们使用连接到同一 Gateway 的单独HTTPRoutes来隔离路由配置,如金丝雀部署,但仍然共享相同的IP地址、端口、DNS域和TLS证书。

  • store 团队在 store-ns 命名空间中部署了一个名为 store 的 Service,该 Service 也需要在相同的IP地址和域后面公开。

  • Foobar 公司为所有应用程序提供 foo.example.com 域名。这是由一个在infrans命名空间中运行的中央基础设施团队控制的。

  • 最后,安全团队控制 foo.example.com 的证书。通过单一共享网关管理此证书,他们能够集中控制安全性,而无需直接涉及应用程序团队。

Gateway API资源之间的逻辑关系如下所示:
在这里插入图片描述

1.1 跨命名空间路由连接

路由连接是一个重要的概念,它规定了路由如何连接到网关并对其路由规则进行编程。当命名空间中的路由共享一个或多个网关时,这一点尤其重要。网关和路由连接是双向的——只有网关所有者和路由所有者都同意这种关系,连接才能成功。这种双向关系的存在有两个原因:

  • 路由所有者不想通过他们不知道的路径过度暴露他们的应用程序。

  • 网关所有者不希望某些应用程序或团队在未经许可的情况下使用网关。例如,内部服务不应该通过互联网网关访问。

网关支持连接约束,这些约束是网关侦听器上的字段,用于限制可以连接的路由。网关支持命名空间和路由类型作为附件约束。任何不符合连接约束的路由都无法连接到该网关。同样,Routes通过Route的parentRef字段明确引用它们想要连接的网关。这些共同创建了基础设施所有者和应用程序所有者之间的握手,使他们能够独立定义应用程序如何通过网关公开。这实际上是一种减少管理开销的策略。应用程序所有者可以指定其应用程序应使用的网关,基础设施所有者可以限制网关接受的命名空间和路由类型。

1.2 共享网关

基础设施团队将 Gateway shared-gateway 部署到 infra-ns 命名空间中:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: shared-gateway
  namespace: infra-ns
spec:
  gatewayClassName: shared-gateway-class
  listeners:
  - name: https
    hostname: "foo.example.com"
    protocol

http://www.kler.cn/a/454624.html

相关文章:

  • 鸿蒙Next自定义相机开发时,如何解决相机在全屏预览的时候,画面会有变形和拉伸?
  • 【Agent】Chatbot、Copilot与Agent如何帮助我们的提升效率?
  • 【js】记录预览pdf文件
  • 如何从 0 到 1 ,打造全新一代分布式数据架构
  • Jenkins 命令行多线程并发下载制品包
  • PPT画图——如何设置导致图片为600dpi
  • 青岛市勘察测绘研究院携手云轴科技ZStack获评专有云典型案例
  • Qt工作总结02 <设置工具栏ToolBar>
  • 对于标签推荐算法的应用
  • fpga系列 HDL:跨时钟域同步 shift register同步 + SPI中的同步方式
  • vue.js 组件化开发 根组件
  • 通俗易懂!使用Excel和TF实现Transformer
  • 光谱相机的工作原理
  • 使用Python pickle模块进行序列化
  • 视听语言与手机拍摄技巧
  • SuperMap iClient3D for Cesium等高线标注
  • VSCode 插件开发实战(十四):创建交互式引导教程
  • Qt QByteArray做CRC16-modbus校验
  • 低代码开发 实战转型案例一览
  • 【论文阅读】AllMatch: Exploiting All Unlabeled Data for Semi-Supervised Learning