ALB是专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务,具备超强弹性及大规模七层流量处理能力,支持Header和Cookie灰度发布。本文介绍如何在Knative中使用ALB网关。
前提条件
已创建ACK Serverless集群或Kubernetes托管版集群。具体操作,请参见创建集群或创建Kubernetes托管版集群。
配置新建ALB网关
当前支持使用以下两种方式配置ALB网关。
方式一:部署Knative时选择ALB网关
方式二:修改Knative配置文件配置新建ALB
对于已部署的Knative,您可以通过修改Knative配置文件来配置ALB网关。关于如何部署Knative,请参见部署Knative、部署Knative。
执行以下命令,编辑config-network.yaml文件。
kubectl -n knative-serving edit configmap config-network
参照以下格式修改并保存config-network.yaml文件。
修改
ingress.class: alb.ingress.networking.knative.dev
并设置vswitch-ids
后,保存并退出config-network
文件即可配置ALB网关。关于ALB支持的地域和可用区,请参见ALB支持的地域与可用区。apiVersion: v1 data: ... ingress.class: alb.ingress.networking.knative.dev # 表示使用ALB作为Ingress控制器。 vswitch-ids: vsw-uf6kbvc7mccqia2pi****,vsw-uf66scyuw2fncpn38**** # 此处的参数请替换为您已创建的两个不同可用区交换机ID,系统在创建ALB时自动绑定VSwitch。 ... kind: ConfigMap metadata: name: config-network namespace: knative-serving ...
使用已有ALB网关
对于已部署的Knative,您可以通过修改Knative配置文件来配置ALB网关。关于如何部署Knative,请参见在ACK集群中部署Knative、在ACK Serverless集群中部署Knative。
执行以下命令,编辑config-network.yaml文件。
kubectl -n knative-serving edit configmap config-network
参照以下格式修改并保存config-network.yaml文件。
在配置文件中修改
ingress.class: alb.ingress.networking.knative.dev
并设置albconfig
为已有ALB。此时不需要配置vswitch-ids
。apiVersion: v1 data: ... ingress.class: alb.ingress.networking.knative.dev # 表示使用ALB作为Ingress控制器。 albconfig: alb-dev-albconfig # 用于指定已存在的ALB配置名称,若无需新建ALB而是使用现有ALB,则需填写此项。 ... kind: ConfigMap metadata: name: config-network namespace: knative-serving ...
通过ALB网关访问部署的服务
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在Knative页面的服务管理页签下,选择命名空间为default,然后单击使用模板创建,将以下YAML示例粘贴至模板,最后单击创建。
创建一个名为
helloworld-go
的服务。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go spec: template: spec: containers: - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 env: - name: TARGET value: "Knative"
在服务管理页面的默认域名和访问网关列,分别获取
helloworld-go
服务的域名和网关地址。执行以下命令,访问
helloworld-go
服务。curl -H "host: helloworld-go.default.example.com" http://alb-******.cn-beijing.alb.aliyuncs.com # 网关IP和域名请以您的实际数据为准。
预期输出:
Hello Knative!
预期输出表明服务访问成功。
- 本页导读 (1)