ALB是專門面向HTTP、HTTPS和QUIC等應用層負載場景的負載均衡服務,具備超強彈性及大規模七層流量處理能力,支持Header和Cookie灰度發布。本文介紹如何在Knative中使用ALB網關。
前提條件
已創建ACK Serverless集群或Kubernetes托管版集群。具體操作,請參見創建集群或創建Kubernetes托管版集群。
配置新建ALB網關
當前支持使用以下兩種方式配置ALB網關。
方式一:部署Knative時選擇ALB網關
方式二:修改Knative配置文件配置新建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
并設置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!
預期輸出表明服務訪問成功。