帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 弹性容器实例 ECI
  4. 操作指南
  5. 网络
  6. ALB Ingress管理
  7. 通过ALB Ingress实现混合挂载、跨地域挂载和本地IDC挂载

通过ALB Ingress实现混合挂载、跨地域挂载和本地IDC挂载

  • ALB Ingress管理
  • 发布于 2025-04-15
  • 0 次阅读
文档编辑
文档编辑

ALB Ingress支持使用alb.ingress.kubernetes.io/actions.<服务名称>注解配置后端转发服务器组。后端转发服务器组支持通过服务名称或服务器组ID挂载,实现K8s集群内Pod和集群外ECS实例混合挂载。通过ALB和云企业网CEN(Cloud Enterprise Network)转发路由器等产品的组合配置,可以使ALB将请求转发至其他地域VPC内的服务器,实现跨地域挂载。或使ALB将请求转发到本地IDC服务器,实现本地IDC挂载。本文介绍如何通过ALB Ingress实现混合挂载、跨地域挂载和本地IDC挂载。

索引

  • 注意事项

  • 场景一:请求转发至ACK或ACK Serverless集群内多个Service

  • 场景二:请求同时转发至ACK或ACK Serverless集群内Pod及集群外ECS

  • 场景三:请求转发至集群内Pod以及集群外跨地域VPC上的ECS

  • 场景四:请求转发至集群内Pod及本地IDC服务器

注意事项

  • alb.ingress.kubernetes.io/actions.<服务名称>注解中的服务名称必须和rule字段backend服务名称保持一致。

  • 配置后端转发服务器组时,rule字段backend下的服务端口名称需要为use-annotation。

  • 使用alb.ingress.kubernetes.io/actions.<服务名称>注解支持将多个服务器组挂载在ALB实例上。

  • 基础版ALB实例最多挂载5个服务器组。

  • 同时通过ServerGroupID与ServiceName+ServicePort挂载服务器组时,优先根据ServerGroupID匹配后端服务器组。

场景一:请求转发至ACK或ACK Serverless集群内多个Service

前提条件

  • 已在所在地域创建专有网络VPC1,并在VPC1内创建交换机VSW1和VSW2,且VSW1与VSW2处于不同可用区。具体操作,请参见创建和管理专有网络和创建和管理交换机。

  • 已在VPC1内创建ACK或ACK Serverless集群。具体操作,请参见创建Kubernetes托管版集群、创建ACK Serverless集群。

  • 已在ACK或ACK Serverless集群中安装ALB Ingress Controller。具体操作,请参见管理ALB Ingress Controller组件。

  • 已在ACK或ACK Serverless集群,通过ALBConfig创建ALB实例,并部署 tea-svc 和 coffee-svc 这两个后端服务。具体操作,请参见通过ALB Ingress访问服务。

场景示例

如下图所示,ALB Ingress多服务器组转发动作,支持通过配置ServiceName+ServicePort创建或挂载多个后端服务器组,将请求转发至集群内多个Service。

场景一

操作步骤

  1. 配置ALB Ingress。

    部署以下内容到tea-ingress.yaml文件中。在定义请求服务时,将请求转发至集群内多个Service。

    # 将请求根据主机名和路径转发到不同的后端服务组,并按照权重进行流量分配。
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: tea-ingress
      annotations:
        alb.ingress.kubernetes.io/actions.forward: |
           [{
               "type": "ForwardGroup",
               "ForwardConfig": {
                 "ServerGroups" : [{
                   "ServiceName": "tea-svc",
                   "Weight": 80,
                   "ServicePort": 80
                 },
                 {
                   "ServiceName": "coffee-svc",
                   "Weight": 20,
                   "ServicePort": 80
                 }]
               }
           }]
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          - path: /path
            pathType: Prefix
            backend:
              service:
                name: forward
                port:
                  name: use-annotation
  2. 通过命令行方式访问服务。具体操作,请参见访问服务。

场景二:请求同时转发至ACK或ACK Serverless集群内Pod及集群外ECS

前提条件

  • 已在所在地域创建专有网络VPC1,具体操作,请参见创建和管理专有网络。

  • 已在VPC1内创建ACK或ACK Serverless集群。具体操作,请参见创建Kubernetes托管版集群、创建ACK Serverless集群。

  • 已在ALB实例所在VPC1内创建至少一台云服务器ECS(Elastic Compute Service),并且在ECS中部署Web服务。具体操作,请参见自定义购买实例和手动部署LNMP环境(Alibaba Cloud Linux 2)。

  • 已创建服务器组。具体操作,请参见创建和管理服务器组。

  • 已将集群外云服务器ECS添加到已创建的服务器组中。具体操作,请参见创建和管理服务器组。

  • 已通过alb.ingress.kubernetes.io/actions.<服务名称>注解配置转发动作,挂载已创建的服务器组。

