You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
ALB Ingress
通过 kubectl 创建 ALB Ingress
复制全文
下载 pdf
通过 kubectl 创建 ALB Ingress
ALB Ingress 基于火山引擎应用型负载均衡(Application Load Balancer,ALB),提供更加丰富的七层负载均衡能力。本文主要介绍通过 YAML 文件创建 ALBInstance,并配置 ALB Ingress 的相关操作。
注意
配置 ALB Ingress 前,请务必仔细阅读 ALB Ingress 使用注意事项
背景信息
ALBInstance 是 ALB Ingress Controller 管理的 CRD 资源,ALB Ingress Controller 使用 ALBInstance 来配置和监听 ALB 实例。
alt
说明
一个 ALBInstance 对应一个 ALB 实例,但一个 ALBInstance 可对应多个 Ingress,即 ALBInstance 与 Ingress 是一对多的对应关系。
前提条件
  • 已开通 ALB 产品服务。若未开通,请首先登录您的火山引擎账号,然后单击 服务授权,并在弹出的页面中单击 立即授权,完成跨服务授权。
注意
如需使用证书中心的证书,请首先登录您的火山引擎账号,然后单击 服务授权,并在弹出的页面中单击 立即授权,完成跨服务授权。
  • (可选)如需对接 ALB 标准版实例,请将 alb-ingress-controller 组件升级至 v0.31.1 及以上版本。详情请参见 升级组件
创建 ALBInstance
对接已有 ALB 实例
使用如下 YAML 配置,创建 ALBInstance 并对接已有 ALB 实例。
apiVersion: loadbalancer.vke.volcengine.com/v1beta1
kind: ALBInstance
metadata:
name: alb # ALBInstance 资源名称
spec:
instanceID: "alb-2dgns526uiv41fi5***" # 已存在的 ALB 实例 ID,支持标准版或基础版实例
listeners:
- protocol: "HTTP" # 监听器的协议
port: 80 # 监听器协议为 HTTP 时的监听端口
- protocol: "HTTPS" # 监听器的协议
port: 443 # 监听器协议为 HTTPS 时的监听端口
certificateSource: "alb" # 监听器证书来源,取值:alb(ALB)、cert_center(证书中心)。标准版实例仅支持使用证书中心
certificateID: "cert-2wx20lm7uquww7oot***" # 监听器协议为 HTTPS 时默认全域名使用的服务器证书
domainExtensions:
- domain: "example.com" # 监听器协议为 HTTPS 时支持指定域名绑定服务器证书
certificateSource: "alb" # 监听器证书来源,取值:alb(ALB)、cert_center(证书中心)。标准版实例仅支持使用证书中心
certificateID: "cert-2wx20lo6vuww07oot***" # 监听器协议为 HTTPS 时支持指定域名绑定服务器证书
enableHTTP2: false
enableQUIC: false
spec字段中的详细参数说明如下所示。
字段
类型
是否必选
描述
取值示例
是否支持修改
instanceID
String
指定已存在的 ALB 实例 ID。
alb-2dgns526uiv41fi5***
listeners.protocol
String
监听器协议。取值:
  • HTTP(默认值)
  • HTTPS
HTTP
listeners.port
Integer
监听器端口。取值:
  • 取值范围:1~65535
  • 默认值:80(HTTP)、443(HTTPS)
80
listeners.certificateSource
String
监听器默认证书的来源。取值:
  • alb:ALB 管理的证书。
  • cert_center:证书中心管理的证书。
说明
ALB 标准版实例仅支持使用证书中心证书。
alb
listeners.certificateID
String
监听器默认证书 ID。
cert-2wx20lm7uquww7***
listeners.domainExtensions.domain
String
HTTPS 监听器关联的扩展域名,支持泛域名。
example.com
listeners.domainExtensions.certificateSource
String
监听器扩展域名的证书来源,取值:
  • alb:ALB 管理的证书。
  • cert_center:证书中心管理的证书。
说明
ALB 标准版实例仅支持使用证书中心证书。
alb
listeners.domainExtensions.certificateID
String
HTTPS 监听器扩展域名的证书 ID。
cert-2wx20lo6vuww07***
listeners.enableHTTP2
Boolean
HTTP2.0 特性开关,该参数仅对 HTTPS 监听器有效。取值:
  • true:启用 HTTP2.0 协议特性。
  • false:(默认值)禁用 HTTP2.0 协议特性。
