部署演示应用 Bookinfo
请参考本文档,在服务网格中跨多个集群、在相同命名空间内部署 Bookinfo 应用,以验证多集群服务网格的能力。
目录
准备项目和命名空间在多个集群中部署 Bookinfo 应用前提条件应用介绍准备镜像和 YAML 文件步骤一键部署应用步骤将 Sidecar 注入应用的服务步骤通过 Ingress Gateway 访问 Bookinfo 应用步骤访问验证准备项目和命名空间
请为部署该应用准备项目和命名空间,配置要求如下:
-
所有集群都必须作为关联集群关联到平台现有项目。
-
用于部署应用的同名命名空间必须存在于所有集群中。
说明:基于多集群服务网格的跨地域灾备或负载均衡,只能在服务网格内各集群中同名命名空间下的同名服务之间进行。
你可以按照以下步骤准备项目和命名空间:
在多个集群中部署 Bookinfo 应用
在集群 c1 和 c2 中的同名命名空间 ns1 内部署 Bookinfo 应用。
前提条件
你拥有平台可访问的镜像仓库,并且可以向该仓库推送镜像。
本文档以 Harbor 为例。你需要在 Harbor 中准备一个用于上传镜像的项目(访问级别设置为 public),并将该项目分配给平台上为 Bookinfo 准备的项目使用。你可以在平台上部署或集成镜像管理工具 Harbor,并将 Harbor 中用于上传镜像的项目分配给平台上为 Bookinfo 准备的项目。
应用介绍
Bookinfo 是 Istio 提供的一个示例应用,模拟在线书店。它由四个独立的服务组成,这些服务共同提供查看书籍简介、书籍详情(ISBN、页数等)以及部分书评的功能。
构成 Bookinfo 的服务如下:
Bookinfo 的端到端架构如下所示。
准备镜像和 YAML 文件
在平台上部署 Bookinfo 应用之前,需要先从 customer portal 系统下载部署 Bookinfo 应用所需的镜像和 YAML 文件。
通过执行脚本,对镜像进行打标签并上传到平台可访问的镜像仓库,同时修改 YAML 文件中的镜像地址。确保平台在部署应用时能够顺利拉取所需镜像。
步骤
-
登录 customer portal,在 Application Marketplace 中搜索 Bookinfo,并将提供的产品文件下载到本地。
TIP如需访问 customer portal 系统,请联系技术支持。
-
打开本地终端,执行以下命令解压下载的文件并加载镜像。
NOTE解压后,你将获得以下文件:
images.tar:Bookinfo 的镜像包。bookinfo.yaml:Bookinfo 的 YAML 文件。docker_script.sh:用于给镜像打标签、上传镜像以及修改 YAML 文件中镜像地址的脚本。
-
执行以下命令登录平台可访问的镜像仓库。
NOTE请将
<Harbor address>替换为平台上 Harbor 的实际可访问地址,例如:registry-harbor.example.com。NOTE输入用户名和密码后,如果出现以下错误,请修改 Docker Engine 配置,将 Harbor 地址添加到 insecure-registries,然后重新执行登录命令。
-
修改 docker_script.sh 脚本文件。
将
<Harbor address>替换为你要上传镜像的 Harbor 项目地址,例如:registry-harbor.example.com/bookinfo。 -
依次执行以下命令。
以下命令将执行 docker_script.sh 脚本,为镜像打标签、将镜像上传到 Harbor 项目,并修改 bookinfo.yaml 文件中的镜像地址。
一键部署应用
在 Container Platform 平台上,使用 YAML 在集群 c1 和 c2 的命名空间 ns1 中创建一个原生应用,以部署 Bookinfo 应用。
步骤
-
在顶部导航栏中,单击产品视图切换,切换到 Container Platform,并进入集群
c1下的命名空间ns1。 -
在左侧导航栏中,单击 Application Management > Native Application。
-
单击 Create Native Application,并选择 One-Click Create with YAML。
-
输入应用名称,在 YAML 编辑器中单击 Import,选择 bookinfo.yaml,然后单击 Create。
-
重复上述步骤,在集群
c2的命名空间ns1中部署 Bookinfo 应用。
将 Sidecar 注入应用的服务
在 Service Mesh 平台中,将构成 Bookinfo 应用的 productpage、details、reviews 和 ratings 服务以Service Mesh 治理模式添加到 Service Mesh 平台。添加服务时,平台会自动向这些服务注入 Sidecar。
注入 Sidecar 后,Bookinfo 的架构如下所示。
步骤
-
在顶部导航栏中,单击产品视图切换到 Service Mesh。
-
在左侧导航栏中,单击 Service List。
-
单击 Add Service,并选择 Service Mesh Governance Mode。
-
配置相关参数后,单击 Create。
NOTE除非另有说明,否则请选择 Deployment,并使用界面中参数的默认值。
- 重复上述步骤,将服务
productpage、details、reviews和ratings添加到集群c1和c2的命名空间ns1中的平台。
- 重复上述步骤,将服务
通过 Ingress Gateway 访问 Bookinfo 应用
步骤
参考 使用 Ingress Gateway,在集群 c1 中部署 ingress gateway,并创建网关配置和路由配置,以便通过浏览器访问该集群中部署的 Bookinfo 应用。
按需配置相关参数,并根据需要配置其他参数。
-
Ingress Gateway:
-
Internal Routing Type:
LoadBalancer。 -
端口包含 HTTP 协议端口。
-
-
Gateway Configuration:选择带有 HTTP 协议的端口。
-
Routing Configuration:Routing Destination 选择
cluster c1 中的 namespace ns1、internal routing productpage,以及端口9080。
访问验证
单击路由配置中的 External Access Address,在打开页面的左下角选择模拟用户类型(Normal user/Test user),然后即可访问 productpage 服务,并查看 productpage 服务所调用的 reviews 服务版本显示的评分信息。
服务调用拓扑如下所示。