场景示例

如下图所示,ALB Ingress多服务器组转发动作支持您在ALB控制台或OpenAPI创建服务器组,将当前VPC网络中的ECS实例挂载在服务器组,通过获取服务器组ID并在Ingress上配置,将请求同时转发至集群内Pod和集群外ECS,实现ECS实例和K8s集群混合挂载。

image.png

操作步骤

  1. 配置ALB Ingress。

    部署以下内容到tea-ingress.yaml文件中。在定义请求服务时,同时将请求转发至集群内Pod和集群外ECS。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: tea-ingress
      annotations:
        alb.ingress.kubernetes.io/actions.forward: |
           [{
               "type": "ForwardGroup",
               "ForwardConfig": {
                 "ServerGroups" : [{
                   "ServiceName": "tea-svc",
                   "Weight": 30,
                   "ServicePort": 80
                 },
                 {
                   "ServiceName": "coffee-svc",
                   "Weight": 20,
                   "ServicePort": 80
                 },
                 {
                   "ServerGroupID": "sgp-71aexb9y93ypo*****",
                   "Weight": 30
                 },
                 {
                   "ServerGroupID": "sgp-slygpbvm2cydo*****",
                   "Weight": 20
                 }]
               }
           }]
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          - path: /path
            pathType: Prefix
            backend:
              service:
                name: forward
                port:
                  name: use-annotation
  2. 通过命令行方式访问服务。具体操作,请参见访问服务。

场景三:请求转发至集群内Pod以及集群外跨地域VPC上的ECS

前提条件

  • 已分别在两个不同的地域创建专有网络VPC,并在VPC内创建处于不同可用区的交换机VSW。例如,在西南1(成都)地域创建专有网络VPC1,在华东1(杭州)创建专有网络VPC2。

    • 在VPC1内创建交换机VSW1和VSW2。VSW1位于可用区A,VSW2位于可用区B。

    • 在VPC2内创建交换机VSW3和VSW4。VSW3位于可用区H,VSW4位于可用区I。

    关于如何创建专有网络和交换机,请参见创建和管理专有网络和创建和管理交换机。

  • 已在VPC1内创建ACK或ACK Serverless集群,并在ACK或ACK Serverless集群通过ALBConfig创建ALB实例。具体操作,请参见创建Kubernetes托管版集群和通过ALB Ingress访问服务。

  • 已在VPC2内至少创建一台云服务器ECS(Elastic Compute Service),并且在ECS中部署Web服务。具体操作,请参见自定义购买实例和手动部署LNMP环境(Alibaba Cloud Linux 2)。

  • 已创建云企业网实例,并为该云企业网实例购买带宽包。具体操作,请参见云企业网实例和购买带宽包。

  • 已在西南1(成都)和华东1(杭州)地域,分别创建转发路由器实例。具体操作,请参见创建转发路由器实例。

场景示例

如下图所示,ALB Ingress多服务器组转发动作支持您在ALB控制台或OpenAPI创建服务器组,通过云企业网CEN创建跨地域VPC连接,将跨地域VPC网络中的ECS实例挂载在服务器组。获取服务器组ID并在Ingress上配置,将请求同时转发至集群内Pod和集群外跨地域VPC上的ECS实例,实现跨地域挂载服务器。

场景三

例如,ACK或ACK Serverless集群已在阿里云西南1(成都)地域VPC1专有网络中,通过ALB Config在该专有网络中创建ALB实例。用户通过ALB、CEN等产品组合配置,将访问请求转发至跨地域(阿里云华东1(杭州)地域)线下VPC2内的ECS实例上。

异地挂载

操作步骤

  1. 配置云企业网CEN,创建跨地域VPC连接。

    具体操作,请参见使用ALB挂载跨地域VPC内的服务器。

    说明

    ALB Ingress用户无需在ALB控制台为ALB实例配置监听,在步骤3通过ALB Ingress配置监听。

  2. 将跨地域VPC内云服务器ECS添加到ALB服务器组中。

    具体操作,请参见添加后端服务器。

  3. 通过alb.ingress.kubernetes.io/actions.<服务名称>注解配置转发动作,挂载已创建好的指定服务器组。定义请求服务时,将请求转发至集群内Pod及集群外跨地域VPC的ECS服务器。

    部署以下内容到tea-ingress.yaml文件中。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: tea-ingress
      annotations:
        alb.ingress.kubernetes.io/actions.forward: |
           [{
               "type": "ForwardGroup",
               "ForwardConfig": {
                 "ServerGroups" :  [{
                   "ServiceName": "tea-svc",
                   "Weight": 30,
                   "ServicePort": 80
                 },
                 {
                   "ServiceName": "coffee-svc",
                   "Weight": 20,
                   "ServicePort": 80
                 },
                 {
                   "ServerGroupID": "sgp-71aexb9y93ypo*****",
                   "Weight": 30
                 },
                 {
                   "ServerGroupID": "sgp-slygpbvm2cydo*****",
                   "Weight": 20
                 }]
               }
           }]
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          - path: /path
            pathType: Prefix
            backend:
              service:
                name: forward
                port:
                  name: use-annotation

