第 2 章 项目

2.1. 处理项目

通过项目(project),一个社区用户可以在与其他社区隔离的前提下组织和管理其内容。

注意

openshift-kube- 开始的项目是默认项目。这些项目托管作为 pod 运行的主要组件和其他基础架构组件。因此,OpenShift Container Platform 不允许使用 oc new-project 命令创建以 openshift-kube- 开始的项目。集群管理员可以使用 oc adm new-project 命令创建这些项目。

注意

您无法将 SCC 分配给在以下某一默认命名空间中创建的 Pod: defaultkube-systemkube-publicopenshift-nodeopenshift-infraopenshift。您不能使用这些命名空间用来运行 pod 或服务。

2.1.1. 使用 Web 控制台创建项目

如果集群管理员允许,您可以创建新项目。

注意

OpenShift Container Platform 认为以 openshift-kube- 开头的项目是重要的。因此,OpenShift Container Platform 不允许使用 web 控制台创建以 openshift- 开头的项目。

注意

您无法将 SCC 分配给在以下某一默认命名空间中创建的 Pod: defaultkube-systemkube-publicopenshift-nodeopenshift-infraopenshift。您不能使用这些命名空间用来运行 pod 或服务。

流程

  1. 浏览至 HomeProject
  2. 点击 Create Project
  3. 输入项目详情。
  4. 点击 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: defaultkube-systemkube-publicopenshift-nodeopenshift-infraopenshift。您不能使用这些命名空间用来运行 pod 或服务。

先决条件

  • 在 OpenShift Container Platform 中,确保您有适当的角色和权限来创建项目、应用程序和其他工作负载。

流程

您可以使用 Developer 视角创建项目,如下所示:

  1. Project 下拉菜单来查看所有可用的项目。选择 Create Project

    图 2.1. Create Project

    odc 创建项目
  2. Create Project 对话框的 Name 项中输入一个唯一的名称,如 myproject
  3. 可选:为项目添加 Display NameDescription 详情。
  4. 点击 Create
  5. 使用左侧导航面板导航到 Project 视图,在仪表板中查看您的项目。
  6. 可选:

    • 在屏幕顶部的 Project 下拉菜单中选择 all projects 列出集群中的所有项目。
    • 使用 Details 选项卡查看项目详情。
    • 如果您有足够的项目权限,可以使用 Project Access 选项卡为项目提供或撤销 administratoreditview 权限。

2.1.3. 使用 CLI 创建项目

如果集群管理员允许,您可以创建新项目。

注意

OpenShift Container Platform 认为以 openshift-kube- 开头的项目是重要的。因此,OpenShift Container Platform 不允许使用 oc new-project 命令创建以 openshift-kube- 开始的项目。集群管理员可以使用 oc adm new-project 命令创建这些项目。

注意

您无法将 SCC 分配给在以下某一默认命名空间中创建的 Pod: defaultkube-systemkube-publicopenshift-nodeopenshift-infraopenshift。您不能使用这些命名空间用来运行 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 控制台查看项目

流程

  1. 浏览至 HomeProject
  2. 选择要查看的项目。

    在本页中,点击 Workloads 以查看项目中的工作负载。

2.1.5. 使用 CLI 查看项目

查看项目时,只能看到根据授权策略您有权访问的项目。

流程

  1. 要查看项目列表,请运行:

    $ oc get projects
  2. 您可以从当前项目更改到其他项目,以进行 CLI 操作。然后,所有操控项目范围内容的后续操作都会使用指定的项目:

    $ oc project <project_name>

2.1.6. 使用 Developer 视角为您的项目提供访问权限

您可以使用 Developer 视角中的 Project 视图来授予或撤销对项目的访问权限。

流程

将用户添加到项目,并为用户提供 AdminEditView 访问权限:

  1. Developer 视角中,导航到 Project 视图。
  2. Project 页面中,选择 Project Access 选项卡。
  3. 点击 Add Access 为默认权限添加新权限行。

    图 2.2. 项目权限

    odc 项目权限
  4. 输入用户名,点 Select a role 下拉列表,然后选择适当的角色。
  5. 点击 Save 添加新权限。

您还可以使用:

  • Select a role 下拉列表修改现有用户的访问权限。
  • Remove Access 图标以完全删除现有用户对项目的访问权限。
注意

基于角色的高级访问控制是在 Administrator 视角的 RolesRoles Binding 视图中管理的。

2.1.7. 使用 Developer 视角自定义可用的集群角色

项目的用户根据其访问控制分配到集群角色。您可以通过导航到 ProjectProject accessRole 来访问这些集群角色。默认情况下,这些角色为 AdminEditView

要为项目添加或编辑集群角色,您可以自定义集群的 YAML 代码。

流程

自定义项目的不同集群角色:

  1. Search 视图中,使用 Resources 下拉列表搜索 Console
  2. 在可用选项中,选择 Console operator.openshift.io/v1

    图 2.3. 搜索控制台资源

    odc 集群控制台
  3. Name 列表下选择 cluster
  4. 导航到 YAML 选项卡以查看和编辑 YAML 代码。
  5. spec 下的 YAML 代码中,添加或编辑 availableClusterRoles 列表并保存您的更改:

    spec:
      customization:
        projectAccess:
          availableClusterRoles:
          - admin
          - edit
          - view

2.1.8. 添加到项目

流程

  1. 在 Web 控制台导航菜单顶部的上下文选择器中,选择 Developer
  2. 点击 + Add
  3. 在页面顶部,选择要添加到的项目的名称。
  4. 单击添加到项目的方法,然后按照工作流操作。
注意

您还可以使用快速搜索在拓扑中添加组件。

2.1.9. 使用 Web 控制台检查项目状态

流程

  1. 浏览至 HomeProject
  2. 选择一个项目来查看其状态。

2.1.10. 使用 CLI 检查项目状态

流程

  1. 运行:

    $ oc status

    此命令提供当前项目的高级概述,以及它的组件和关系。

2.1.11. 使用 web 控制台删除项目

您可以通过 OpenShift Container Platform Web 控制台删除一个项目。

注意

如果您没有删除项目的权限,Delete Project 选项将无法使用。

流程

  1. 浏览至 HomeProject
  2. 找到您要从项目列表中删除的项目。
  3. 在项目列表的最右侧,从 Options 菜单中 kebab 选择 Delete Project
  4. 打开 Delete Project 界面时,在字段中输入要删除的项目名称。
  5. 点击 Delete

2.1.12. 使用 CLI 删除项目

当您删除项目时,服务器会将项目状态从 Active 更新为 Terminating。在最终移除项目前,服务器会清除处于 Terminating 状态的项目中的所有内容。项目处于 Terminating 状态时,您无法将新的内容添加到这个项目中。可以从 CLI 或 Web 控制台删除项目。

流程

  1. 运行:

    $ oc delete project <project_name>