第 2 章 项目
2.1. 处理项目
通过项目(project),一个社区用户可以在与其他社区隔离的前提下组织和管理其内容。
以 openshift-
和 kube-
开头的项目是默认项目。这些项目托管作为 pod 运行的主要组件和其他基础架构组件。因此,OpenShift Container Platform 不允许使用 oc new-project
命令创建以 openshift-
或 kube-
开始的项目。集群管理员可以使用 oc adm new-project
命令创建这些项目。
您无法将 SCC 分配给在以下某一默认命名空间中创建的 Pod: default
、kube-system
、kube-public
、openshift-node
、openshift-infra
、openshift
。您不能使用这些命名空间用来运行 pod 或服务。
2.1.1. 使用 Web 控制台创建项目
如果集群管理员允许,您可以创建新项目。
OpenShift Container Platform 认为以 openshift-
和 kube-
开头的项目是重要的。因此,OpenShift Container Platform 不允许使用 web 控制台创建以 openshift-
开头的项目。
您无法将 SCC 分配给在以下某一默认命名空间中创建的 Pod: default
、kube-system
、kube-public
、openshift-node
、openshift-infra
、openshift
。您不能使用这些命名空间用来运行 pod 或服务。
流程
-
浏览至 Home
Project。 - 点击 Create Project。
- 输入项目详情。
- 点击 Create。
2.1.2. 在 Web 控制台中使用 Developer 视角创建项目
您可以使用 OpenShift Container Platform Web 控制台中的 Developer 视角在集群中创建项目。
OpenShift Container Platform 认为以 openshift-
和 kube-
开头的项目是重要的。因此,OpenShift Container Platform 不允许使用 Developer 视角创建以 openshift-
或 kube-
开头的项目。集群管理员可以使用 oc adm new-project
命令创建这些项目。
您无法将 SCC 分配给在以下某一默认命名空间中创建的 Pod: default
、kube-system
、kube-public
、openshift-node
、openshift-infra
、openshift
。您不能使用这些命名空间用来运行 pod 或服务。
先决条件
- 在 OpenShift Container Platform 中,确保您有适当的角色和权限来创建项目、应用程序和其他工作负载。
流程
您可以使用 Developer 视角创建项目,如下所示:
点 Project 下拉菜单来查看所有可用的项目。选择 Create Project。
图 2.1. Create Project
-
在 Create Project 对话框的 Name 项中输入一个唯一的名称,如
myproject
。 - 可选:为项目添加 Display Name 和 Description 详情。
- 点击 Create。
- 使用左侧导航面板导航到 Project 视图,在仪表板中查看您的项目。
可选:
- 在屏幕顶部的 Project 下拉菜单中选择 all projects 列出集群中的所有项目。
- 使用 Details 选项卡查看项目详情。
- 如果您有足够的项目权限,可以使用 Project Access 选项卡为项目提供或撤销 administrator、edit 和 view 权限。
2.1.3. 使用 CLI 创建项目
如果集群管理员允许,您可以创建新项目。
OpenShift Container Platform 认为以 openshift-
和 kube-
开头的项目是重要的。因此,OpenShift Container Platform 不允许使用 oc new-project
命令创建以 openshift-
或 kube-
开始的项目。集群管理员可以使用 oc adm new-project
命令创建这些项目。
您无法将 SCC 分配给在以下某一默认命名空间中创建的 Pod: default
、kube-system
、kube-public
、openshift-node
、openshift-infra
、openshift
。您不能使用这些命名空间用来运行 pod 或服务。
流程
运行:
$ oc new-project <project_name> \ --description="<description>" --display-name="<display_name>"
例如:
$ oc new-project hello-openshift \ --description="This is an example project" \ --display-name="Hello OpenShift"
系统管理员可能会限制允许创建的项目数量。达到限值后,需要删除现有项目才能创建新项目。
2.1.4. 使用 Web 控制台查看项目
流程
-
浏览至 Home
Project。 选择要查看的项目。
在本页中,点击 Workloads 以查看项目中的工作负载。
2.1.5. 使用 CLI 查看项目
查看项目时,只能看到根据授权策略您有权访问的项目。
流程
要查看项目列表,请运行:
$ oc get projects
您可以从当前项目更改到其他项目,以进行 CLI 操作。然后,所有操控项目范围内容的后续操作都会使用指定的项目:
$ oc project <project_name>
2.1.6. 使用 Developer 视角为您的项目提供访问权限
您可以使用 Developer 视角中的 Project 视图来授予或撤销对项目的访问权限。
流程
将用户添加到项目,并为用户提供 Admin、Edit 或 View 访问权限:
- 在 Developer 视角中,导航到 Project 视图。
- 在 Project 页面中,选择 Project Access 选项卡。
点击 Add Access 为默认权限添加新权限行。
图 2.2. 项目权限
- 输入用户名,点 Select a role 下拉列表,然后选择适当的角色。
- 点击 Save 添加新权限。
您还可以使用:
- Select a role 下拉列表修改现有用户的访问权限。
- Remove Access 图标以完全删除现有用户对项目的访问权限。
基于角色的高级访问控制是在 Administrator 视角的 Roles 和 Roles Binding 视图中管理的。
2.1.7. 使用 Developer 视角自定义可用的集群角色
项目的用户根据其访问控制分配到集群角色。您可以通过导航到 Project
要为项目添加或编辑集群角色,您可以自定义集群的 YAML 代码。
流程
自定义项目的不同集群角色:
-
在 Search 视图中,使用 Resources 下拉列表搜索
Console
。 在可用选项中,选择 Console
operator.openshift.io/v1
。图 2.3. 搜索控制台资源
- 在 Name 列表下选择 cluster。
- 导航到 YAML 选项卡以查看和编辑 YAML 代码。
在
spec
下的 YAML 代码中,添加或编辑availableClusterRoles
列表并保存您的更改:spec: customization: projectAccess: availableClusterRoles: - admin - edit - view
2.1.8. 添加到项目
流程
- 在 Web 控制台导航菜单顶部的上下文选择器中,选择 Developer。
- 点击 + Add
- 在页面顶部,选择要添加到的项目的名称。
- 单击添加到项目的方法,然后按照工作流操作。
您还可以使用快速搜索在拓扑中添加组件。
2.1.9. 使用 Web 控制台检查项目状态
流程
-
浏览至 Home
Project。 - 选择一个项目来查看其状态。
2.1.10. 使用 CLI 检查项目状态
流程
运行:
$ oc status
此命令提供当前项目的高级概述,以及它的组件和关系。
2.1.11. 使用 web 控制台删除项目
您可以通过 OpenShift Container Platform Web 控制台删除一个项目。
如果您没有删除项目的权限,Delete Project 选项将无法使用。
流程
-
浏览至 Home
Project。 - 找到您要从项目列表中删除的项目。
- 在项目列表的最右侧,从 Options 菜单中 选择 Delete Project。
- 打开 Delete Project 界面时,在字段中输入要删除的项目名称。
- 点击 Delete。
2.1.12. 使用 CLI 删除项目
当您删除项目时,服务器会将项目状态从 Active 更新为 Terminating。在最终移除项目前,服务器会清除处于 Terminating 状态的项目中的所有内容。项目处于 Terminating 状态时,您无法将新的内容添加到这个项目中。可以从 CLI 或 Web 控制台删除项目。
流程
运行:
$ oc delete project <project_name>