k8s中的Gateway API 和istio

Gateway API

Gateway API 是 Kubernetes 社区为了更好地管理集群外部流量引入的标准 API,它旨在提供更强大、灵活且可扩展的方式来描述和配置网络流量的入口和出口规则。

主要资源对象
  • Gateway:定义了一个网络入口点,描述了负载均衡器的配置,如使用的协议(HTTP、HTTPS、TCP 等)、监听的端口、TLS 配置等。例如,一个 Gateway 可以指定在 80 端口监听 HTTP 流量,在 443 端口监听 HTTPS 流量,并配置相应的 TLS 证书。
  • HTTPRoute :用于定义 HTTP 流量的路由规则,可基于路径、主机名、HTTP 方法等进行流量匹配,并指定将匹配到的流量转发到哪个后端服务。比如,将所有以**/api** 开头的路径请求转发到名为**backend-api-service**的服务。
  • TCPRoute:与 HTTPRoute 类似,但用于处理 TCP 流量,能根据源 IP、目的 IP、端口等条件,将 TCP 流量转发到特定的后端服务。
  • UDPRoute:针对 UDP 流量,定义如何将 UDP 流量导向后端服务。
优势
  • 标准化与扩展性:提供了一套标准化的方式来描述网络配置,不同的网络提供商和工具可以基于此 API 实现一致的功能,同时用户也可以根据自身需求扩展其功能。
  • 灵活的流量管理:相比传统的 Ingress 资源,能更精细地控制流量,支持更多复杂的路由场景,如加权流量分配、流量镜像等。
  • 简化网络配置:通过清晰的资源模型,将网络入口和流量路由规则分离,使配置更加直观和易于管理。

Istio

Istio 是一个开源的服务网格框架,专注于为微服务应用提供统一的流量管理、安全和可观测性能力。

主要功能
  • 流量管理:Istio 可以控制服务之间的流量和 API 调用,实现诸如负载均衡、故障注入、流量转移(蓝绿部署、金丝雀发布)等功能。例如,在进行新版本服务发布时,可以通过 Istio 将少量流量先导向新版本服务,观察运行情况后再逐步扩大流量比例。
  • 安全:提供强大的安全功能,包括服务间的双向 TLS 认证、访问控制和身份验证等。通过 Istio,不同微服务之间的通信可以自动加密,防止数据在传输过程中被窃取或篡改。
  • 可观测性:Istio 集成了分布式追踪、监控和日志功能,能够帮助用户深入了解服务间的调用关系和性能表现。通过查看追踪数据,用户可以快速定位服务调用过程中出现的延迟或错误问题。
核心组件
  • Pilot:负责管理和配置 Istio 服务网格中的所有流量规则,将用户定义的高级路由规则转换为 Envoy 代理可以理解的配置。
  • Envoy:作为 Sidecar 代理,部署在每个服务实例旁边,拦截进出服务的所有流量,执行 Pilot 下发的流量管理和安全策略。
  • Mixer:负责在服务网格中执行访问控制和使用策略,并从 Envoy 代理和其他服务收集遥测数据。不过在较新的版本中,Mixer 的部分功能已被逐渐弃用或替代。
  • Galley:负责验证、提取和处理 Istio 配置,提供配置管理和验证的功能。

两者关系

  • 互补关系:Gateway API 主要聚焦于集群外部流量的入口管理,而 Istio 则侧重于服务网格内部微服务之间的流量管理、安全和可观测性。在实际应用中,两者可以结合使用,利用 Gateway API 处理外部到集群的流量入口,再通过 Istio 对进入集群后的流量在微服务间进行更精细的管理。
  • 共同发展:随着技术的发展,Gateway API 的功能可能会逐渐涵盖到 Istio 的部分流量管理领域,而 Istio 也可能会更好地兼容和利用 Gateway API 的标准,使得整个 Kubernetes 生态系统的网络管理更加完善和统一。
相关推荐
幻灭行度2 小时前
CKS-CN 考试知识点分享(14) Istio网络策略
kubernetes
fie88893 小时前
在Kubernetes(k8s)环境中无法删除持久卷(PV)和持久卷声明(PVC)的解决方案
云原生·容器·kubernetes
费益洲6 小时前
Docker 网络详解:(一)Linux 网络虚拟化技术
docker·云原生
码路工人6 小时前
第3章:Docker 容器 - 动态的运行实例
docker·云原生·容器
失散136 小时前
分布式专题——18 Zookeeper选举Leader源码剖析
java·分布式·zookeeper·云原生·架构
上将邢道荣7 小时前
K8S学习之旅(5)集群管理
后端·kubernetes
CloudPilotAI7 小时前
全新 CloudPilot AI:嵌入 Kubernetes 的 SRE Agent,降本与韧性双提升!
kubernetes·karpenter·云成本
爱敲代码的TOM7 小时前
微服务基础2-网关路由
微服务·云原生·架构