ALB是专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务,具备超强弹性及大规模七层流量处理能力,支持Header和Cookie灰度发布。本文介绍如何在Knative中使用ALB网关。

前提条件

已创建ASK集群或Kubernetes托管版集群。具体操作,请参见创建ASK集群创建Kubernetes托管版集群

步骤一:配置ALB网关

当前支持使用以下两种方式配置ALB网关。

方式一:部署Knative时选择ALB网关
  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择应用 > Knative
  5. 组件管理页签,单击一键部署Knative
  6. 在部署Knative页面,选择ALB服务网关并选择至少两个虚拟交换机。关于创建虚拟交换机的具体操作,请参见创建交换机
  7. 配置完成后,单击一键部署
方式二:修改Knative配置文件

对于已部署的Knative,您可以通过修改Knative配置文件,配置ALB网关。

  1. 使用以下命令,编辑config-network.yaml文件。
    kubectl -n knative-serving edit configmap config-network
  2. 参照以下格式修改vswitch-ids,修改完毕后保存并退出config-network.yaml文件。vswitch-ids用于设置ALB Ingress虚拟交换机ID,您需要至少指定两个不同可用区交换机ID。关于ALB支持的地域和可用区,请参见支持的地域与可用区
    apiVersion: v1
    data:
      ...
      vswitch-ids: 'vsw-uf6kbvc7mccqia2pi****,vsw-uf66scyuw2fncpn38****'
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving

步骤二:通过ALB网关进行服务访问

  1. 使用以下命令,获取ALB的DNS访问地址。
    kubectl get albconfig knative-internet -ojson | jq .status.loadBalancer.dnsname

    预期输出:

    "alb-ijvf32ubve64wz****.cn-shanghai.alb.aliyuncs.com"
  2. 使用以下命令,进行服务访问。
    curl -H  "Host: helloworld-go.default.example.com" http://alb-ijvf32ubve64wz****.cn-shanghai.alb.aliyuncs.com

设置CNAME域名解析

阿里云应用型负载均衡ALB支持将您拥有的常用域名通过CNAME方式解析到ALB实例的公网服务域名上,便于您访问各种网络资源。具体操作,请参见设置CNAME域名解析