本指南介绍如何安装 Online Boutique 示例应用来演示 Anthos Service Mesh。 如果您尚未安装 Anthos Service Mesh,请参阅安装指南部分,选择适合您的指南。
启用 Sidecar 自动注入功能
如需为示例应用启用自动 Sidecar 注入功能(自动注入),您必须向示例的命名空间添加修订版本标签。您添加的标签取决于您是部署了 Anthos Service Mesh Google 管理的控制层面,还是安装了集群内控制层面。Sidecar 注入器 Webhook 会使用修订版本标签将注入的 Sidecar 与特定控制层面修订版本相关联。
集群内
为应用创建命名空间:
kubectl create namespace demo
使用以下命令查找
istiod
的标签:kubectl -n istio-system get pods -l app=istiod --show-labels
输出类似于以下内容:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-198-6-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586 istiod-asm-198-6-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586
在输出中的
LABELS
列下,记下istiod
修订版本标签的值,该值位于前缀istio.io/rev=
之后。在此示例中,该值为asm-198-6
。将修订版本标签应用于
demo
命名空间。在以下命令中,REVISION 是您在上一步中记下的istiod
修订版本标签的值。kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
您可以忽略输出中的
"istio-injection not found"
消息。这意味着命名空间之前没有istio-injection
标签,对于 Anthos Service Mesh 的新安装或新部署,这是预期现象。如果命名空间同时具有istio-injection
和修订版本标签,自动注入将失败,因此 Anthos Service Mesh 文档中的所有kubectl label
命令都包含移除istio-injection
标签。
由 Google 管理
为应用创建命名空间:
kubectl create namespace demo
将
asm-managed
修订版本标签应用于demo
命名空间。kubectl label namespace demo istio-injection- istio.io/rev=asm-managed --overwrite
您可以忽略输出中的
"istio-injection not found"
消息。这意味着命名空间之前没有istio-injection
标签,对于 Anthos Service Mesh 的新安装或新部署,这是预期现象。如果命名空间同时具有istio-injection
和修订版本标签,自动注入将失败,因此 Anthos Service Mesh 文档中的所有kubectl label
命令都包含移除istio-injection
标签。
下载和部署示例
现在,demo
命名空间已启用自动注入功能,当您部署 BookInfo 应用的服务时,Sidecar 代理会与每项服务一起注入。
如果您尚未安装
kpt
,请进行安装:gcloud components install kpt
使用
kpt
下载示例:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
将示例部署到集群:
kubectl apply -n demo -f online-boutique
找到
frontend-external
Service 的外部 IP 地址:kubectl get service frontend-external -n demo
使用浏览器访问应用,以确认安装:
http://EXTERNAL_IP/
对于 GKE,您可以在 Google Cloud 控制台中探索 Anthos Service Mesh 可观测性功能。请注意,拓扑图最长可能需要 10 分钟才会显示网格中的服务。
探索完毕后,移除此 Online Boutique 示例:
kubectl delete namespaces demo