第 2 章 项目
2.1. 处理项目
通过项目(project),一个社区用户可以在与其他社区隔离的前提下组织和管理其内容。
以 openshift-
和 kube-
开头的项目是默认项目。这些项目托管作为 pod 运行的主要组件和其他基础架构组件。因此,OpenShift Container Platform 不允许使用 oc new-project
命令创建以 openshift-
或 kube-
开始的项目。集群管理员可以使用 oc adm new-project
命令创建这些项目。
不要在默认项目中运行工作负载或共享对默认项目的访问权限。为运行核心集群组件保留默认项目。
以下默认项目被视为具有高度特权:default
, kube-public
, kube-system
, openshift
, openshift-infra
, openshift-node
,其他系统创建的项目的标签 openshift.io/run-level
被设置为 0
或 1
。依赖于准入插件(如 pod 安全准入、安全性上下文约束、集群资源配额和镜像引用解析)的功能无法在高特权项目中工作。
2.1.1. 创建一个项目
您可以使用 OpenShift Container Platform Web 控制台或 OpenShift CLI (oc
) 在集群中创建项目。
2.1.1.1. 使用 Web 控制台创建项目
您可以使用 OpenShift Container Platform Web 控制台在集群中创建项目。
OpenShift Container Platform 认为以 openshift-
和 kube-
开头的项目是重要的。因此,OpenShift Container Platform 不允许使用 Web 控制台创建以 openshift-
开头的项目。
先决条件
- 在 OpenShift Container Platform 中,确保您有适当的角色和权限来创建项目、应用程序和其他工作负载。
流程
如果使用 Administrator 视角:
-
浏览至 Home
Project。 点 Create Project:
-
在 Create Project 对话框的 Name 项中输入一个唯一的名称,如
myproject
。 - 可选:为项目添加 Display Name 和 Description 详情。
点 Create。
您的项目的仪表板会显示。
-
在 Create Project 对话框的 Name 项中输入一个唯一的名称,如
- 可选: 选择 Details 选项卡来查看项目详情。
- 可选:如果您有针对一个项目的足够权限,您可以使用 Project Access 选项卡为项目提供或撤销 admin、edit 和 view 权限。
-
浏览至 Home
如果使用 Developer 视角:
点 Project 菜单,再选择 Create Project:
图 2.1. Create Project
-
在 Create Project 对话框的 Name 项中输入一个唯一的名称,如
myproject
。 - 可选:为项目添加 Display Name 和 Description 详情。
- 点 Create。
-
在 Create Project 对话框的 Name 项中输入一个唯一的名称,如
- 可选:使用左侧导航面板导航到 Project 视图,在仪表板中查看您的项目。
- 可选:在项目仪表板中,选择 Details 选项卡来查看项目详情。
- 可选:如果您有足够的项目权限,您可以使用项目仪表板的 Project Access 选项卡为项目提供或撤销 admin、edit 和 view 权限。
其他资源
2.1.1.2. 使用 CLI 创建项目
如果集群管理员允许,您可以创建新项目。
OpenShift Container Platform 认为以 openshift-
和 kube-
开头的项目是重要的。因此,OpenShift Container Platform 不允许使用 oc new-project
命令创建以 openshift-
或 kube-
开始的项目。集群管理员可以使用 oc adm new-project
命令创建这些项目。
流程
运行:
$ 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.2. 查看项目
您可以使用 OpenShift Container Platform Web 控制台或 OpenShift CLI (oc
) 查看集群中的项目。
2.1.2.1. 使用 Web 控制台查看项目
您可以使用 OpenShift Container Platform Web 控制台查看您可以访问的项目。
流程
如果使用 Administrator 视角:
-
在导航菜单中进入到 Home
Projects。 - 选择要查看的项目。Overview 选项卡包含项目的仪表板。
- 选择 Details 选项卡来查看项目详情。
- 选择 YAML 选项卡来查看和更新项目资源的 YAML 配置。
- 选择 Workloads 选项卡来查看项目中的工作负载。
- 选择 RoleBindings 选项卡来查看和为项目创建角色绑定。
-
在导航菜单中进入到 Home
如果使用 Developer 视角:
- 进入到导航菜单中的 Project 页面。
- 从屏幕顶部的 Project 下拉菜单中选择 All Projects,以列出集群中的所有项目。
- 选择要查看的项目。Overview 选项卡包含项目的仪表板。
- 选择 Details 选项卡来查看项目详情。
- 如果您有足够的项目权限,请选择 Project access 选项卡视图并更新项目的特权。
2.1.2.2. 使用 CLI 查看项目
查看项目时,只能看到根据授权策略您有权访问的项目。
流程
要查看项目列表,请运行:
$ oc get projects
您可以从当前项目更改到其他项目,以进行 CLI 操作。然后,所有操控项目范围内容的后续操作都会使用指定的项目:
$ oc project <project_name>
2.1.3. 使用 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.4. 使用 Web 控制台自定义可用的集群角色
在 Web 控制台的 Developer 视角中,Project
作为集群管理员,您可以在集群范围的 项目访问页面中定义哪些集群角色可用。您可以通过在 Console
配置资源中自定义 spec.customization.projectAccess.availableClusterRoles
对象来指定可用的角色。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
-
在 Administrator 视角中,进入到 Administration
Cluster settings。 - 点 Configuration 选项卡。
-
从 Configuration resource 列表中,选择 Console
operator.openshift.io
。 - 导航到 YAML 选项卡以查看和编辑 YAML 代码。
在
spec
下的 YAML 代码中,自定义可用于项目访问的集群角色列表。以下示例指定了默认的admin
、edit
和view
角色:apiVersion: operator.openshift.io/v1 kind: Console metadata: name: cluster # ... spec: customization: projectAccess: availableClusterRoles: - admin - edit - view
-
点 Save 将更改保存到
Console
配置资源。
验证
- 在 Developer 视角中,进入到 Project 页面。
- 从 Project 菜单中选择一个项目。
- 选择 Project access 选项卡。
-
点 Role 列中的菜单,并验证可用的角色是否与应用到
Console
资源配置的配置匹配。
2.1.5. 添加到项目
您可以使用 Developer 视角中的 +Add 页面将项目添加到项目中。
先决条件
- 您已创建了一个项目。
流程
- 在 Developer 视角中,进入 +Add 页面。
- 从 Project 菜单中选择您的项目。
- 点 +Add 页面上的项目,然后按照工作流操作。
您还可以使用 Add* page to find additional items to add to your project.Click *(在页面顶部的 Add 下),并在搜索字段中输入组件名称。
2.1.6. 检查项目状态
您可以使用 OpenShift Container Platform Web 控制台或 OpenShift CLI (oc
) 查看项目的状态。
2.1.6.1. 使用 Web 控制台检查项目状态
您可以使用 Web 控制台查看项目的状态。
先决条件
- 您已创建了一个项目。
流程
如果使用 Administrator 视角:
-
浏览至 Home
Project。 - 从列表中选择一个项目。
- 查看 Overview 页面中的项目状态。
-
浏览至 Home
如果使用 Developer 视角:
- 前往 Project 页面。
- 从 Project 菜单中选择一个项目。
- 查看 Overview 页面中的项目状态。
2.1.6.2. 使用 CLI 检查项目状态
您可以使用 OpenShift CLI (oc
)查看项目的状态。
先决条件
-
已安装 OpenShift CLI(
oc
)。 - 您已创建了一个项目。
流程
切换到项目:
$ oc project <project_name> 1
- 1
- 将
<project_name>
替换为项目的名称。
获取项目的高级别概述:
$ oc status
2.1.7. 删除项目
您可以使用 OpenShift Container Platform Web 控制台或 OpenShift CLI (oc
) 删除项目。
当您删除项目时,服务器会将项目状态从 Active 更新为 Terminating。在最终移除项目前,服务器会清除处于 Terminating 状态的项目中的所有内容。项目处于 Terminating 状态时,您无法将新的内容添加到这个项目中。可以从 CLI 或 Web 控制台删除项目。
2.1.7.1. 使用 Web 控制台删除项目
您可以使用 Web 控制台删除项目。
先决条件
- 您已创建了一个项目。
- 有删除项目所需的权限。
流程
如果使用 Administrator 视角:
-
浏览至 Home
Project。 - 从列表中选择一个项目。
点项目的 Actions 下拉菜单,再选择 Delete Project。
注意如果您没有删除项目所需的权限,则 Delete Project 选项不可用。
- 在 Delete Project? 窗格中,输入您的项目名称以确认删除。
- 点击 Delete。
-
浏览至 Home
如果使用 Developer 视角:
- 前往 Project 页面。
- 从 Project 菜单中选择您要删除的项目。
点项目的 Actions 下拉菜单,再选择 Delete Project。
注意如果您没有删除项目所需的权限,则 Delete Project 选项不可用。
- 在 Delete Project? 窗格中,输入您的项目名称以确认删除。
- 点击 Delete。
2.1.7.2. 使用 CLI 删除项目
您可以使用 OpenShift CLI (oc
) 删除项目。
先决条件
-
已安装 OpenShift CLI(
oc
)。 - 您已创建了一个项目。
- 有删除项目所需的权限。
流程
删除项目:
$ oc delete project <project_name> 1
- 1
- 将
<project_name>
替换为您要删除的项目的名称。