更新时间:2024-01-26 GMT+08:00

约束与限制

本文主要为您介绍云容器引擎(CCE)集群使用过程中的一些限制。

集群/节点限制

  • 集群一旦创建以后,不支持变更以下项:
    • 变更集群的控制节点数量,例如非高可用集群(控制节点数量为1)变更为高可用集群(控制节点数量为3)。
    • 变更控制节点可用区。
    • 变更集群的网络配置,如所在的虚拟私有云VPC、子网、容器网段、服务网段、IPv6、kubeproxy代理(转发)模式。
    • 变更网络模型,例如“容器隧道网络”更换为“VPC网络”
  • 由于ECS(节点)等CCE依赖的底层资源存在产品配额及库存限制,创建集群、扩容集群或者自动弹性扩容时,可能只有部分节点创建成功。
  • ECS(节点)规格要求:CPU ≥ 2核且内存 ≥ 4GB。
  • 通过搭建VPN方式访问CCE集群,需要注意VPN网络和集群所在的VPC网段、容器使用网段不能冲突。

网络限制

  • 节点访问(NodePort)的使用约束:默认为VPC内网访问,如果需要通过公网访问该服务,请提前在集群的节点上绑定弹性IP。
  • CCE中的负载均衡(LoadBalancer)访问类型使用弹性负载均衡 ELB提供网络访问,存在如下产品约束:
    • 自动创建的ELB实例建议不要被其他资源使用,否则会在删除时被占用,导致资源残留。
    • v1.15及之前版本集群使用的ELB实例请不要修改监听器名称,否则可能导致无法正常访问。
  • 网络策略(NetworkPolicy),存在如下产品约束:
    • 当前仅容器隧道网络模型的集群支持网络策略(NetworkPolicy)。网络策略可分为以下规则:
      • 入规则(Ingress):所有版本均支持。
      • 出规则(Egress):仅如下操作系统和集群版本支持设置Egress规则:

        操作系统

        集群版本

        经验证的内核版本

        CentOS

        v1.23及以上

        3.10.0-1062.18.1.el7.x86_64

        3.10.0-1127.19.1.el7.x86_64

        3.10.0-1160.25.1.el7.x86_64

        EulerOS 2.5

        v1.23及以上

        3.10.0-862.14.1.5.h591.eulerosv2r7.x86_64

        3.10.0-862.14.1.5.h687.eulerosv2r7.x86_64

        EulerOS 2.9

        v1.23及以上

        4.18.0-147.5.1.6.h541.eulerosv2r9.x86_64

        4.18.0-147.5.1.6.h766.eulerosv2r9.x86_64

    • 不支持对IPv6地址网络隔离。
    • 通过原地升级到支持Egress的集群版本,由于不会升级节点操作系统,会导致无法使用Egress,此种情况下,请重置节点。

