当您的应用程序需要为用户提供统一的公网或内网入口时,可以在Kubernetes集群中部署ASM入口网关(Ingress Gateway)。入口网关作为统一的访问入口,可以简化流量的管理和路由,并利用七层负载均衡能力根据HTTP请求的路径、主机头或其他属性将流量智能分发至相应的后端服务。
前提条件
操作步骤
- 登录ASM控制台,在左侧导航栏,选择。 
- 在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择。 
- 在入口网关页面,单击创建,配置网关的基本信息。 - 网关配置项说明如下。您也可以在入口网关页面,单击使用YAML创建定义入口网关。具体操作,请参见使用KubeAPI管理入口网关。 - 配置项 - 说明 - 名称 - 自定义网关的名称。 - 部署集群 - 选择网关部署的集群。 - 网关服务类型 - 支持LoadBalancer、ClusterIP和NodePort。关于三种类型的说明,请参见Service。 说明- 如果您的数据面集群是注册集群,且需要选择LoadBalancer,请确保集群支持LoadBalancer类型的Service,避免入口网关创建失败。 - 传统型负载均衡CLB/网络型负载均衡NLB - 仅当网关服务类型选择LoadBalancer时,需要进行此配置。 - 支持公网访问和私网访问。 - 新建负载均衡 - 仅当网关服务类型选择LoadBalancer时,需要进行此配置。 - 新建负载均衡: - 选择传统型负载均衡CLB时,您需要从选择CLB规格下拉列表中选择所需的负载均衡规格。 
- 选择网络型负载均衡NLB时,您需要从选择NLB可用区下拉列表中选择至少两个可用区对应的虚拟交换机。 
 
- 使用已有负载均衡:从已有负载均衡列表中选择。 
 重要- 建议您为每个Kubernetes服务分配一个负载均衡。如果多个Kubernetes服务复用同一个负载均衡,存在以下风险和限制: - 使用已有的负载均衡会强制覆盖已有监听,可能会导致您的应用不可访问。 
- Kubernetes通过Service创建的负载均衡不能复用,只能复用您手动在控制台(或调用OpenAPI)创建的负载均衡。 
- 复用同一个负载均衡的多个Service不能有相同的前端监听端口,否则会造成端口冲突。 
- 复用负载均衡时,监听的名字以及虚拟服务器组的名字被Kubernetes作为唯一标识符。请勿修改监听和虚拟服务器组的名字。 
- 不支持跨集群、跨地域复用负载均衡。 
 - 端口映射 - 配置协议和服务端口。 说明- 控制台默认提供2个Istio常用的端口。您可以按需进行修改。 - 资源规格 - 选择网关Pod的CPU和内存规格。 - 网关副本数 - 设置网关副本数。 
- 可选:单击高级选项,进行相关配置。 - 配置项 - 说明 - 外部流量策略 - 设置外部流量策略。 - Local:流量只发给本机的Pod。 
- Cluster:流量可以转发到集群中其他节点上的Pod。 
 - 扩缩容HPA - 选中扩缩容HPA,然后进行如下配置: - 指标:设置监控项和阈值。超过该阈值,将增加网关副本数;低于该阈值,将减少网关副本数。 - 如果您同时设置了CPU和内存的阈值,则表示只要其中一个高于或低于该阈值,都会进行扩缩容。 
- 最大副本数:网关可扩容的副本数量上限。 
- 最小副本数:网关可缩容的副本数量下限。 
 说明- 该功能仅适用于企业版或旗舰版。 - 滚动升级 - 选中滚动升级,然后进行如下配置: - 不可用最大副本数:设置滚动升级时不可用最大的副本数量。 
- 超过期望的副本数:设置滚动升级时最多不能超过的副本数量。例如设置为25%,表示滚动升级时副本数量不能超过原来副本的125%。 
 - 启用基于MultiBuffer的TLS加解密性能优化 - 选中启用基于MultiBuffer的TLS加解密性能优化,将提升TLS加解密的速度。 - 支持的节点亲和性标签选择:根据节点标签匹配性能优化的节点。 
- 轮询延时(毫秒):设置该参数,可以减少加解密操作的等待时间。更多信息,请参见配置项说明。 
 说明- 该功能仅适用于企业版或旗舰版。 - 尽量分散部署网关副本 - 设置 - podAntiAffinity时,Pod优先部署到不同的节点上。- 自定义部署策略 - 您可以自定义网关的 - nodeSelector、- tolerations和- affinity。关于字段的详细说明,请参见ASM网关CRD说明。- 优雅下线 - 选中优雅下线后,当负载均衡停用时,将不会对网关业务产生影响。 - 连接超时时间(秒):负载均衡移除网关Pod后,会等待配置的连接超时时间,然后再断开与Pod的连接。配置该参数,可以给网关Pod提供一个缓冲时间,来处理现有的连接。网关Pod默认优雅下线时间为30s,负载均衡侧配置的超时时间通常不应该超过30s。 说明- 该功能仅适用于企业版或旗舰版。 
- 配置完成后,单击创建。 - 网关状态为运行中,表示创建成功。服务地址即为入口网关的IP地址。 
相关操作
入口网关创建成功后,您可以通过ASM控制台管理入口网关,也可以通过ACK控制台查看入口网关。
通过ASM控制台管理入口网关
- 登录ASM控制台,在左侧导航栏,选择。 
- 在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择。 
- 在入口网关页面,对入口网关进行管理。 - 操作 - 说明 - 查看或编辑入口网关 - 方式一:在目标网关右侧,单击查看详情,按需修改相关配置。 
- 方式二:在目标网关右侧,单击查看YAML,在编辑对话框,按需修改相关字段,然后单击确定。关于字段的详细说明,请参见ASM网关CRD说明。 
 - 删除入口网关 - 在目标网关右侧,单击删除,在确认对话框,单击确定。 重要- 入口网关删除后,外部服务将无法通过该入口网关访问ASM内部服务。被删除的入口网关无法恢复,只能重建,请谨慎操作。 
通过ACK控制台查看入口网关
相关文档
- 如果您需要通过API创建入口网关,请参见CreateASMGateway - 创建ASM网关。 
- 如果您需要为网格内应用提供统一的流量出口,请参见创建出口网关。 
- 如果您需要按照比例将流量分发到服务的不同版本,例如灰度发布和A/B测试,请参见使用Istio资源实现版本流量路由。 
- 如果您需要查看App、服务、应用版本之间的调用关系、流量走向,可以使用ASM网格拓扑功能。具体操作,请参见查看应用的网格拓扑。 
- 关于网关的更多功能介绍,请参见ASM网关概述。