首页 / 最佳实践 / 纳管接入集群下的命名空间

纳管接入集群下的命名空间

场景介绍

某企业客户已购买并且正在使用的 Kubernetes 集群(例如:OpenShift 集群、Amazon EKS 集群),需要专人负责运营和维护。希望将这些集群接入平台,通过平台统一管理企业内所有的集群和主机,使企业能快速有效并低成本地跨区域、跨平台运行集群。

当集群对接了平台的账号权限后,需要确保集群上已有的标准 Kubernetes 资源(例如:ConfigMap、secret、service、ingress 等)能够在平台上正常使用,并可进行可视化地运维管理。

实现方案

提示:以下仅说明如何纳管接入集群下已有的 Kubernetes 资源。接入集群及资源纳管成功后的更多功能说明,请参考用户手册。

集群接入成功后,将集群下已有的命名空间及命名空间下的标准 Kubernetes 资源导入平台上具体的项目下,供企业内用户访问或作为开发/测试/生产环境使用的流程,如下图所示。

  1. 准备项目,将项目和接入集群关联起来,用于导入集群下已有的命名空间。

    说明

    • 命名空间(Kubernetes Namespace)作为更小的且相互隔离的资源空间,被纳管在平台的具体项目下之后,可实现权限体系的贯通,允许具有相关权限的用户通过平台访问或使用命名空间中的资源。

    • 接入集群下的命名空间,只能导入到已和集群进行关联(集群将资源分配给项目)了的项目下。

  2. 将接入集群下的命名空间导入平台的项目,即可将命名空间及命名空间下的标准 Kubernetes 资源接入平台进行可视化管理并分配给租户使用。

  3. 通过为用户分配项目/命名空间角色,管理命名空间的访问权限。

    平台支持基于角色的用户权限管理功能,通过为用户分配不同的项目、命名空间角色,从而实现项目之间、命名空间之间的人员访问隔离。进一步增强了对资源的访问控制,保障了平台的资源安全。

操作步骤 1 - 准备项目

项目是平台为了满足企业多租户的使用场景,基于平台上一个或多个集群的资源配额,划分出的可以实现资源和人员相互隔离的项目环境,能够代表企业中不同的子公司、部门或项目组。

通过为项目关联接入集群,可将接入集群的资源分配给一个或多个项目。在将接入集群关联至项目前,请根据实际情况确认是否关联平台上的已有项目。

提示:以下将以基于接入集群创建新项目为例进行说明。如果您想将接入集群下资源分配给已有的项目使用,请参考 添加项目关联集群 的方式将集群添加至已有项目,可将新接入的集群关联至项目。

操作步骤

  1. 项目管理 视图,单击 创建项目

  2. 基本信息 页面,输入以下必填参数,其他参数视实际需要选填。

    1. 名称 输入框中输入项目的名称。

    2. 单击 所属集群 下拉选择框,选择 接入集群

  3. 单击 下一步 按钮,依据实际情况,设置集群分配给当前项目的资源配额。

    • 如果未输入某项资源的配额,默认为 不限制。即项目可按需占用集群中可用的相应类型的资源,没有最大限额。

    • 设置的项目配额数值应在页面提示的配额范围之内。在每项资源配额的输入框下方,将会展示该项资源的已分配配额和总额信息以供参考。

  4. 设置完成后单击 创建项目

操作步骤 2 - 在项目下导入命名空间

将接入集群下已有的命名空间导入平台上的项目后,即可通过平台纳管接入平台的集群中已有的命名空间及命名空间下的标准 Kubernetes 资源。

操作步骤

  1. 在左侧导航栏中,单击 命名空间 > 命名空间

  2. 单击 创建命名空间 按钮右侧的 > 导入命名空间

  3. 参考必填参数说明,配置命名空间 基本信息

    • 所属集群:单击下拉选择框,选择 接入集群

    • 命名空间 :单击下拉选择框,选择一个命名空间。

  4. 更新命名空间的 资源配额(ResourceQuota)。

    说明

    • 设置资源配额后,将覆盖待导入的命名空间的原有资源配额信息。并且,为命名空间配置的资源配额超过项目可用资源配额将导致命名空间导入不成功。

    • 命名空间的资源配额,是集群项目配额的一部分。对于某一种资源,可设置的最高配额为在项目中的未使用的资源配额,如果任意一种资源的可使用量为 0,将无法继续导入命名空间,请联系平台管理员。

  5. 参见以下参数说明,配置 容器限额(LimitRange)。

    通过设置容器限额,可以控制在当前命名空间下创建的容器的 CPU/内存 大小。单一容器的 CPU、内存大小必须在默认值和最大值之间。

    说明:设置容器限额后,在该命名空间下创建自定义应用或计算组件时,容器的 资源限制 默认为命名空间的 默认值,重新设置的值不可小于命名空间的 默认值 且不可大于命名空间的 最大值

  6. (可选)在 更多配置 区域,可为命名空间配置标签(labels)、注解(annotations)。

  7. 单击 导入

操作步骤 3 - 管理命名空间的访问权限

通过在接入集群关联的项目或接入集群下的命名空间中导入用户并为用户设置角色,可控制用户对命名空间及命名空间下资源的访问权限,从而实现项目之间、命名空间之间的人员访问隔离。

以下以为命名空间导入用户为例进行说明。也可通过为单个用户添加项目/命名空间角色,授予相应的访问权限。相应的,移除成员即可回收用户的访问权限。

操作步骤

  1. 命名空间成员 页签下, 单击 导入成员

  2. 单击用户名前的选择框,选择一个或多个用户。

  3. 单击对话框底部 设置角色 项右侧的下拉选择框,选择要分配的角色名称。

  4. 单击 导入

结果验证

如果能顺利执行以下操作,表明接入集群下的命名空间纳管成功。

操作步骤

  1. 使用已配置命名空间访问权限的账号登录平台。

  2. 在容器平台中,选择上述步骤中准备的 项目接入集群 并单击导入的 命名空间

  3. 可查看并管理命名空间中的资源。