存储卷限制

  • 云硬盘存储卷使用约束:
    • 云硬盘不支持跨可用区挂载,且不支持被多个工作负载、同一个工作负载的多个实例或多个任务使用。由于CCE集群各节点之间暂不支持共享盘的数据共享功能,多个节点挂载使用同一个云硬盘可能会出现读写冲突、数据缓存冲突等问题,所以创建无状态工作负载时,若使用了EVS云硬盘,建议工作负载只选择一个实例。
    • 1.19.10以下版本的集群中,如果使用HPA策略对挂载了EVS卷的负载进行扩容,当新Pod被调度到另一个节点时,会导致之前Pod不能正常读写。

      1.19.10及以上版本集群中,如果使用HPA策略对挂载了EVS卷的负载进行扩容,新Pod会因为无法挂载云硬盘导致无法成功启动。

  • 文件存储卷使用约束:
    • 支持多个PV挂载同一个SFS或SFS Turbo,但有如下限制:
      • 多个不同的PVC/PV使用同一个底层SFS或SFS Turbo卷时,如果挂载至同一Pod使用,会因为PV的volumeHandle参数值相同导致无法为Pod挂载所有PVC,出现Pod无法启动的问题,请避免该使用场景。
      • PV中persistentVolumeReclaimPolicy参数需设置为Retain,否则可能存在一个PV删除时,级联删除底层卷,其他关联这个底层卷的PV会由于底层存储被删除导致使用出现异常。
      • 重复用底层存储时,建议在应用层做好多读多写的隔离保护,防止产生的数据覆盖和丢失。
  • 对象存储卷使用约束如下:
    • 使用并行文件系统和对象桶时,挂载点不支持修改属组和权限。
    • CCE支持通过OBS SDK方式和PVC挂载方式使用OBS并行文件系统,其中PVC挂载方式是通过OBS服务提供的obsfs工具实现。每挂载一个并行文件系统对象存储卷,就会产生一个obsfs常驻进程。如下图所示:
      图1 obsfs常驻进程

      建议为每个obsfs进程预留1G的内存空间,例如4U8G的节点,则建议挂载obsfs并行文件系统的实例不超过8个。

      obsfs常驻进程是直接运行在节点上,如果消耗的内存超过了节点上限,则会导致节点异常。例如在4U8G的节点上,运行的挂载并行文件系统卷的实例超过100+,有极大概率会导致节点异常不可用。因此强烈建议控制单个节点上的挂载并行文件系统实例的数量。

  • 本地持久卷使用约束:
    • 本地持久卷仅在集群版本 >= v1.21.2-r0 时支持,且需要everest插件版本>=2.1.23,推荐使用>=2.1.23版本。
    • 移除节点、删除节点、重置节点和缩容节点会导致与节点关联的本地持久存储卷类型的PVC/PV数据丢失,无法恢复,且PVC/PV无法再正常使用。移除节点、删除节点、重置节点和缩容节点时使用了本地持久存储卷的Pod会从待删除、重置的节点上驱逐,并重新创建Pod,Pod会一直处于pending状态,因为Pod使用的PVC带有节点标签,由于冲突无法调度成功。节点重置完成后,Pod可能调度到重置好的节点上,此时Pod会一直处于creating状态,因为该PVC对应的底层逻辑卷已不存在。
    • 请勿在节点上手动删除对应的存储池或卸载数据盘,否则会导致数据丢失等异常情况。
    • 本地持久卷不支持被多个工作负载或多个任务同时挂载。
  • 本地临时卷使用约束:
    • 本地临时卷仅在集群版本 >= v1.21.2-r0 时支持,且需要everest插件版本>=1.2.29。
    • 请勿在节点上手动删除对应的存储池或卸载数据盘,否则会导致数据丢失等异常情况。
    • 请确保节点上Pod不要挂载/var/lib/kubelet/pods/目录,否则可能会导致使用了临时存储卷的Pod无法正常删除。
  • 快照与备份使用约束:
    • 快照功能仅支持v1.15及以上版本的集群,且需要安装基于CSI的everest插件才可以使用。
    • 基于快照创建的云硬盘,其子类型(普通IO/高IO/超高IO)、是否加密、磁盘模式(VBD/SCSI)、共享性(非共享/共享)、容量等都要与快照关联母盘保持一致,这些属性查询和设置出来后不能够修改。
    • 只有可用或正在使用状态的磁盘能创建快照,且单个磁盘最大支持创建7个快照。
    • 创建快照功能仅支持使用everest插件提供的存储类(StorageClass名称以csi开头)创建的PVC。使用Flexvolume存储类(StorageClass名为ssd、sas、sata)创建的PVC,无法创建快照。
    • 加密磁盘的快照数据以加密方式存放,非加密磁盘的快照数据以非加密方式存放。

插件限制

CCE插件采用Helm模板方式部署,修改或升级插件请从插件配置页面或开放的插件管理API进行操作。请勿直接后台直接修改插件相关资源,以免插件异常或引入其他非预期问题。

CCE集群配额限制

针对每个用户,云容器引擎的集群在每个地域分配了固定配额。

限制项

普通用户限制

单Region下集群总数

50

单集群最大节点数(集群管理规模)

可选择50节点、200节点、1000节点或2000节点多种管理规模。

单节点最大实例数

256

单个集群管理的最大Pod数

10万Pod

依赖底层云产品配额限制

限制大类

限制项

普通用户限制

计算

实例数

1000

核心数

8000核

RAM容量 (MB)

16384000

网络

一个用户创建虚拟私有云的数量

5

一个用户创建子网的数量

100

一个用户拥有的安全组数量

100

一个用户拥有的安全组规则数量

5000

一个路由表里拥有的路由数量

100

一个虚拟私有云拥有路由数量

100

一个区域下的对等连接数量

50

一个用户拥有网络ACL数量

200

一个用户创建二层连接网关的数量

5

负载均衡

弹性负载均衡

50

弹性负载均衡监听器

100

弹性负载均衡证书

120

弹性负载均衡转发策略

500

弹性负载均衡后端主机组

500

弹性负载均衡后端服务器

500