搜索

1.9.3. Bookinfo 示例应用程序

download PDF

您可以使用 Bookinfo 示例应用程序来测试 OpenShift Container Platform 中的 Red Hat OpenShift Service Mesh 2.2.3 安装。

Bookinfo 应用程序显示一本书的信息,类似于在线书店的单一目录条目。应用会显示一个页面,其中描述了图书详细信息(ISBN、页数和其他信息)以及图书的评论。

Bookinfo 应用程序由这些微服务组成:

  • productpage 微服务调用 detailsreviews 微服务来产生页面信息。
  • details 微服务包括了书的信息。
  • review 微服务包括了书的评论。它同时还会调用 ratings 微服务。
  • ratings微服务包括了带有对本书的评论信息的评分信息。

reviews 微服务有三个版本:

  • 版本 v1 不调用 ratings 服务。
  • 版本 v2 调用 ratings 服务,并以一到五个黑色星来代表对本书的评分。
  • 版本 v3 调用 ratings 服务,并以一到五个红色星来代表对本书的评分。

1.9.3.1. 安装 Bookinfo 应用程序

本教程介绍了如何创建项目、将 Bookinfo 应用程序部署到该项目并在 Service Mesh 中查看正在运行的应用程序来创建示例应用程序。

先决条件:

  • 安装了 OpenShift Container Platform 4.1 或更高版本。
  • Red Hat OpenShift Service Mesh 2.2.3 installed.
  • 访问 OpenShift CLI(oc)。
  • 具有 cluster-admin 角色的帐户。
注意

Bookinfo 示例应用程序不能安装在 IBM Z 和 IBM Power Systems 上。

注意

本节中的命令假设 Service Mesh control plane 项目为 istio-system。如果在另一个命名空间中安装了 control plane,在运行前编辑每个命令。

流程

  1. 以具有 cluster-admin 权限的用户身份登录到 OpenShift Container Platform web 控制台。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有 dedicated-admin 角色的帐户。
  2. Home Projects
  3. 点击 Create Project
  4. Project Name 中输入 bookinfo,输入 Display NameDescription,然后点 Create

    • 或者,也可以通过 CLI 运行这个命令来创建 bookinfo 项目。

      $ oc new-project bookinfo
  5. Operators Installed Operators
  6. Project 菜单,使用 Service Mesh control plane 命名空间。在这个示例中,使用 istio-system
  7. Red Hat OpenShift Service Mesh Operator。
  8. Istio Service Mesh Member Roll 选项卡。

    1. 如果您已经创建了 Istio Service Mesh Member Roll,请名称,然后点击 YAML 标签来打开 YAML 编辑器。
    2. 如果您还没有创建 ServiceMeshMemberRoll,点 Create ServiceMeshMemberRoll
  9. 单击 Members,然后在 Value 字段中输入项目名称。
  10. Create 保存更新的 Service Mesh Member Roll。

    1. 或者,将以下示例保存到 YAML 文件中。

      Bookinfo ServiceMeshMemberRoll 示例 servicemeshmemberroll-default.yaml

      apiVersion: maistra.io/v1
      kind: ServiceMeshMemberRoll
      metadata:
        name: default
      spec:
        members:
        - bookinfo

    2. 运行以下命令上传该文件,并在 istio-system 命名空间中创建 ServiceMeshMemberRoll 资源。在本例中,istio-system 是 Service Mesh control plane 项目的名称。

      $ oc create -n istio-system -f servicemeshmemberroll-default.yaml
  11. 运行以下命令,以验证 ServiceMeshMemberRoll 是否已成功创建。

    $ oc get smmr -n istio-system -o wide

    STATUS 列为 Configured 时,安装成功完成。

    NAME      READY   STATUS       AGE   MEMBERS
    default   1/1     Configured   70s   ["bookinfo"]
  12. 在 CLI 中,通过应用 bookinfo.yaml 文件在 `bookinfo` 项目中部署 Bookinfo:

    $ oc apply -n bookinfo -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/platform/kube/bookinfo.yaml

    您应该看到类似如下的输出:

    service/details created
    serviceaccount/bookinfo-details created
    deployment.apps/details-v1 created
    service/ratings created
    serviceaccount/bookinfo-ratings created
    deployment.apps/ratings-v1 created
    service/reviews created
    serviceaccount/bookinfo-reviews created
    deployment.apps/reviews-v1 created
    deployment.apps/reviews-v2 created
    deployment.apps/reviews-v3 created
    service/productpage created
    serviceaccount/bookinfo-productpage created
    deployment.apps/productpage-v1 created
  13. 通过应用 bookinfo-gateway.yaml 文件创建入站网关 :

    $ oc apply -n bookinfo -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/networking/bookinfo-gateway.yaml

    您应该看到类似如下的输出:

    gateway.networking.istio.io/bookinfo-gateway created
    virtualservice.networking.istio.io/bookinfo created
  14. 设置 GATEWAY_URL 参数的值:

    $ export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.