您如果希望通過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為服務網關
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在Knative頁面的組件管理頁簽下,單擊一鍵部署Knative,然后在服務網關處選擇ASM,然后單擊一鍵部署。
部署成功后,即可在Knative中使用服務網格ASM。
步驟二:通過ASM入口網關訪問部署的服務
本小節結合Knative Service示例演示如何通過ASM完成服務部署。
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在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大盤。