简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。
配置:集群管理任务
Red Hat OpenShift 集群管理员执行以下任务:
-
以集群管理员身份登录 Red Hat OpenShift 集群。
-
创建两个项目,分别对应不同的工程。
oc create namespace project-1 oc create namespace project-2
-
为 project-1 创建开发人员角色。
cat << EOF | oc create -f - apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: project-1 name: developer-project-1 rules: - verbs: - '*' apiGroups: - apps - batch - autoscaling - extensions - networking.k8s.io - policy - apps.openshift.io - build.openshift.io - image.openshift.io - ingress.operator.openshift.io - route.openshift.io - snapshot.storage.k8s.io - template.openshift.io resources: - '*' - verbs: - '*' apiGroups: - '' resources: - bindings - configmaps - endpoints - events - persistentvolumeclaims - pods - pods/log - pods/attach - podtemplates - replicationcontrollers - services - limitranges - namespaces - componentstatuses - nodes - verbs: - '*' apiGroups: - trident.netapp.io resources: - tridentsnapshots EOF
|
本节提供的角色定义仅仅是一个示例。必须根据最终用户的要求来定义开发人员的角色。 |
-
同样,为 project-2 创建开发人员角色。
-
所有 OpenShift 和NetApp存储资源通常由存储管理员管理。存储管理员的访问权限由安装Trident时创建的 trident 操作员角色控制。除此之外,存储管理员还需要访问 ResourceQuotas 来控制存储的消耗方式。
-
创建一个用于管理集群中所有项目的 ResourceQuotas 的角色,并将其附加到存储管理员。
cat << EOF | oc create -f - kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: resource-quotas-role rules: - verbs: - '*' apiGroups: - '' resources: - resourcequotas - verbs: - '*' apiGroups: - quota.openshift.io resources: - '*' EOF
-
确保集群与组织的身份提供者集成,并且用户组与集群组同步。以下示例显示身份提供者已与集群集成并与用户组同步。
$ oc get groups NAME USERS ocp-netapp-storage-admins ocp-netapp-storage-admin ocp-project-1 ocp-project-1-user ocp-project-2 ocp-project-2-user
-
为存储管理员配置 ClusterRoleBindings。
cat << EOF | oc create -f - kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: netapp-storage-admin-trident-operator subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: ocp-netapp-storage-admins roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: trident-operator --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: netapp-storage-admin-resource-quotas-cr subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: ocp-netapp-storage-admins roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: resource-quotas-role EOF
|
对于存储管理员,必须绑定两个角色:trident-operator 和 resource-quotas。 |
-
为开发者创建 RoleBindings,将developer-project-1 角色绑定到 project-1 中对应的组(ocp-project-1)。
cat << EOF | oc create -f - kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: project-1-developer namespace: project-1 subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: ocp-project-1 roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: developer-project-1 EOF
-
同样的,在project-2中为开发者创建RoleBindings,将开发者角色绑定到对应的用户组。