服务网格 ASM(Service Mesh)支持两种Sidecarless模式,Ambient模式和ACMG模式。本文将介绍这两种模式的入门示例应用的部署步骤,帮助您提前准备环境,以便尽快体验Sidecarless模式的特性。
前提条件
已创建符合条件的Kubernetes集群。更多信息,请参见适合的Kubernetes集群及配置。
已创建启用Ambient Mesh模式或ACMG模式的ASM实例。
在创建服务网格页面的数据面模式区域,选中启用Ambient Mesh模式或启用ACMG模式,其他配置项请按照实际情况进行配置。具体操作,请参见创建ASM实例。
已为ASM实例添加ACK集群。具体操作,请参见添加集群到ASM实例。
已创建入口网关。具体操作,请参见创建入口网关。
部署示例应用
本文使用bookinfo作为示例应用。更多信息,请参见在ASM实例关联的集群中部署应用。
在ACK集群中部署示例应用
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择 。
开启Ambient模式或ACMG模式。
Ambient模式
在全局命名空间页面的数据面模式列,单击default命名空间对应的切换为Ambient Mesh模式,然后在确认对话框,单击确定。
ACMG模式
通过ASM实例的kubeconfig操作控制面集群,开启ACMG模式。
kubectl label namespace default istio.io/dataplane-mode=acmg
从Github的Istio项目库Bookinfo应用中下载Bookinfo的YAML文件,然后执行以下命令,在default命名空间中部署该示例应用。
kubectl apply -f bookinfo.yaml
部署sleep应用。
使用以下内容创建sleep.yaml。
执行以下命令,在default命名空间中部署该示例应用。
kubectl apply -f sleep.yaml
部署notsleep应用。
使用以下内容创建notsleep.yaml。
执行以下命令,在default命名空间中部署该示例应用。
kubectl apply -f notsleep.yaml
在ASM实例中部署网格资源
使用以下内容,创建bookinfo-gateway.yaml文件。
YAML文件用于创建网关规则Gateway对象和虚拟服务VirtualService对象。
在ASM实例对应的KubeConfig环境下,执行以下命令,部署网格资源。
kubectl apply -f bookinfo-gateway.yaml
验证基本功能
执行以下命令,设置入口网关的环境变量。
export GATEWAY_HOST=istio-ingressgateway.istio-system export GATEWAY_SERVICE_ACCOUNT=ns/istio-system/sa/istio-ingressgateway
测试bookinfo应用程序,查看在有无网关的情况下能否正常运行。
执行以下命令:
kubectl exec deploy/sleep -- curl -s "http://$GATEWAY_HOST/productpage" | grep -o "<title>.*</title>"
预期输出:
<title>Simple Bookstore App</title>
执行以下命令:
kubectl exec deploy/sleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"
预期输出:
<title>Simple Bookstore App</title>
执行以下命令:
kubectl exec deploy/notsleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"
预期输出:
<title>Simple Bookstore App</title>
以上结果表明在有无网关的情况下,bookinfo应用程序均可以正常运行。