支持的项目(命名空间)配置

您必须在集群上创建的项目(命名空间)取决于多个因素。 请查阅以下信息,以确定您必须创建哪些项目。

提示: 该工具 cpd-cli 可自动为您创建项目。 不过,若您更倾向于手动创建这些项目,安装和升级文档中包含了通过命令行 OpenShift® 界面创建项目的指导说明。

共享集群组件项目

共享集群组件在集群上仅安装一次,并由集群 IBM® Software Hub 上所有实例共享。 每个组件都安装在其各自的项目中,且该项目中不应安装其他软件。

下表提供了默认项目名称以及在整个文档中用于在命令中标识该项目的环境变量。 您无需使用默认项目名称。 仅当您在安装组件时未指定项目名称时,才会使用默认名称。

组件 默认项目名称 环境变量
IBM Certificate manager ibm-cert-manager ${PROJECT_CERT_MANAGER}
License Service ibm-licensing ${PROJECT_CS_CONTROL}
Scheduling service No default. ${PROJECT_SCHEDULING_SERVICE}

有关这些组件的更多信息,请参阅共享组件

需要安装实例的项目 IBM Software Hub

至少,一个实例包含 IBM Software Hub 两个项目(命名空间):运算符项目和操作数项目。

仅应在操作员项目和操作数项目中安装指定的软件。 这些项目没有默认名称。

操作员项目
安装操作员的项目。

在安装和管理命令中,环境变量 ${PROJECT_CPD_INST_OPERATORS} 指代操作员的项目。

什么是运算符?

  • 操作符是一种自定义 Kubernetes 控制器。 控制器实现了一个控制循环,该循环持续监控集群中特定对象的状态,并在必要时进行调整,以确保这些对象按预期运行。

  • 的每个组件都 IBM Software Hub 包含一个负责管理该组件的操作符。 例如,该 control plane 系统配备专职操作员,且每项服务均配备专职操作员。

  • 每个实例都有 IBM Software Hub 其专属的操作符集。 本项目中的所有操作员必须安装在同一版本上。 例如,所有操作员都必须安装在版本 5.3.1.

在操作数项目中安装您计划安装的服务的操作符。 每个操作符在操作数项目中监控相应的操作数。

操作数项目
安装 和 control planeIBM Software Hub 服务的项目。

在安装和管理命令中,环境变量 ${PROJECT_CPD_INST_OPERANDS} 指代操作数项目。

操作员监控操作数,以确保它们按预期运行。

每个实例都有 IBM Software Hub 其自身的操作数集。 本项目中的操作数必须与操作符项目中的操作符安装在相同版本的发布版本中。

某个实例的可选项目 IBM Software Hub

您可以选择性地一个或多个项目绑定到操作数项目。

在绑定项目中,仅应安装指定的软件。 这些项目没有默认名称。

绑定项目
可部署工作负载或服务实例的项目。
限制: 并非所有服务都支持在绑定项目中运行工作负载或服务实例。 详情请参阅多租户支持
通过以下环境变量可识别绑定项目:
  • 在安装和管理命令中,指代 ${PROJECT_CPD_INSTANCE_TETHERED} 与某个实例关联的 IBM Software Hub单个绑定项目。
  • 在安装和管理命令中,环境变量 ${PROJECT_CPD_INSTANCE_TETHERED_LIST} 指代与某个实例关联的 IBM Software Hub捆绑项目列表。

该组件 control planeIBM Software Hub 负责管理有线连接项目中的软件。 然而,该软件在其他方面与操作系统项目中运行的其他 control plane 服务和工作负载相互隔离。

当你将项目绑定到操作数项目时,该 cpd-cli manage setup-tethered-ns 命令:
  • 更新操作员项目中的 IBM NamespaceScope Operator 配置,使操作员能够监视关联项目。
  • 更新操作数项目中的自定义 ZenService 资源,将关联项目添加到条目 tetheredNamespaces 中。

    这使得 control planeIBM Software Hub 能够监控和管理绑定项目中的工作负载。

