您如果希望通过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大盘。