×

创建Red Hat OpenShift Service Mesh成员

ServiceMeshMember资源为Red Hat OpenShift Service Mesh管理员提供了一种方法,即使相应用户无权直接访问服务网格项目或成员角色,也可以委派权限将项目添加到服务网格。虽然项目管理员会自动获得在其项目中创建ServiceMeshMember资源的权限,但在服务网格管理员明确授予对服务网格的访问权限之前,他们无法将其指向任何ServiceMeshControlPlane。管理员可以通过授予他们mesh-user用户角色来授予用户访问网格的权限。在此示例中,istio-system是服务网格控制平面项目的名称。

$ oc policy add-role-to-user -n istio-system --role-namespace istio-system mesh-user <user_name>

管理员可以修改服务网格控制平面项目中的mesh-user角色绑定以指定获得访问权限的用户和组。ServiceMeshMember将项目添加到它引用的服务网格控制平面项目中的ServiceMeshMemberRoll

apiVersion: maistra.io/v1
kind: ServiceMeshMember
metadata:
  name: default
spec:
  controlPlaneRef:
    namespace: istio-system
    name: basic

在管理员创建ServiceMeshControlPlane资源后,会自动创建mesh-users角色绑定。管理员可以使用以下命令将角色添加到用户。

$ oc policy add-role-to-user

管理员也可以在管理员创建ServiceMeshControlPlane资源之前创建mesh-user角色绑定。例如,管理员可以在与ServiceMeshControlPlane资源相同的oc apply操作中创建它。

此示例为alice添加角色绑定。

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: istio-system
  name: mesh-users
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: mesh-user
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: alice

创建Service Mesh控制平面配置文件

您可以使用ServiceMeshControlPlane配置文件创建可重用的配置。各个用户可以使用他们自己的配置扩展他们创建的配置文件。配置文件还可以继承其他配置文件的配置信息。例如,您可以为会计团队创建一个会计控制平面,为营销团队创建一个营销控制平面。如果您创建了一个开发模板和一个生产模板,则营销团队和会计团队的成员可以使用团队特定的自定义扩展开发和生产配置文件。

配置Service Mesh控制平面配置文件时(遵循与ServiceMeshControlPlane相同的语法),用户会以分层方式继承设置。Operator附带一个具有Red Hat OpenShift Service Mesh默认设置的default配置文件。

创建ConfigMap

要添加自定义配置文件,必须在openshift-operators项目中创建一个名为smcp-templatesConfigMap。Operator容器会自动挂载ConfigMap

先决条件
  • 已安装并验证的Service Mesh Operator。

  • 具有cluster-admin角色的帐户。如果您使用Red Hat OpenShift Dedicated,则必须具有具有dedicated-admin角色的帐户。

  • Operator部署位置。

  • 访问OpenShift CLI(oc)。

步骤
  1. cluster-admin身份登录到AWS CLI上的Red Hat OpenShift Service。如果您使用Red Hat OpenShift Dedicated,则必须具有具有dedicated-admin角色的帐户。

  2. 从CLI运行此命令以在openshift-operators项目中创建名为smcp-templates的ConfigMap,并将<profiles-directory>替换为您本地磁盘上ServiceMeshControlPlane文件的位置

    $ oc create configmap --from-file=<profiles-directory> smcp-templates -n openshift-operators
  3. 您可以在ServiceMeshControlPlane中使用profiles参数指定一个或多个模板。

      apiVersion: maistra.io/v2
      kind: ServiceMeshControlPlane
      metadata:
        name: basic
      spec:
        profiles:
        - default

设置正确的网络策略

Service Mesh在服务网格控制平面和成员命名空间中创建网络策略,以允许它们之间的流量。在部署之前,请考虑以下条件以确保您服务网格中以前通过AWS上的Red Hat OpenShift Service路由公开的服务。

  • 为了使Istio正常工作,进入服务网格的流量必须始终通过ingress-gateway。

  • 将服务网格外部的服务部署到不在任何服务网格中的单独命名空间中。

  • 需要在服务网格已注册命名空间内部署的非网格服务应为其部署标记maistra.io/expose-route: "true",这确保AWS上的Red Hat OpenShift Service路由到这些服务仍然有效。