false
listeners.enableQUIC
Boolean
QUIC 特性开关,该参数仅对 HTTPS 监听器有效。取值:
  • true:启用 QUIC 协议特性。
  • false:(默认值)禁用 QUIC 协议特性。
说明
该功能是 ALB 产品的邀测功能,如需使用,请联系客户经理申请。
false
说明
当您选择创建 HTTPS 协议的监听器时,需要首先完成 HTTPS 证书配置,详情请参见 ALB Ingress 配置 HTTPS 协议
新建 ALB 实例
使用如下 YAML 配置,创建 ALBInstance 并同时创建新的 ALB 实例。
apiVersion: loadbalancer.vke.volcengine.com/v1beta1
kind: ALBInstance
metadata:
name: alb # ALBInstance 资源名称
spec:
instance:
name: "demo-alb" # ALB 实例名称
edition: "Basic" # ALB 实例类型,取值:Basic(基础版)、Standard(标准版)。未填写该字段时,默认为 Basic,即基础版
zoneMappings: # ALB 实例位于多可用区的子网列表
- subnetId: "subnet-bp12mw1f8k3jg0****" # 子网 ID,用于 ALB 实例在此可用区下的私网 IP 地址分配
- subnetId: "subnet-bp12mw1f8k3jg1****"
addressType: "public" # 负载均衡类型。取值:public(公网类型)、 private(私网类型)
eipSpec:
isp: "BGP" # 公网负载均衡实例的 EIP 线路类型。取值:BGP
bandwidth: 10 # 带宽上限。当 billingType 为 2 时,取值范围为 1~500Mbps;当 billingType 为 3 时,取值范围为 1~200Mbps
billingType: 2 # 计费类型。取值:2(按量计费-按带宽上限)、3(按量计费-按实际流量)
bandwidthPackageID: "bwp-2d63yyj3ki4u858oz***" # 共享带宽资源包 ID
ipVersion: "ipv4" # IP 版本。取值:ipv4
deleteProtection: "on" # ALB 实例的删除保护功能,on 表示开启,off 表示关闭
listeners:
- protocol: "HTTP" # 监听器的协议
port: 80 # 监听器协议为 HTTP 时的监听端口
- protocol: "HTTPS" # 监听器的协议
port: 443 # 监听器协议为 HTTPS 时的监听端口
certificateSource: "alb" # 监听器证书来源,取值:alb(ALB)、cert_center(证书中心)。标准版实例仅支持使用证书中心
certificateID: "cert-2wx20lm7uquww7oot********" # 监听器协议为 HTTPS 时默认全域名使用的服务器证书
domainExtensions:
- domain: "test.com" # 监听器协议为 HTTPS 时支持指定域名绑定服务器证书
certificateSource: "alb" # 监听器证书来源,取值:alb(ALB)、cert_center(证书中心)。标准版实例仅支持使用证书中心
certificateID: "cert-2wx20lo6vuww07oot********" # 监听器协议为 HTTPS 时支持指定域名绑定服务器证书
enableHTTP2: false
enableQUIC: false
spec字段中的详细参数说明如下所示。
字段
类型
是否必选
描述
取值示例
是否支持修改
instance.name
String
新创建 ALB 的实例名称。
alb
instance.edition
String
新创建 ALB 的实例类型,取值:
  • Basic:基础版
  • Standard:标准版
未填写该字段时,默认为 Basic,即基础版。
Basic
instance.zoneMappings.N.subnetId
String
子网 ID,ALB 实例在此可用区下的私网 IP 地址将从此子网网段中分配。
注意
  • 允许配置多个不同的子网。
  • 多个不同的子网不允许位于同一可用区。
subnet-bp12mw1f8k3jg0***
instance.addressType
String
新创建 ALB 的网络类型。取值:
  • public:(默认值)公网
  • private:私网
public
instance.eipSpec.isp
String
公网 ALB 实例的公网 IP 线路类型。默认为 BGP。更多取值,请参见 EIP 产品文档
BGP
instance.eipSpec.bandwidth
Integer
公网 ALB 实例的公网 IP 的带宽峰值。
  • instance.eipSpec.billingType取值为 2 时,取值范围为 1~500,单位为 Mbps。
  • instance.eipSpec.billingType取值为 3 时,取值范围为 1~200,单位为 Mbps。
