您如果希望通過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為服務網關
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在Knative頁面的組件管理頁簽下,單擊一鍵部署Knative,然後在服務網關處選擇ASM,然後單擊一鍵部署。
部署成功後,即可在Knative中使用服務網格ASM。
步驟二:通過ASM入口網關訪問部署的服務
本小節結合Knative Service樣本示範如何通過ASM完成服務部署。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在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"
在服務管理頁面的訪問網關列,擷取helloworld-go服務的網關地址。
執行以下命令,訪問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大盤。