第 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. 创建一个项目

您可以使用 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 视角:

    1. 浏览至 HomeProject
    2. Create Project:

      1. Create Project 对话框的 Name 项中输入一个唯一的名称,如 myproject
      2. 可选:为项目添加 Display NameDescription 详情。
      3. Create

        您的项目的仪表板会显示。

    3. 可选: 选择 Details 选项卡来查看项目详情。
    4. 可选:如果您有针对一个项目的足够权限,您可以使用 Project Access 选项卡为项目提供或撤销 admin、edit 和 view 权限。
  • 如果使用 Developer 视角:

    1. Project 菜单,再选择 Create Project:

      图 2.1. Create Project

      odc 创建项目
      1. Create Project 对话框的 Name 项中输入一个唯一的名称,如 myproject
      2. 可选:为项目添加 Display NameDescription 详情。
      3. Create
    2. 可选:使用左侧导航面板导航到 Project 视图,在仪表板中查看您的项目。
    3. 可选:在项目仪表板中,选择 Details 选项卡来查看项目详情。
    4. 可选:如果您有足够的项目权限,您可以使用项目仪表板的 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 命令创建这些项目。

注意

您无法将 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.2. 查看项目

您可以使用 OpenShift Container Platform Web 控制台或 OpenShift CLI (oc) 查看集群中的项目。

2.1.2.1. 使用 Web 控制台查看项目

您可以使用 OpenShift Container Platform Web 控制台查看您可以访问的项目。

步骤

  • 如果使用 Administrator 视角:

    1. 在导航菜单中进入到 HomeProjects
    2. 选择要查看的项目。Overview 选项卡包含项目的仪表板。
    3. 选择 Details 选项卡来查看项目详情。
    4. 选择 YAML 选项卡来查看和更新项目资源的 YAML 配置。
    5. 选择 Workloads 选项卡来查看项目中的工作负载。
    6. 选择 RoleBindings 选项卡来查看和为项目创建角色绑定。
  • 如果使用 Developer 视角:

    1. 进入到导航菜单中的 Project 页面。
    2. 从屏幕顶部的 Project 下拉菜单中选择 All Projects,以列出集群中的所有项目。
    3. 选择要查看的项目。Overview 选项卡包含项目的仪表板。
    4. 选择 Details 选项卡来查看项目详情。
    5. 如果您有足够的项目权限,请选择 Project access 选项卡视图并更新项目的特权。

2.1.2.2. 使用 CLI 查看项目

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

流程

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

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

    $ oc project <project_name>

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

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

先决条件

  • 您已创建了一个项目。

步骤

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

  1. Developer 视角中,进入到 Project 页面。
  2. Project 菜单中选择您的项目。
  3. 选择 Project Access 选项卡。
  4. Add access 为默认权限添加新权限行。

    图 2.2. 项目权限

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

您还可以使用:

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

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

2.1.4. 使用 Web 控制台自定义可用的集群角色

在 Web 控制台的 Developer 视角中,ProjectProject access 页面可让项目管理员为项目中的用户授予角色。默认情况下,可以向项目中的用户授予的可用集群角色是 admin、edit 和 view。

作为集群管理员,您可以在集群范围的 项目访问页面中定义哪些集群角色可用。您可以通过在 Console 配置资源中自定义 spec.customization.projectAccess.availableClusterRoles 对象来指定可用的角色。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。

步骤

  1. Administrator 视角中,进入到 AdministrationCluster settings
  2. Configuration 选项卡。
  3. Configuration resource 列表中,选择 Console operator.openshift.io
  4. 导航到 YAML 选项卡以查看和编辑 YAML 代码。
  5. spec 下的 YAML 代码中,自定义可用于项目访问的集群角色列表。以下示例指定了默认的 admineditview 角色:

    apiVersion: operator.openshift.io/v1
    kind: Console
    metadata:
      name: cluster
    # ...
    spec:
      customization:
        projectAccess:
          availableClusterRoles:
          - admin
          - edit
          - view
  6. Save 将更改保存到 Console 配置资源。

验证

  1. Developer 视角中,进入到 Project 页面。
  2. Project 菜单中选择一个项目。
  3. 选择 Project access 选项卡。
  4. Role 列中的菜单,并验证可用的角色是否与应用到 Console 资源配置的配置匹配。

2.1.5. 添加到项目

您可以使用 Developer 视角中的 +Add 页面将项目添加到项目中。

先决条件

  • 您已创建了一个项目。

步骤

  1. Developer 视角中,进入 +Add 页面。
  2. Project 菜单中选择您的项目。
  3. +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 视角:

    1. 浏览至 HomeProject
    2. 从列表中选择一个项目。
    3. 查看 Overview 页面中的项目状态。
  • 如果使用 Developer 视角:

    1. 前往 Project 页面。
    2. Project 菜单中选择一个项目。
    3. 查看 Overview 页面中的项目状态。

2.1.6.2. 使用 CLI 检查项目状态

您可以使用 OpenShift CLI (oc)查看项目的状态。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 您已创建了一个项目。

步骤

  1. 切换到项目:

    $ oc project <project_name> 1
    1
    <project_name> 替换为项目的名称。
  2. 获取项目的高级别概述:

    $ 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 视角:

    1. 浏览至 HomeProject
    2. 从列表中选择一个项目。
    3. 点项目的 Actions 下拉菜单,再选择 Delete Project

      注意

      如果您没有删除项目所需的权限,则 Delete Project 选项不可用。

      1. Delete Project? 窗格中,输入您的项目名称以确认删除。
      2. 点击 Delete
  • 如果使用 Developer 视角:

    1. 前往 Project 页面。
    2. Project 菜单中选择您要删除的项目。
    3. 点项目的 Actions 下拉菜单,再选择 Delete Project

      注意

      如果您没有删除项目所需的权限,则 Delete Project 选项不可用。

      1. Delete Project? 窗格中,输入您的项目名称以确认删除。
      2. 点击 Delete

2.1.7.2. 使用 CLI 删除项目

您可以使用 OpenShift CLI (oc) 删除项目。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 您已创建了一个项目。
  • 有删除项目所需的权限。

步骤

  1. 删除项目:

    $ oc delete project <project_name> 1
    1
    <project_name> 替换为您要删除的项目的名称。