说明
如果您通过工单提升了 EIP 的带宽上限,则此处的带宽取值范围会同步提升。详情请参见 EIP 使用限制
10
instance.eipSpec.billingType
Integer
公网 ALB 实例的公网 IP 的计费方式。取值:
  • 2:(默认值)表示按量计费-按带宽上限计费。
  • 3,表示按量计费-按实际流量计费。
2
instance.eipSpec.bandwidthPackageID
String
共享带宽包 ID。
-
instance.ipVersion
String
IP 版本。取值固定为 ipv4。
ipv4
instance.deleteProtection
String
ALB 实例的删除保护功能,取值:
  • on:表示开启删除保护功能。
  • off:(默认值)表示禁用删除保护功能。
on
listeners.protocol
String
监听器协议。取值:
  • HTTP(默认值)
  • HTTPS
HTTP
listeners.port
Integer
监听器端口。取值:
  • 取值范围:1~65535
  • 默认值:80(HTTP)、443(HTTPS)
80
listeners.certificateSource
String
监听器默认证书的来源。取值:
  • alb:ALB 管理的证书。
  • cert_center:证书中心管理的证书。
说明
ALB 标准版实例仅支持使用证书中心证书。
alb
listeners.certificateID
String
监听器默认证书 ID。
cert-2wx20lm7uquww7***
listeners.domainExtensions.domain
String
HTTPS 监听器关联的扩展域名,支持泛域名。
example.com
listeners.domainExtensions.certificateSource
String
监听器扩展域名的证书来源,取值:
  • alb:ALB 管理的证书。
  • cert_center:证书中心管理的证书。
说明
ALB 标准版实例仅支持使用证书中心证书。
alb
listeners.domainExtensions.certificateID
String
HTTPS 监听器扩展域名的证书 ID。
cert-2wx20lo6vuww07***
listeners.enableHTTP2
Boolean
HTTP2.0 特性开关,该参数仅对 HTTPS 监听器有效。取值:
  • true:启用 HTTP2.0 协议特性。
  • false:(默认值)禁用 HTTP2.0 协议特性。
false
listeners.enableQUIC
Boolean
QUIC 特性开关,该参数仅对 HTTPS 监听器有效。取值:
  • true:启用 QUIC 协议特性。
  • false:(默认值)禁用 QUIC 协议特性。
说明
该功能是 ALB 产品的邀测功能,如需使用,请联系客户经理申请。
false
说明
当您选择创建 HTTPS 协议的监听器时,需要首先完成 HTTPS 证书配置,详情请参见 ALB Ingress 配置 HTTPS 协议
配置 WAF 防护
说明
如果您需要为 ALB 配置 WAF 防护功能,需要:
  • 已安装 alb-ingress-controller 组件,并升级至 v0.31.0 及以上版本。详情请参见 升级组件
  • 如果需要对已经创建的 ALB 实例配置 WAF 防护功能,可以到 ALB 控制台 进行操作。
使用 ALBInstance 创建新的 ALB 实例时,支持使用spec.instance中的wafConfig字段配置 ALB 实例的 WAF 防护功能。启用该功能后,ALB 实例会接入 Web 应用防火墙服务进行安全防护。当未配置wafConfig字段时,容器服务不会修改 ALB 侧的配置。本小节以创建私网类型的 ALB 为例,示例和说明如下:
apiVersion: loadbalancer.vke.volcengine.com/v1beta1
kind: ALBInstance
metadata:
name: alb # ALBInstance 资源名称
spec:
instance:
name: "demo-alb" # ALB 实例名称
zoneMappings: # ALB 实例位于多可用区的子网列表
- subnetId: "subnet-22joc5bb2gnpc7r2***" # 子网 ID,用于 ALB 实例在此可用区下的私网 IP 地址分配
addressType: "private" # 负载均衡类型。取值:public(公网类型)、 private(私网类型)
wafConfig: # ALB 实例 WAF 防护功能
wafProtectionEnabled: "on" # WAF 防护开关,取值:on(启用)、off(禁用)
wafInstanceID: "waf-1" # 开启 WAF 防护时,指定的 Web 应用防火墙实例 ID
listeners:
- protocol: "HTTP" # 监听器的协议
port: 80 # 监听器协议为 HTTP 时的监听端口
spec.instancewafConfig字段的参数说明如下所示。
字段
类型
是否必选
描述
取值示例
是否支持修改
wafProtectionEnabled
String
配置 ALB 实例的 WAF 防护功能。取值:
  • on:启用 WAF 防护。
  • off:禁用 WAF 防护。
