如果您有一个新创建的OpenShift/OKD Kubernetes集群,则用户默认情况下可以创建项目,而无需经过Cluster管理员。在大多数设置中,您要禁用此功能,以确保不会滥用集群计算资源,并且使开发人员可以遵循正确的过程将应用程序部署到OpenShift集群环境中。在本文中,我们将讨论如何禁止登录用户自己创建项目。同时他们会看到一条消息,告诉他们向相关团队发送电子邮件以创建项目并授予他们使用该项目的权限。您要有一个工作正常的OpenShift容器环境,才能遵循本文,参考在CentOS 7上安装本地OpenShift Origin(OKD)群集、使用Minishift运行本地Openshift集群的方法。
在OpenShift上禁用项目自配置 首先,使用以下命令查看自我供应商群集角色绑定的用法: $ oc describe clusterrolebinding.rbac self-provisioners
我们需要从组system:authenticated:oauth删除自配置群集角色: oc patch clusterrolebinding.rbac self-provisioners -p '{"subjects": null}' 您应该得到如下输出: clusterrolebinding.rbac.authorization.k8s.io/self-provisioners patched 如果自配置程序群集角色绑定将自配置程序角色绑定到比system:authenticated:oauth组更多的用户,组或服务帐户,请运行以下命令: oc adm policy \ remove-cluster-role-from-group self-provisioner \ system:authenticated:oauth 您可以使用以下命令直接应用补丁: oc patch clusterrolebinding.rbac self-provisioners -p '{ "metadata": { "annotations": { "rbac.authorization.kubernetes.io/autoupdate": "false" } } }' 确认自配置群集角色绑定的内容: oc edit clusterrolebinding.rbac self-provisioners 该值现在应设置为false: ..... metadata: annotations: rbac.authorization.kubernetes.io/autoupdate: "false" ..... 以经过身份验证的用户身份登录,并确认它不再能够自行配置项目: $ oc new-project test Error from server (Forbidden): You may not request a new project via this API.
在OpenShift上自定义项目请求消息 我们需要自定义OpenShift用户尝试从CLI或Web控制台创建项目时将收到消息。 1、从CLI 以具有cluster-admin特权的用户身份登录并编辑project.config.openshift.io/cluster资源: $ oc edit project.config.openshift.io/cluster 使用您的自定义消息的值更新projectRequestMessage参数: projectRequestMessage: "To request a project, contact OpenShift Admin Team at 249562751@qq.com." 注:请自行更改为自己的邮箱地址。 2、从Web仪表板 打开OpenShift Web控制台,然后导航到“管理”→“集群设置”(Administration → Cluster Settings)页面:
单击全局配置(Global Configuration)以查看所有配置资源:
查找项目(Project)条目:
单击YAML进行编辑: projectRequestMessage: "To request a project, contact OpenShift Admin Team at 249562751@qq.com." 保存更改后,用户可以尝试以开发人员或服务帐户的身份创建新项目,而请求不会通过,同时用户将收到我们刚刚设置的自定义消息。
相关主题 |