1.9. 在服务网格中添加服务


安装 Operators 和 ServiceMeshControlPlane 资源后,通过创建一个 ServiceMeshMemberRoll 资源并指定您的内容所在的命名空间,将应用程序、工作负载或服务添加到网格中。如果您已经有一个要添加到 ServiceMeshMemberRoll 资源的应用程序、工作负载或服务,请使用以下步骤。或者,要安装名为 Bookinfo 的示例应用程序并将其添加到 ServiceMeshMemberRoll 资源中,请跳至教程来安装 Bookinfo 示例应用程序,以查看应用程序如何在 Red Hat OpenShift Service Mesh 中工作。

ServiceMeshMemberRoll 资源中列出的项目是由 ServiceMeshControlPlane 资源管理的应用程序和工作流。control plane(包括 Service Mesh Operator、Istiod 和 ServiceMeshControlPlane )以及 data plane(包括应用程序和 Envoy 代理)必须位于不同的命名空间中。

注意

将命名空间添加到 ServiceMeshMemberRoll 后,服务网格外的调用者将无法访问该命名空间中的服务或 pod。

1.9.1. 创建 Red Hat OpenShift Service Mesh member roll

ServiceMeshMemberRoll 列出属于 Service Mesh control plane 的项目。只有 ServiceMeshMemberRoll 中列出的项目会受到 control plane 的影响。在将项目添加到特定 control plane 部署的 member roll 之前,项目不属于服务网格。

您必须在 ServiceMeshControlPlane 所在的同一个项目中创建一个名为 defaultServiceMeshMemberRoll 资源,如 istio-system

1.9.1.1. 从 Web 控制台创建 member roll

您可从 web 控制台在 Service Mesh member roll 中添加一个或多个项目。在本例中,istio-system 是 Service Mesh control plane 项目的名称。

先决条件

  • 已安装并验证的 Red Hat OpenShift Service Mesh Operator。
  • 要添加到服务网格的现存项目列表。

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 如果您还没有网格服务,或者您从头开始,请为您的应用程序创建一个项目。它必须与安装 Service Mesh control plane 的项目不同。

    1. 浏览至 Home Project
    2. Name 字段中输入一个名称。
    3. Create
  3. 导航到 Operators Installed Operators
  4. Project 菜单,从列表中选择部署 ServiceMeshControlPlane 资源的项目,如 istio-system
  5. 点 Red Hat OpenShift Service Mesh Operator。
  6. Istio Service Mesh Member Roll 选项卡。
  7. Create ServiceMeshMemberRoll
  8. 单击 Members,然后在 Value 字段中输入项目名称。您可以添加多个项目,但每个项目只能属于一个 ServiceMeshMemberRoll 资源。
  9. Create

1.9.1.2. 通过 CLI 创建 member roll

您可以使用命令行将项目添加到 ServiceMeshMemberRoll 中。

先决条件

  • 已安装并验证的 Red Hat OpenShift Service Mesh Operator。
  • 要添加到服务网格的项目列表。
  • 访问 OpenShift CLI(oc)。

流程

  1. 登录 OpenShift Container Platform CLI。

    $ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
  2. 如果您还没有网格服务,或者您从头开始,请为您的应用程序创建一个项目。它必须与安装 Service Mesh control plane 的项目不同。

    $ oc new-project <your-project>
  3. 要添加项目作为成员,请修改以下示例 YAML:您可以添加多个项目,但每个项目只能属于一个 ServiceMeshMemberRoll 资源。在本例中,istio-system 是 Service Mesh control plane 项目的名称。

    servicemeshmemberroll-default.yaml 示例

    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: istio-system
    spec:
      members:
        # a list of projects joined into the service mesh
        - your-project-name
        - another-project-name

  4. 运行以下命令,在 istio-system 命名空间中上传并创建 ServiceMeshMemberRoll 资源。

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

    $ oc get smmr -n istio-system default

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.