首页 / 最佳实践 / 项目、命名空间最佳实践

项目、命名空间最佳实践

背景介绍

弹性资源管理是云原生平台的一项重要特性。相比传统基础设施平台,本平台提供了更加灵活的资源规划和配额分配方案。在企业上云过程中,通过租户划分和容器资源规划等方案,能够帮助企业在复杂的组织架构中合理规划和管理容器资源,从而保证应用的可靠性和稳定性。使用本章节中提供的资源划分最佳实践,可以为企业提供参考和指导,有助于实现资源的弹性管理,提高业务的灵活性和响应能力。

名词解释

参数 描述
项目 为了更好地满足企业多租户的使用需求,平台将一个或多个集群的资源配额,共同组成独立的项目,项目下划分多个命名空间,以保证资源和人员的隔离。这些项目可以代表企业中不同的母公司、子公司、部门或项目组。在项目管理中,您可以方便地实现项目组间的资源隔离和租户内的配额管理。
集群 集群是由一组节点(Node)组成的,每个节点都是一台物理或虚拟的服务器。每个节点上运行着容器运行时,如 Docker 或 Containerd,以及 Kubernetes 组件,如 kubelet 和 kube-proxy。总的来说,它是一组协调的节点,这些节点共同组成了一个可以部署和管理容器化应用程序的环境。
命名空间 项目下相互隔离的更小的资源空间,也是用户实现作业生产的工作空间。一个项目下可以创建多个命名空间,可占用的资源配额总和不能超过项目配额。命名空间更细粒度的划分了资源配额的同时,还限制了命名空间下容器的大小(CPU、内存),有效地提升了资源利用率。

集群、项目和命名空间之间的关系如下:

一个项目可占用多个集群的资源(CPU、内存、存储),一个集群可被多个项目关联。

一个项目下可以创建多个命名空间,多个命名空间资源配额总和不超过项目资源总额。

一个命名空间的资源配额只能来源于同单一集群,且一个命名空间只能属于一个项目。

场景规划

本节旨在展示行业内广泛采用的的项目和命名空间规划的解决方案,并为您的实际业务规划提供参考。您可根据业务需求,灵活分配资源规划。通过借鉴本节内容,定制适合您组织的实践策略。

业务隔离模式

企业在开展大规模项目时,需要对不同业务线进行隔离和管理,以确保每个业务线能够独立地进行开发和部署,同时也需要确保系统的可靠性和稳定性。例如对某个大功能模块进行开发时,该模块将作为一个单独的项目,项目下创建命名空间,用来为该模块的开发、测试、产品等人员划分环境资源。

在业务开发模式下,您可以将每个业务线视为平台中一个独立的项目,由独立的业务团队进行开发和维护,业务负责人通过创建平台的命名空间为每个项目构建独立的隔离环境。

  1. 平台管理员分配业务资源:平台管理员统一管理各个业务线的资源分配。

  2. 业务负责人划分命名空间资源:业务负责人规划命名空间下的资源分配,并添加命名空间管理员,方便各个开发环境的资源隔离,并且您可按照资源的需求程度划分已经分配的资源:

    • 资源充裕的情况下:平台管理员为每个业务团队划分一个或多个独立集群,业务负责人作为项目管理员按照业务需求自行划分命名空间资源。优点是独立资源、结构简单,易于管理,由于业务处在独立的集群中,避免不同业务组件间的相互影响。

    • 资源有限的情况下:平台管理员依据业务负责人所需的资源总量,共同协作完成资源划分,并创建跨集群的项目,以合理分配多个集群的资源。优点是集群资源可以得到充分利用,统一管理,节省成本,并且同一集群下不同命名空间内的应用也可以通过内部路由便捷访问,使用场景更加丰富。

组织隔离模式

组织隔离模式是指将不同的组织或团队隔离开来,以便它们可以独立地开发、测试和部署软件。例如将子公司作为一个单独的项目统一管理,并在项目下创建命名空间,子公司负责人为子公司下的不同团队划分环境资源。

  1. 平台管理员分配组织资源:平台管理员统一管理各个子公司的资源分配,并为各个子公司创建不同的项目。

  2. 子公司负责人划分命名空间资源:子公司负责人规划命名空间下的资源分配,并添加命名空间管理员,方便各个开发环境的资源隔离,并且您可按照资源的需求程度划分已经分配的资源:

    • 资源充裕的情况下:平台管理员为每个子公司划分一个或多个独立集群,子公司负责人作为项目管理员按照业务需求自行划分命名空间资源。优点是独立资源、结构简单,易于管理。由于各个子公司处在独立的集群中,避免了不同业务组件相互影响。

    • 资源有限的情况下:平台管理员依据子公司负责人所需的资源总量,共同协作完成资源划分,并创建跨集群的项目,以合理分配多个集群的资源。优点是集群资源可以得到充分利用,统一管理,节省成本,并且同一集群下不同命名空间内的应用也可以通过内部路由便捷访问,使用场景更加丰富。