详情页标题前

阿里云容器服务ACKIngress概述-云淘科技

详情页1

在Kubernetes集群中,Ingress对集群服务(Service)中外部可访问的API对象进行管理,提供七层负载均衡能力。本文介绍Ingress基本概念、工作原理和使用说明。

索引

Ingress基本概念

在Kubernetes集群中,Ingress作为集群内服务对外暴露的访问接入点,几乎承载着集群内服务访问的所有流量。Ingress是Kubernetes中的一个资源对象,用来管理集群外部访问集群内部服务的方式。您可以通过Ingress资源来配置不同的转发规则,从而实现根据不同的规则设置访问集群内不同的Service所对应的后端Pod。

Ingress资源仅支持配置HTTP流量的规则,无法配置一些高级特性,例如负载均衡的算法、Sessions Affinity等,这些高级特性都需要在Ingress Controller中进行配置。

Nginx Ingress Controller

当前Kubernetes官方维护的是Nginx Ingress Controller,ACK基于社区版的Nginx Ingress Controller进行了优化。ACK的Nginx Ingress Controller与社区Nginx Ingress Controller完全兼容,支持社区所有的Annotation。您在ACK集群或ACK Serverless集群中选择安装的Nginx Ingress Controller组件,即为定制版的Nginx Ingress Controller组件。关于如何安装Nginx Ingress Controller组件,请参见安装Nginx Ingress Controller组件。

工作原理

为了使得Nginx Ingress资源正常工作,集群中必须要有一个Nginx Ingress Controller来解析Nginx Ingress的转发规则。Nginx Ingress Controller收到请求,匹配Nginx Ingress转发规则转发到后端Service所对应的Pod,由Pod处理请求。Kubernetes中的Service、Nginx Ingress与Nginx Ingress Controller有着以下关系:

  • Service是后端真实服务的抽象,一个Service可以代表多个相同的后端服务。

  • Nginx Ingress是反向代理规则,用来规定HTTP/HTTPS请求应该被转发到哪个Service所对应的Pod上。例如根据请求中不同的Host和URL路径,让请求落到不同的Service所对应的Pod上。

  • Nginx Ingress Controller是Kubernetes集群中的一个组件,负责解析Nginx Ingress的反向代理规则。如果Nginx Ingress有增删改的变动,Nginx Ingress Controller会及时更新自己相应的转发规则,当Nginx Ingress Controller收到请求后就会根据这些规则将请求转发到对应Service的Pod上。

Nginx Ingress Controller通过API Server获取Ingress资源的变化,动态地生成Load Balancer(例如Nginx)所需的配置文件(例如nginx.conf),然后重新加载Load Balancer(例如执行nginx -s reload重新加载Nginx)来生成新的路由转发规则。阿里云容器服务ACKIngress概述-云淘科技

Nginx Ingress Controller可通过配置LoadBalancer类型的Service来创建SLB,因此可以从外部通过SLB访问到Kubernetes集群的内部服务。根据Nginx Ingress配置的不同规则来访问不同的服务。

Nginx Ingress相关文档

  • Nginx Ingress高级用法

  • 创建Nginx Ingress

  • Nginx Ingress访问日志分析与监控

  • 通过Ingress Controller来实现应用的流量复制

ALB Ingress Controller

ALB Ingress基于阿里云应用型负载均衡ALB(Application Load Balancer)之上提供更为强大的Ingress流量管理方式,兼容Nginx Ingress,具备处理复杂业务路由和证书自动发现的能力,支持HTTP、HTTPS和QUIC协议,完全满足在云原生应用场景下对超强弹性和大规模七层流量处理能力的需求。

警告

为Ingress服务的ALB是由Controller完全托管的,您不能自行在ALB控制台上面进行配置,否则可能造成Ingress服务的异常。关于ALB额度的更多信息,请参见使用限制。

工作原理

ALB Ingress Controller通过API Server获取Ingress资源的变化,动态地生成AlbConfig,然后依次创建ALB实例、监听、路由转发规则以及后端服务器组。Kubernetes中Service、Ingress与AlbConfig有着以下关系:

  • Service是后端真实服务的抽象,一个Service可以代表多个相同的后端服务。
  • Ingress是反向代理规则,用来规定HTTP/HTTPS请求应该被转发到哪个Service上。例如,根据请求中不同的Host和URL路径,让请求转发到不同的Service上。
  • AlbConfig是在ALB Ingress Controller提供的CRD资源,使用AlbConfig CRD来配置ALB实例和监听。一个AlbConfig对应一个ALB实例。

阿里云容器服务ACKIngress概述-云淘科技

ALB Ingress相关文档

  • 管理ALB Ingress Controller组件

  • 通过ALB Ingress访问服务

  • ALB Ingress服务高级用法

  • 为ACK专有集群授予ALB Ingress Controller访问权限

MSE Ingress Controller

MSE Ingress是在MSE云原生网关之上提供更为强大的Ingress流量管理方式,兼容Nginx Ingress以及50多个Nginx Ingress的注解,覆盖90%以上的Nginx Ingress业务场景,支持多服务版本同时灰度发布、灵活的服务治理能力以及全方位的安全防护保障,能够满足大规模云原生分布式应用的流量治理诉求。

功能介绍

更多关于MSE Ingress云原生网关的功能介绍,请参见:

  • Nginx Ingress、ALB Ingress和MSE Ingress对比

  • 通过MSE Ingress访问容器服务

  • MSE Ingress支持的Annotation

  • MSE Ingress高级用法

