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
所在的同一个项目中创建一个名为 default
的 ServiceMeshMemberRoll
资源,如 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。
- 要添加到服务网格的现存项目列表。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
如果您还没有网格服务,或者您从头开始,请为您的应用程序创建一个项目。它必须与安装 Service Mesh control plane 的项目不同。
-
浏览至 Home
Project。 - 在 Name 字段中输入一个名称。
- 点 Create。
-
浏览至 Home
-
导航到 Operators
Installed Operators。 -
点 Project 菜单,从列表中选择部署
ServiceMeshControlPlane
资源的项目,如istio-system
。 - 点 Red Hat OpenShift Service Mesh Operator。
- 点 Istio Service Mesh Member Roll 选项卡。
- 点 Create ServiceMeshMemberRoll
-
单击 Members,然后在 Value 字段中输入项目名称。您可以添加多个项目,但每个项目只能属于一个
ServiceMeshMemberRoll
资源。 - 点 Create。
1.9.1.2. 通过 CLI 创建 member roll
您可以使用命令行将项目添加到 ServiceMeshMemberRoll
中。
先决条件
- 已安装并验证的 Red Hat OpenShift Service Mesh Operator。
- 要添加到服务网格的项目列表。
-
访问 OpenShift CLI(
oc
)。
流程
登录 OpenShift Container Platform CLI。
$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
如果您还没有网格服务,或者您从头开始,请为您的应用程序创建一个项目。它必须与安装 Service Mesh control plane 的项目不同。
$ oc new-project <your-project>
要添加项目作为成员,请修改以下示例 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
运行以下命令,在
istio-system
命名空间中上传并创建ServiceMeshMemberRoll
资源。$ oc create -n istio-system -f servicemeshmemberroll-default.yaml
运行以下命令,以验证
ServiceMeshMemberRoll
是否已成功创建。$ oc get smmr -n istio-system default
当
STATUS
列为Configured
时,安装成功完成。