构建基于微服务的应用

由于每个微服务都在处理应用的一部分功能,因此一个应用可以被划分为不同的组件。这些组件彼此独立,具有各自的职责和局限。在 KubeSphere 中,这类应用被称为自制应用,用户可以通过新创建的服务或者现有服务来构建自制应用。

本教程演示了如何创建基于微服务的应用 Bookinfo(包含四种服务),以及如何设置自定义域名以访问该应用。

准备工作

  • 您需要为本教程创建一个企业空间、一个项目以及一个帐户 (project-regular)。该帐户需要被邀请至项目中并赋予 operator 角色。有关更多信息,请参见创建企业空间、项目、帐户和角色
  • project-admin 需要设置项目网关,以便 project-regular 能在创建应用时定义域名。

构建自制应用的微服务

  1. 登录 KubeSphere 的 Web 控制台,导航到项目应用负载中的应用。在自制应用选项卡中,点击构建自制应用

    create-composing-app

  2. 设置应用名称(例如 bookinfo)并点击下一步

  3. 服务组件页面,您需要构建自制应用的微服务。点击添加服务,选择无状态服务

  4. 设置服务名称(例如 productpage)并点击下一步

    product-page

    备注

    您可以直接在面板上创建服务,或者启用右上角的编辑模式以编辑 YAML 文件。

  5. 点击容器镜像下的添加容器镜像,在搜索栏中输入 kubesphere/examples-bookinfo-productpage-v1:1.13.0 以使用 Docker Hub 镜像。

    container-image

    备注

    输入镜像名称之后,必须按下键盘上的回车键。

  6. 点击使用默认端口。有关更多镜像设置的信息,请参见容器镜像设置。点击右下角的 下一步以继续操作。

  7. 挂载存储页面,添加存储卷或点击下一步以继续操作。

  8. 高级设置页面,直接点击添加

  9. 同样,为该应用添加其他三个微服务。以下是相应的镜像信息:

    服务名称镜像
    无状态服务detailskubesphere/examples-bookinfo-details-v1:1.13.0
    无状态服务reviewskubesphere/examples-bookinfo-reviews-v1:1.13.0
    无状态服务ratingskubesphere/examples-bookinfo-ratings-v1:1.13.0
  10. 添加微服务完成后,点击下一步

    microservices-done

  11. 外网访问页面,点击添加路由规则。在指定域名选项卡中,为您的应用设置域名(例如 demo.bookinfo)并在协议字段选择 http。在路径一栏,选择服务 productpage 以及端口 9080。点击确定以继续操作。

    route

    备注

    若未设置项目网关,则无法看见添加路由规则按钮。

  12. 您可以添加更多规则或点击创建以完成创建过程。

  13. 等待应用达到就绪状态。

    status-active

访问应用

  1. 在为应用设置域名时,您需要在 hosts (/etc/hosts) 文件中添加一个条目。 例如,添加如下所示的 IP 地址和主机名:

    1. 192.168.0.9 demo.bookinfo

    备注

    您必须添加自己的 IP 地址和主机名。

  2. 自制应用中,点击刚才创建的应用。

  3. 应用组件中,点击点击访问以访问该应用。

    click-to-visit

    dashboard

    备注

    请确保在您的安全组中打开端口。

  4. 分别点击 Normal userTest user 以查看其他服务

    review-page