on
wafInstanceID
String
配置 Web 应用防火墙服务实例 ID。
说明
wafProtectionEnabledon时,必须配置。
waf-1
配置访问日志投递
说明
如果您需要为 ALB 配置访问日志投递功能,需要:
  • 已安装 alb-ingress-controller 组件,并升级至 v0.31.0 及以上版本。详情请参见 升级组件
  • 如果需要对已经创建的 ALB 实例配置访问日志投递,可以到 ALB 控制台进行操作。
使用 ALBInstance 创建新的 ALB 实例时,支持使用spec.instance中的tlsAccessLogConfig字段配置 ALB 实例的访问日志投递功能。启用启该功能后,ALB 会将实例的访问日志投递至日志服务(TLS)中。当未配置tlsAccessLogConfig字段时,容器服务不会修改 ALB 侧的配置。本小节以创建私网类型的 ALB 为例,示例和说明如下:
apiVersion: loadbalancer.vke.volcengine.com/v1beta1
kind: ALBInstance
metadata:
name: alb # ALBInstance 资源名称
spec:
instance:
name: "demo-alb" # ALB 实例名称
zoneMappings: # ALB 实例位于多可用区的子网列表
- subnetId: "subnet-22joc5bb2gnpc7r2***" # 子网 ID,用于 ALB 实例在此可用区下的私网 IP 地址分配
addressType: "private" # 负载均衡类型。取值:public(公网类型)、 private(私网类型)
tlsAccessLogConfig: # ALB 实例的访问日志投递功能
tlsAccessLogEnabled: "on" # 日志投递开关,取值:on(启用)、off(禁用)
tlsProjectID: "1155d3bb-4a85-4208***" # 日志项目 ID
tlsTopicID: "7b0aa3b3-5d46-47e0-9a37***" # 日志主题 ID
listeners:
- protocol: "HTTP" # 监听器的协议
port: 80 # 监听器协议为 HTTP 时的监听端口
spec.instancetlsAccessLogConfig字段的参数说明如下所示。
字段
类型
是否必选
描述
取值示例
是否支持修改
tlsAccessLogEnabled
String
ALB 实例访问日志开关。取值:
  • on:启用访问日志投递。
  • off:禁用访问日志投递。
on
tlsTopicID
String
配置日志项目 ID。
说明
tlsAccessLogEnabledon时,必须配置。
76fa2b9b-73e4-4d8b-9528-a4b000***
tlsProjectID
String
配置日志主题 ID。
说明
tlsAccessLogEnabledon时,必须配置。
7bcd0f1b-be4a-4e47-b103-51a3f***
配置监听器访问控制(ACL)
说明
如果您需要为 ALB 的监听器配置访问控制(ACL)功能,需要:
  • 已安装 alb-ingress-controller 组件,并升级至 v0.31.0 及以上版本。详情请参见 升级组件
  • 配置访问控制策略组,详情请参见 访问控制
使用 ALBInstance 对接已有 ALB 实例或创建新的 ALB 实例时,支持使用spec.listeners中的aclConfig字段配置 ALB 监听器的访问控制(ACL)功能。当未配置aclConfig字段时,容器服务不会修改 ALB 侧的配置。本小节以对接已有 ALB 实例为例,示例和说明如下:
apiVersion: loadbalancer.vke.volcengine.com/v1beta1
kind: ALBInstance
metadata:
name: alb # ALBInstance 资源名称
spec:
instanceID: "alb-2dgns526uiv41fi5***" # 已有 ALB 实例的 ID
listeners:
- protocol: "HTTP" # 监听器的协议
port: 80 # 监听器协议为 HTTP 时的监听端口
aclConfig: # 监听器 ACL 功能
aclEnabled: "on" # ACL 功能开关,取值:on(启用)、off(禁用)
aclType: "white" # ACL 控制模式,取值:white(白名单)、black(黑名单)
aclIDs: # ACL 策略组 ID
- "acl-2tgv80851uku81***"
- "acl-2tgv80660qiv41***"
...
spec.listenersaclConfig字段的参数说明如下所示。
字段
类型
是否必选
描述
取值示例
是否支持修改
aclEnabled
String
监听器访问控制功能开关。取值:
  • on:启用访问控制。
  • off:禁用访问控制。
on
aclType
String
访问控制模式。取值:
  • white:白名单模式。该模式下,仅所选策略组内的 IP 地址能访问。
  • black:黑名单模式。该模式下,所选策略组内的 IP 地址无法访问。
