部署 Online Boutique 示例应用

本指南介绍如何安装 Online Boutique 示例应用来演示 Anthos Service Mesh。 如果您尚未安装 Anthos Service Mesh,请参阅安装指南部分,选择适合您的指南。

启用 Sidecar 自动注入功能

如需为示例应用启用自动 Sidecar 注入功能(自动注入),您必须向示例的命名空间添加修订版本标签。您添加的标签取决于您是部署了 Anthos Service Mesh Google 管理的控制层面,还是安装了集群内控制层面。Sidecar 注入器 Webhook 会使用修订版本标签将注入的 Sidecar 与特定控制层面修订版本相关联。

集群内

  1. 为应用创建命名空间:

    kubectl create namespace demo
    
  2. 使用以下命令查找 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

  3. 将修订版本标签应用于 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 管理

  1. 为应用创建命名空间:

    kubectl create namespace demo
    
  2. 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 代理会与每项服务一起注入。

  1. 如果您尚未安装 kpt,请进行安装:

    gcloud components install kpt
    
  2. 使用 kpt 下载示例:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  3. 将示例部署到集群:

    kubectl apply -n demo -f online-boutique
    
  4. 找到 frontend-external Service 的外部 IP 地址:

    kubectl get service frontend-external -n demo
    
  5. 使用浏览器访问应用,以确认安装:

    http://EXTERNAL_IP/
    

对于 GKE,您可以在 Google Cloud 控制台中探索 Anthos Service Mesh 可观测性功能。请注意,拓扑图最长可能需要 10 分钟才会显示网格中的服务。

探索完毕后,移除此 Online Boutique 示例:

kubectl delete namespaces demo