在以下情况下,您可能需要将工作负载或服务实例部署到关联项目:
  • 您正在运行一个需要访问特定服务实例的自定义应用程序,但出于安全考虑,您不希望该应用程序访问运行在上的其他 IBM Software Hub服务。
  • 您正在运行需要特定计算资源或特定服务质量的工作负载。

许多服务在给定项目中仅支持一个服务实例。 因此,若要创建服务的多个实例,必须将每个服务实例部署在不同的项目中。 您可以通过创建多个绑定项目,并在每个绑定项目中创建该服务的实例来实现此目标。

您可以在同一绑定项目中为不同服务共置服务实例和工作负载,或者当某个服务或工作负载需要更多权限时,可创建不同的绑定项目。 您可以使用不同的绑定项目,为每个服务实例或工作负载分配其所需的特权,从而符合最小特权原则

由于绑定项目在逻辑上与操作数项目隔离,绑定项目可以拥有自己的 NetworkPoliciesSecurityContextResourceQuota

有关将项目绑定到操作数项目的更多信息,请参阅《 将项目绑定到操作数项目 control planeIBM Software Hub 》。

多租户考量

若要在集群上安装 IBM Software Hub 多个实例,必须为每个要安装的实例创建一个操作者项目和操作数项目。 绑定项目无法由多个实例共享 IBM Software Hub。 若要使用绑定项目,您必须为每个需要使用绑定项目的实例创建对应的绑定项目。

示例项目配置

以下图表展示了项目配置示例。 这些图示展示了在同一集群上存在多个 IBM Software Hub 实例的环境。

图 1。 共享集群组件与集群 IBM Software Hub 上实例之间交互的高级概述
包含未指定数量实例的示例配置 IBMSoftware Hub。
上图说明了共享集群组件如何与集群 IBM Software Hub 中每个实例进行交互:
  • IBM Certificate manager 功能使每个实例中的应用程序 control planeIBM Software Hub 和服务的 TLS 证书能够自动生成并轮换,以保障微服务间通信的安全性。
  • License Service 程序监控每个实例, IBM Software Hub 以追踪虚拟私有云(VPC)的使用情况。 该数据可帮助您生成使用情况的审计快照。
  • 每一次 scheduling service 的监视: IBM Software Hub
    • 调度由 和 control planeIBM Software Hub 服务启动的容器。
    • 应用特定的调度策略。
    • 执行配额。
图 2。 与不同实例关联的项目详情视图 IBM Software Hub
包含两个实例的示例配置 IBMSoftware Hub。

上图展示了一个包含两个实例的集群 IBM Software Hub

每个实例都有 IBM Software Hub 其专属的操作符项目和操作数项目。 在此示例中,每个实例至少关联一个项目。 然而,系绳项目是可选的。

最佳实践:在多租户环境中创建组来管理项目

若您部署了多个实例, IBM Software Hub 且使用了绑定项目,则应通过组来标识与特定实例关联 IBM Software Hub的项目。

在下面的示例中,有两个部署 IBM Software Hub
  • 一个实例部署 IBM Software Hub 在名为 的项目 dev中。

    以下项目与该项目 dev 相关联:

    • apps-dev
    • db-dev
  • 一个实例部署 IBM Software Hub 在名为 的项目 prod中。

    以下项目与该项目 prod 相关联:

    • apps-prod
    • db-prod

您可以使用标签对项目进行分组:

  • 要为与部署 dev 相关的项目添加标签, cpdgroup=dev请运行以下命令:
    oc label namespace dev apps-dev db-dev cpdgroup=dev
  • 要将与部署 prod 相关的项目分组, cpdgroup=prod请运行以下命令:
    oc label namespace prod apps-prod db-prod cpdgroup=prod
相关命令:
  • 要验证标签是否已应用于项目,请使用 命令 oc describe 。 例如,要验证应用于 db-dev 项目的标签,请运行:
    oc describe namespace db-dev
  • 如有需要,您可以将项目从组中移除。 例如,要从 dev 组中移除 dv-dev 项目
    oc label namespace db-dev cpdgroup-