说明
aclStatuson时,必须配置。
white
aclIDs
Array of String
配置访问策略组 ID。
说明
  • aclStatuson时,必须配置。
  • 最多允许配置 5 个策略组。每个策略组最多可以包含 300 个 IP 地址条目。每个 IP 地址条目可以是一个 IP 地址或者一个 CIDR 地址段。关于策略组的更多内容,请参见 访问控制
acl-1
监听器个性化配置
说明
如果您需要为 ALB 的监听器添加个性化配置,需要:
  • 已安装 alb-ingress-controller 组件,并升级至 v0.31.0 及以上版本。详情请参见 升级组件
使用 ALBInstance 对接已有 ALB 实例或创建新的 ALB 实例时,支持使用spec.listeners中的customizedConfig字段配置 ALB 监听器的个性化配置。当未配置customizedConfig字段时,容器服务不会修改 ALB 侧的配置。个性化配置支持创建并管理常规的 NGINX 配置策略,详情请参见 个性化配置本小节以对接已有 ALB 实例为例,示例和说明如下:
apiVersion: loadbalancer.vke.volcengine.com/v1beta1
kind: ALBInstance
metadata:
name: alb # ALBInstance 资源名称
spec:
instanceID: "alb-2dgns526uiv41fi5***" # 已有 ALB 实例的 ID
listeners:
- protocol: "HTTP" # 监听器的协议
port: 80 # 监听器协议为 HTTP 时的监听端口
customizedConfig:
customizedConfigEnabled: "on" # 个性化配置开关,取值:on(启用)、off(禁用)
customizedCfgID: "ccfg-2dbdimgq77sao3r***" # 个性化配置 ID
...
spec.listenerscustomizedConfig字段的参数说明如下所示。
字段
类型
是否必选
描述
取值示例
是否支持修改
customizedConfigEnabled
String
监听器是否绑定个性化配置。取值:
  • on:绑定个性化配置。
  • off:不绑定个性化配置。
on
customizedCfgID
String
个性化配置 ID。
说明
customizedConfigEnabledon时,必须配置。
ccfg-2dbdimgq77sao3r***
查看 ALBInstance 名称和状态
当您在集群中创建 ALBInstance 后,可以使用如下方法确定 ALBInstance 的状态。
  1. 单击左侧导航栏中的 集群
  1. 在集群列表页面,单击目标集群。
  1. 在集群管理页面的左侧导航栏中,选择 工作负载 > 对象浏览器
  1. 对象浏览器 页面的 CRD 分类下,单击 albinstance
  • alt
  1. albinstance 详情页面,查看创建的 ALBInstance 资源名称。
  • alt
  1. 单击 操作 栏中的 编辑 Yaml,查看 ALBInstance 资源详情。其中status字段展示了 ALBInstance 资源的状态信息。
  • alt
  • status字段中不同的取值含义如下表所示。
  • 字段
    类型
    含义
    phase
    String
    表示 ALBInstance 资源状态:
    • Pending:表示关联的 ALBInstance 还未调谐完成。
    • Running:表示 ALBInstance 对应的配置都已经更新到服务端。
    • Configuring:表示 ALBInstance 处于调谐中。
    • Deleting:表示 ALBInstance 处于删除中。
    instanceID
    String
    表示关联的 ALB 实例 ID。
    ingress
    *v1.LoadBalancerIngress
    表示 ALB 的 IP 地址、监听器端口和协议。