场景四:请求转发至集群内Pod及本地IDC服务器

前提条件

  • 已创建云企业网实例,并为该云企业网实例创建转发路由器实例。具体操作,请参见云企业网实例和创建转发路由器实例。

  • 已创建物理专线和边界路由器VBR。具体操作,请参见创建和管理独享专线连接和创建和管理边界路由器。

注意事项

使用ALB挂载IDC服务器的注意事项,请参见注意事项。

场景示例

如下图所示,ALB Ingress多服务器组转发动作支持您在ALB控制台或OpenAPI创建服务器组,通过云企业网CEN物理专线和边界路由器VBR,将本地IDC服务器挂载在服务器组中。获取服务器组ID并在Ingress上配置,将请求同时转发至集群内Pod和线下IDC服务器,实现线下挂载服务器。

场景四

例如,ACK或ACK Serverless集群在阿里云西南1(成都)地域VPC1专有网络中,通过ALB Config在该专有网络中创建ALB实例。您可通过ALB、CEN、VBR物理专线等产品组合配置,将访问请求转发至该地域的IDC服务器中。如下图所示。

挂载本地IDC

操作步骤

  1. 配置云企业网CEN,将ALB实例所在VPC1和VBR连接至转发路由器,本地IDC通过VBR接入阿里云网络。具体操作,请参见使用ALB挂载IDC服务器。

    说明

    ALB Ingress用户不需要在ALB控制台为ALB实例配置监听,在步骤2通过ALB Ingress配置监听。

  2. 通过alb.ingress.kubernetes.io/actions.<服务名称>注解配置转发动作,挂载已创建好的指定服务器组。定义请求服务时,将请求转发至集群内Pod及集群外线下IDC服务器。

    部署以下内容到tea-ingress.yaml文件中。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: tea-ingress
      annotations:
        alb.ingress.kubernetes.io/actions.forward: |
           [{
               "type": "ForwardGroup",
               "ForwardConfig": {
                 "ServerGroups" :  [{
                   "ServiceName": "tea-svc",
                   "Weight": 30,
                   "ServicePort": 80
                 },
                 {
                   "ServiceName": "coffee-svc",
                   "Weight": 20,
                   "ServicePort": 80
                 },
                 {
                   "ServerGroupID": "sgp-ihydxb9y93ypo*****",
                   "Weight": 30
                 },
                 {
                   "ServerGroupID": "sgp-pd0ipbvm2cydo*****",
                   "Weight": 20
                 }]
               }
           }]
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          - path: /path
            pathType: Prefix
            backend:
              service:
                name: forward
                port:
                  name: use-annotation
相关文章

ALB Ingress概述 2025-04-15 17:15

本文介绍Ingress基本概念、ALB Ingress Controller工作原理和ALB Ingress Controller使用说明。 Ingress基本概念

管理ALB Ingress Controller组件 2025-04-15 17:15

ACK Serverless集群基于ALB七层转发规则提供了托管的ALB Ingress Controller。本文介绍如何在ACK Serverless集群安装、升级和卸载ALB Ingress Controller。

通过ALB Ingress访问服务 2025-04-15 17:15

ALB Ingress支持HTTP、HTTPS和QUIC协议,满足云原生应用在需要高度弹性和大规模七层流量管理时的各种需求,与Nginx Ingress兼容。同时,支持复杂的业务路由配置和TLS证书的自动管理,提供灵活的流量管理机制。您可以通过配置转发规则,实现不同URL访问集群内不同的Servic

ALB配额计算方式 2025-04-15 17:15

配额(Quota)是指在特定时间段内,对某个资源或服务的使用量或访问次数的限制,通常用于控制资源的分配和使用。在阿里云负载均衡(ALB)服务中,配额计算方式是根据不同的资源类型和资源使用情况来确定的。本文从标准版ALB实例、服务器组、监听和转发规则几个方面介绍ALB的配额计算方式。 ALB配额计算示

ALB Ingress服务高级用法 2025-04-15 17:15

在ACK Serverless集群中,ALB Ingress对集群服务(Service)中外部可访问的API对象进行管理,提供七层负载均衡能力。本文介绍如何使用ALB Ingress将来自不同域名或URL路径的请求转发给不同的后端服务器组、将HTTP访问重定向至HTTPS及实现灰度发布等功能。

ALB Ingress配置词典 2025-04-15 17:15

您可通过配置AlbConfig资源以自定义ALB实例的配置。本文列举了ALB Ingress支持的Annotation(注解)以及AlbConfig字段的具体内容和用法。 索引 Annotation字段 <

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1