全部產品
Search
文件中心

Container Service for Kubernetes:在Knative中使用ASM網關

更新時間:Nov 02, 2024

在大規模分布式系統、微服務應用流量管理等情境下,特別是已採用或計劃採用Istio作為服務網格架構的業務情境中,推薦您使用ASM網關實現Knative服務的流量分發和路由。ASM網關相容社區Istio規範,控制面組件由ACK託管,簡化了服務治理,包括服務調用之間的流量路由與拆分管理、服務間通訊的認證安全以及網格的可觀測效能力。

前提條件

已建立ASM執行個體,且ASM執行個體版本為1.21.6.84及以,請參見建立ASM執行個體

建立ASM執行個體時,在Kubernetes叢集地區,將已建立的ACK託管叢集ACK Serverless叢集添加到ASM執行個體中,並選中啟用資料面叢集KubeAPI訪問Istio資源

步驟一:部署Knative時選擇ASM為服務網關

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > Knative

  3. Knative頁面的組件管理頁簽下,單擊一鍵部署Knative,然後在服務網關處選擇ASM,然後單擊一鍵部署

    部署成功後,可在Knative中使用服務網格ASM。

步驟二:通過ASM入口網關訪問部署的服務

本小節結合一個Knative Service樣本示範如何通過ASM完成服務部署。

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > Knative

  3. Knative頁面的服務管理頁簽,選擇命名空間default,單擊使用模板建立,將以下YAML樣本粘貼至模板,然後單擊建立,建立一個名為helloworld-go的服務。

    重要

    請將下方代碼中的{REGION-ID}替換為您叢集的所在地區(例如cn-beijing),以確保可以正確訪問和使用鏡像。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry.{REGION-ID}.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 # 請將{REGION-ID}替換為您叢集所在地區。
            env:
            - name: TARGET
              value: "Knative"
  4. 服務管理頁面的訪問網關列,擷取helloworld-go服務的網關地址。

  5. 執行以下命令,訪問helloworld-go服務。

    curl -H "host: helloworld-go.default.example.com" http://39.XX.XX.XX # 網關的IP和網域名稱請以您的實際資料為準。

    預期輸出:

    Hello Knative!

    預期輸出表明,服務訪問成功。

(可選)步驟三:查看服務監控資料

Knative提供開箱即用的可觀測能力,在Knative頁面,單擊監控大盤頁簽,即可查看目標Knative服務的監控資料情況。如何開啟Knative監控大盤,請參見查看Knative服務監控大盤

相關文檔