防止用户在OpenShift/OKD群集中创建项目
时间:2020-02-23 14:40:15 来源:igfitidea点击:
如果我们有新创建的OpenShift/OKD Kubernetes集群,则默认情况下用户可以在不咨询群集管理员的情况下创建项目/命名空间。
在大多数设置中,我们需要禁用此功能以确保群集计算资源不会误用。
对于开发人员来遵循正确的过程,将应用程序部署到OpenShift群集环境中。
在本教程中,我们将讨论如何登录用户自己创建项目。
相反,他们会看到一条消息告诉他们向相关团队发送电子邮件,以获取项目创建和权限授予它们使用该项目的权限。
在OpenShift上禁用项目自适应
首先查看自置位程序群集角色绑定使用情况下面的命令。
$oc describe clusterrolebinding.rbac self-provisioners --- Name: self-provisioners Labels: <none> Annotations: rbac.authorization.kubernetes.io/autoupdate: true Role: Kind: ClusterRole Name: self-provisioner Subjects: Kind Name Namespace ---- ---- -------- Group system:authenticated:oauth
我们需要从组系统中删除自给自行界群集角色:经过身份验证:OAuth:
oc patch clusterrolebinding.rbac self-provisioners -p '{"subjects": null}'
我们应该如下所示的
clusterrolebinding.rbac.authorization.k8s.io/self-provisioners patched
如果自给派者群集角色绑定将自给自行主角色绑定到更多用户,组或者服务账户,而不是系统:经过身份验证: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 Jan not request a new project via this API.
在OpenShift上自定义项目请求消息
我们需要自定义openshift用户在尝试从CLI或者Web控制台创建项目时获得的消息。
来自Cli.
以群集admin权限以用户身份登录并编辑project.config.openshift.io/cluster资源:
$oc edit project.config.openshift.io/cluster
更新ProjectRequestMessage参数,其中值为自定义消息:
projectRequestMessage: "To request a project, contact OpenShift Admin Team at Hyman@theitroad"
来自网络仪表板
打开OpenShift Web控制台并导航到"管理→群集设置"页面。
单击"全局配置"以查看所有配置资源。
查找项目的条目
单击yaml以编辑它。
projectRequestMessage: "To request a project, contact OpenShift Admin Team at Hyman@theitroad"
保存更改后。
用户可以尝试创建新项目作为开发人员或者服务帐户,请求不会通过。