工作原理

组成部分

  • MSE Ingress Controller

    MSE Ingress Controller本身不是网络数据平面,它是管理MSE云原生网关实例以及配置的控制平面。即MSE Ingress Controller不处理任何业务请求流量,它位于流量旁路,管理着处理业务流量的MSE云原生网关实例。

    您需要在ACK或者ACK Serverless集群中安装MSE Ingress Controller,通过使用该组件提供的MseIngressConfig的CRD资源以声明式配置的方式来管理云原生网关实例,以及设置网关对Ingress资源的监听选项。

    关于如何安装MSE Ingress Controller组件,请参见管理组件。

  • MSE云原生网关:由MSE Ingress Controller根据用户配置的MseIngressConfig资源创建,包含控制面(Control Plane)和数据面(Data Plane)。

    • 控制面(Control Plane):控制面监听您已关联的ACK集群中的Ingress、IngressClass、Service等资源,经内部解析之后实时下发给网关数据面。

    • 数据面(Data Plane): 数据面是流量治理配置的实施者,按照控制面下发的治理规则处理外部请求,并转发到后端目标服务。

工作机制

MSE Ingress Controller负责监听集群中创建的MseIngressConfig资源,实时动态维护该资源对应的云原生网关实例的生命周期以及该网关与ACK集群的关联关系。

MSE云原生网关的控制面通过关联的ACK集群的API Server获取Ingress资源的变化,然后动态更新MSE云原生网关的路由规则。当MSE云原生网关收到请求时,匹配Ingress转发规则将请求转发到后端Service所对应的Pod。

Kubernetes中Service、Ingress、IngressClass、MseIngressConfig和MSE Ingress Controller存在以下关系:

  • Service:是后端真实服务的抽象,一个Service可以代表多个相同的后端服务。

  • Ingress:是反向代理规则,用来规定HTTP和HTTPS请求应该被转发到哪个Service上。例如,根据请求中不同的Host和URL路径,使请求转发到不同的Service上。

  • IngressClass:是Ingress处理器的描述,用于在K8s集群中声明一个Ingress处理器实现,关联该IngressClass的Ingress资源会被该Ingress处理器解析。此外,需要通过IngressClass的Parameter字段关联一个MseIngressConfig(MSE云原生网关),用于实施被解析的Ingress资源描述的流量管理规则。

  • MseIngressConfig:是由MSE Ingress Controller提供的CRD,用于描述云原生网关实例的基本信息。

  • MSE Ingress Controller:本身不是网络数据平面,它是管理MSE云原生网关实例以及配置的控制平面。MSE Ingress Controller负责监听集群中的MseIngressConfig资源,协调MSE云原生网关实例用于实施Ingress资源描述的流量管理规则。

下图是MSE Ingress Controller工作示意图。

阿里云容器服务ACKIngress概述-云淘科技

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/167245.html

(0)
上一篇 2023年12月10日 上午10:04
下一篇 2023年12月10日 上午10:06
详情页2

相关推荐

  • 阿里云容器服务ACK管理Nginx Ingress Controller组件-云淘科技

    容器服务ACK或ACK Serverless集群提供基于Nginx的Nginx Ingress Controller组件。本文介绍如何在ACK或ACK Serverless集群中安装、升级、配置和卸载Nginx Ingress Controller组件。 安装Nginx Ingress Controller组件 若未创建集群,可按照方式一安装Nginx In…

    2023年12月10日
  • 阿里云容器服务ACK通过AlbConfig配置ALB实例-云淘科技

    AlbConfig是由ALB Ingress Controller提供的CRD资源,ALB Ingress Controller使用AlbConfig来配置ALB实例和监听。本文介绍如何创建、修改、更新AlbConfig以及开启日志服务等操作。 功能索引 Service、Ingress与AlbConfig的关系 创建AlbConfig 更新AlbConfig…

    阿里云容器服务 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云容器服务ACK为ACK专有集群授予ALB Ingress Controller访问权限-云淘科技

    若您需要在ACK专有集群中通过ALB Ingress访问服务,部署服务前需要对云产品授予ALB Ingress Controller的相关权限。本文介绍如何对ACK专有集群中的ALB Ingress Controller组件授权。 前提条件 已创建Kubernetes专有版集群 已为集群安装ALB Ingress Controller组件 注意事项 仅ACK…

    阿里云容器服务 2023年12月10日
  • 阿里云容器服务ACK部署高可靠Ingress Controller-云淘科技

    在Kubernetes集群中,Ingress是授权入站连接到达集群服务的规则集合,可以为您提供七层负载均衡能力,您可以通过Ingress配置提供外部可访问的URL、负载均衡、SSL、基于名称的虚拟主机等。作为集群流量接入层,Ingress的高可靠性显得尤为重要,本文介绍如何部署一套高性能、高可靠的Ingress接入层。 前提条件 创建Kubernetes托管…

    2023年12月10日
  • 阿里云容器服务ACK部署Nginx Ingress Controller-云淘科技

    云边协同的场景中,边缘单元下的服务呈现本单元访问闭环的特性, 您可以通过在云端节点池和边缘节点池部署Nginx Ingress Controller,为边缘单元下的服务提供负载均衡等功能。本文介绍如何在ACK Edge集群的云端节点池和边缘节点池部署Nginx Ingress Controller。 背景信息 阿里云容器服务 Edge 版采用非侵入方式增强,…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。