全部產品
Search
文件中心

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

更新時間:Jul 04, 2024

您如果希望通過ACK Knative實現高效的服務管理和安全的網路通訊,推薦您使用阿里雲服務網格(ASM)作為服務網關。ASM是一款全託管式服務網格平台,相容社區Istio開源服務網格。將ASM用作Knative的網路層實現可以簡化服務的治理,包括服務調用之間的流量路由與拆分管理、服務間通訊的認證安全以及網格可觀測效能力。

前提條件

  • 已建立ACK託管叢集ACK Serverless叢集。具體操作,請參見建立ACK託管叢集建立ACK Serverless叢集

  • 已建立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頁面,單擊監控大盤頁簽,即可查看helloworld-go服務的監控資料情況。如何開啟Knative監控大盤,請參見通過阿里雲Prometheus監控查看Knative大盤