【云原生技术】云原生架构中,Ingress简介

1. 云原生中的 Ingress

在云原生架构中,Ingress 是一种用于管理入站网络流量的 API 对象,它充当了对集群中服务的外部访问点。Ingress 允许定义规则来路由外部请求到集群内部的服务,实现了对服务的访问控制、负载均衡和 HTTPS/TLS 终止等功能。

主要特点和功能:
  • 路由规则定义: Ingress 允许管理员定义多条路由规则,将不同的外部请求映射到集群内的不同服务或服务版本。

  • 负载均衡: Ingress 可以通过不同的负载均衡算法(如轮询、加权轮询等)将流量分发到后端服务的多个实例中。

  • HTTPS/TLS 支持: Ingress 支持通过 TLS 终止来保护传输的数据安全,并且可以配置 HTTPS 重定向。

  • 虚拟主机和路径匹配: 可以基于域名(虚拟主机)或路径(路径匹配)将请求路由到不同的服务。

底层工作原理

Ingress 的底层工作原理取决于具体的云原生平台和实现方式,通常涉及以下几个步骤:

  1. Ingress Controller: 在 Kubernetes 中,Ingress Controller 是一个运行在集群中的控制器,负责监视和管理 Ingress 对象的创建、更新和删除。

  2. 请求处理: 当外部请求到达集群的入口时,Ingress Controller 根据 Ingress 对象定义的路由规则,将请求转发到相应的后端服务。

  3. 负载均衡: 如果配置了多个副本或者多个后端服务,Ingress Controller 可以使用负载均衡算法将请求分发到这些服务的实例中。

  4. TLS 终止: 如果启用了 TLS 终止,Ingress Controller 将负责处理来自客户端的加密流量,并将解密后的请求转发到内部服务。

2. Ingress 和 Sidecar 的区别与联系

区别:
  • 功能定位:

    • Ingress: 主要用于管理入口流量,即外部请求如何进入集群并路由到内部服务。
    • Sidecar: 是一种设计模式,用于将辅助功能与主应用程序容器部署在同一 Pod 中,如日志收集、安全代理等。
  • 部署位置:

    • Ingress: 部署在集群的外部,负责处理来自外部网络的入站流量。
    • Sidecar: 部署在与主应用程序容器相同的 Pod 内,与主应用程序共享相同的网络和存储。
联系:
  • 服务网格中的应用:

    • 在某些情况下,Ingress 可以与服务网格结合使用,例如 Istio 中的 Gateway 和 VirtualService,实现更复杂的流量管理和安全控制。
  • 安全性和可观察性增强:

    • Ingress 和 Sidecar 都有助于增强云原生应用的安全性和可观察性。Ingress 通过管理入口流量来控制和保护服务的访问,而 Sidecar 则通过与主应用程序共享容器内部部署,提供了监控、安全、日志等附加功能。

综上所述,Ingress 在云原生架构中负责管理入口流量,通过定义路由规则和负载均衡来将外部请求路由到内部服务;而 Sidecar 则是一种设计模式,用于在同一 Pod 内部署与主应用程序相关的辅助功能,二者各有定位和应用场景,但在某些情况下可以结合使用以实现更强大的功能和安全性。

  • 46
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿寻寻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值