$ oc policy add-role-to-user -n istio-system --role-namespace istio-system mesh-user <user_name>
ServiceMeshMember
资源为Red Hat OpenShift服务网格管理员提供了一种方法,即使相应的用户没有直接访问服务网格项目或成员角色,也可以委托权限将项目添加到服务网格。项目管理员会自动获得在其项目中创建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
配置文件创建可重用的配置。各个用户可以使用他们自己的配置扩展他们创建的配置文件。配置文件还可以从其他配置文件继承配置信息。例如,您可以为会计团队创建一个会计控制平面,为市场营销团队创建一个市场营销控制平面。如果您创建了一个开发模板和一个生产模板,则市场营销团队和会计团队的成员可以使用团队特定的自定义项扩展开发和生产配置文件。
配置服务网格控制平面配置文件时(遵循与ServiceMeshControlPlane
相同的语法),用户将以分层方式继承设置。操作员随附一个default
配置文件,其中包含Red Hat OpenShift服务网格的默认设置。
要添加自定义配置文件,必须在openshift-operators
项目中创建一个名为smcp-templates
的ConfigMap
。操作员容器会自动挂载ConfigMap
。
已安装并验证的服务网格操作员。
具有cluster-admin
角色的帐户。如果您使用Red Hat OpenShift Dedicated,则必须拥有具有dedicated-admin
角色的帐户。
操作员部署的位置。
访问OpenShift CLI (oc
)。
以cluster-admin
身份登录到OpenShift Container Platform CLI。如果您使用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
服务网格在服务网格控制平面和成员命名空间中创建网络策略,以允许它们之间的流量。在部署之前,请考虑以下条件,以确保您服务网格中以前通过 OpenShift Container Platform 路由公开的服务。
为了 Istio 正常工作,进入服务网格的流量必须始终通过 ingress-gateway。
将部署在服务网格外部的服务部署到任何服务网格中都不包含的单独命名空间。
需要部署在已加入服务网格的命名空间中的非网格服务,应在其部署中添加标签 maistra.io/expose-route: "true"
,这可确保这些服务的 OpenShift Container Platform 路由仍然有效。