在 Anthos Service Mesh 上部署 Online Boutique 示例应用

本指南介绍如何安装 Online Boutique 示例应用来演示 Anthos Service Mesh。

前提条件

本指南假定您具备:

下载和部署示例

  1. 使用 kpt 下载示例:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  2. 为应用创建命名空间:

    kubectl create namespace demo
    
  3. 启用自动 Sidecar 注入(自动注入)。使用以下命令查找 istiod 服务中的标签,其中包含要在后续步骤中使用的修订版本标签值。

    kubectl -n istio-system get pods -l app=istiod --show-labels
    

    输出类似于以下内容:

    NAME                                READY   STATUS    RESTARTS   AGE   LABELS
    istiod-asm-186-8-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-186-8,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-186-8-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-186-8,istio=istiod,pod-template-hash=5788d57586

    在输出中的 LABELS 列下,记下 istiod 修订版本标签的值,该值位于前缀 istio.io/rev= 之后。在此示例中,该值为 asm-186-8

  4. 将修订版本标签应用于命名空间。在以下命令中,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 标签。

  5. 将示例部署到集群:

    kubectl apply -n demo -f online-boutique
    
  6. 找到应用的外部 IP 地址:

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

    http://EXTERNAL_IP/
    

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

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

kubectl delete namespaces demo