创建 ALB Ingress
注意
配置 ALB Ingress 时,paths.pathType参数仅用作校验,具体取值(Exact、Prefix 或 Regex)无实际意义。同时,在不同 ALB 实例类型时的默认动作不同:
  • 为 ALB 标准版实例时,无论paths.pathType为何取值,默认为 精确匹配 模式。如需实现 前缀匹配,请在paths.path中使用通配符*实现,例如将paths.path配置为/api/*
  • 为 ALB 基础版实例时,无论paths.pathType为何取值,默认为 前缀匹配 模式。
基于域名转发
ALB Ingress 支持将不同的域名访问,转发到不同的后端。示例alb-ingress.yaml代码如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: alb-ingress # 路由规则的名称
namespace: default # 路由规则所属的命名空间
spec:
ingressClassName: alb # ALBInstance 资源名称
rules:
- host: first.example.com # 需要对外提供访问的域名
http:
paths:
- pathType: Prefix # 路径匹配规则,仅用于校验,具体参数无实际意义
path: / # 请求匹配的路径
backend:
service:
name: service-demo-a # 需要对接的服务名称
port:
number: 80 # 需要对接服务的端口号
- host: second.example.com # 需要对外提供访问的域名
http:
paths:
- pathType: Prefix # 路径匹配规则,仅用于校验,具体参数无实际意义
path: / # 请求匹配的路径
backend:
service:
name: service-demo-b # 需要对接的服务名称
port:
number: 80 # 需要对接服务的端口号
基于路径转发
ALB Ingress 支持将相同域名、不同路径的访问,转发到不同的后端。示例alb-ingress.yaml代码如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: alb-ingress # 路由规则的名称
namespace: default # 路由规则所属的命名空间
spec:
ingressClassName: alb # ALBInstance 资源名称
rules:
- host: example.com # 需要对外提供访问的域名
http:
paths:
- path: /foo # 请求匹配的路径
pathType: Prefix # 路径匹配规则,仅用于校验,具体取值无实际意义
backend:
service:
name: service-demo-a # 需要对接的服务名称
port:
number: 80 # 需要对接服务的端口号
- path: /bar # 请求匹配的路径
pathType: Prefix # 路径匹配规则,仅用于校验,具体取值无实际意义
backend:
service:
name: service-demo-b # 需要对接的服务名称
port:
number: 80 # 需要对接服务的端口号
配置未指定 host 规则
ALB Ingress 支持配置未指定 host 规则。示例alb-ingress.yaml代码如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: alb-ingress # 路由规则的名称
namespace: default # 路由规则所属的命名空间
spec:
ingressClassName: alb # ALBInstance 资源名称
rules:
- host: first.example.com # 需要对外提供访问的域名
http:
paths:
- pathType: Prefix # 路径匹配规则,仅用于校验,具体取值无实际意义
path: / # 请求匹配的路径
backend:
service:
name: service-demo-a # 需要对接的服务名称
port:
number: 80 # 需要对接服务的端口号
- host: second.example.com # 需要对外提供访问的域名
http:
paths:
- pathType: Prefix # 路径匹配规则,仅用于校验,具体取值无实际意义
path: / # 请求匹配的路径
backend:
service:
name: service-demo-b # 需要对接的服务名称
port:
number: 80 # 需要对接服务的端口号
- http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: service-demo
port:
number: 80
配置默认转发规则的后端服务器
示例alb-ingress.yaml代码如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: alb-ingress # 路由规则的名称
namespace: default # 路由规则所属的命名空间
spec:
ingressClassName: alb # ALBInstance 资源名称
rules:
- http:
paths:
- pathType: Prefix # 路径匹配规则,仅用于校验,具体取值无实际意义
path: /
backend:
service:
name: service-demo
port:
number: 80
匹配正则表达式路径
说明
邀测·申请试用】:当 ALB 为基础版时,功能仍处于邀测阶段,如需使用,请提交申请。
ALB Ingress 支持在 path 路径上定义正则表达式路径或非正则表达式路径,如下表所示。
路径匹配方式
说明
非正则表达式
  • 必须以正斜线/ 开头。
  • 仅允许包含字母、数字和-_/.%?#&等字符,且不可包括//
正则表达式
  • 必须以/~开头,且/~只能出现一次。
  • 支持大小写字母、数字和.-_/?~^*$:()[]+|等字符。
  • /~开头表示区分大小写的正则匹配,/~* 开头表示不区分大小写的正则匹配。
说明
当您在 ALB Ingress 的 path 中使用 /~/~* 配置正则表达式路径时,VKE 传递给 ALB 时会去掉对应的 /。例如:当您撰写的路径为 /~/test/[a-z]* 时,实际转发给 ALB 的路径为 ~/test/[a-z]*。此时,类似于 /test/test 的路径即可命中该正则表达式。
示例alb-ingress.yaml代码如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: alb-ingress
namespace: default
spec:
ingressClassName: alb
rules:
- host: example.com
http:
paths:
- path: /~/test/[a-z]* # 使用正则表达式匹配路径
pathType: Prefix # 路径匹配规则,仅用于校验,具体取值无实际意义
backend:
service:
name: service-demo
port:
number: 80
最近更新时间:2026.08.18 17:45:53
这个页面对您有帮助吗?
有用
有用
无用
无用