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 生态系统的网络管理更加完善和统一。
相关推荐
ABdolphin5 小时前
Spring-cloud 主键Eureka
java·云原生·eureka
小坏讲微服务5 小时前
五分钟使用 Docker-compose搭建 Redis 8.0 中间件
运维·redis·docker·中间件·容器·kubernetes·k8s
AKAMAI6 小时前
AI推理硬件选型指南:CPU 与 GPU 的抉择
人工智能·云原生·云计算
wuk99810 小时前
基于开源操作系统搭建K8S高可用集群
容器·kubernetes·开源
Serverless 社区10 小时前
算力成本降低 33%,与光同尘用 Serverless AI 赋能影视商业内容生产
人工智能·云原生·serverless
稚辉君.MCA_P8_Java11 小时前
深入理解 TCP;场景复现,掌握鲜为人知的细节
java·linux·网络·tcp/ip·kubernetes
没有口袋啦12 小时前
《云原生基础设施》
云原生·容器·kubernetes·华为云
阿里云云原生13 小时前
低至 1% 性能损耗:阿里云 ARMS 配置模板如何实现精准可控的 JMX 数据采集
云原生
菲兹园长15 小时前
微服务组件(E、L、N、O、G)
linux·服务器·gateway
马达加斯加D15 小时前
k8s --- resource 资源
云原生·容器·kubernetes