$ oc policy add-role-to-user -n istio-system --role-namespace istio-system mesh-user <user_name>
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
您可以使用ServiceMeshControlPlane
配置文件创建可重用的配置。各个用户可以使用他们自己的配置扩展他们创建的配置文件。配置文件还可以继承其他配置文件的配置信息。例如,您可以为会计团队创建一个会计控制平面,为营销团队创建一个营销控制平面。如果您创建了一个开发模板和一个生产模板,则营销团队和会计团队的成员可以使用团队特定的自定义扩展开发和生产配置文件。
配置Service Mesh控制平面配置文件时(遵循与ServiceMeshControlPlane
相同的语法),用户会以分层方式继承设置。Operator附带一个具有Red Hat OpenShift Service Mesh默认设置的default
配置文件。
要添加自定义配置文件,必须在openshift-operators
项目中创建一个名为smcp-templates
的ConfigMap
。Operator容器会自动挂载ConfigMap
。
已安装并验证的Service Mesh Operator。
具有cluster-admin
角色的帐户。如果您使用Red Hat OpenShift Dedicated,则必须具有具有dedicated-admin
角色的帐户。
Operator部署位置。
访问OpenShift CLI(oc
)。
以cluster-admin
身份登录到AWS CLI上的Red Hat OpenShift Service。如果您使用Red Hat OpenShift Dedicated,则必须具有具有dedicated-admin
角色的帐户。
从CLI运行此命令以在openshift-operators
项目中创建名为smcp-templates
的ConfigMap,并将<profiles-directory>
替换为您本地磁盘上ServiceMeshControlPlane
文件的位置
$ oc create configmap --from-file=<profiles-directory> smcp-templates -n openshift-operators
您可以在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路由到这些服务仍然有效。