约束与限制
本文主要为您介绍云容器引擎(CCE)集群使用过程中的一些限制。
集群/节点限制
- 集群一旦创建以后,不支持变更以下项:
- 变更集群的控制节点数量,例如非高可用集群(控制节点数量为1)变更为高可用集群(控制节点数量为3)。
- 变更控制节点可用区。
- 变更集群的网络配置,如所在的虚拟私有云VPC、子网、容器网段、服务网段、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):暂不支持设置。
- 不支持对IPv6地址网络隔离。
- 当前仅容器隧道网络模型的集群支持网络策略(NetworkPolicy)。网络策略可分为以下规则:
存储卷限制
- 云硬盘存储卷使用约束:
- 文件存储卷使用约束:
- 支持多个PV挂载同一个SFS或SFS Turbo,但有如下限制:
- 多个不同的PVC/PV使用同一个底层SFS或SFS Turbo卷时,如果挂载至同一Pod使用,会因为PV的volumeHandle参数值相同导致无法为Pod挂载所有PVC,出现Pod无法启动的问题,请避免该使用场景。
- PV中persistentVolumeReclaimPolicy参数建议设置为Retain,否则可能存在一个PV删除时级联删除底层卷,其他关联这个底层卷的PV会由于底层存储被删除导致使用出现异常。
- 重复用底层存储时,建议在应用层做好多读多写的隔离保护,防止产生的数据覆盖和丢失。
- 支持多个PV挂载同一个SFS或SFS Turbo,但有如下限制:
- 对象存储卷使用约束如下:
- 使用对象存储时,挂载点不支持修改属组和权限。
- 对于并行文件系统,CCE支持通过OBS SDK方式和PVC挂载方式使用,其中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 |
集群容量限制
集群规格容量由多种资源共同构成,例如容器组(Pod)、云存储实例(Persistent volume)、服务(Service)等,同时资源对象的大小也会影响集群规格容量。
例如:
- 当Pod对象资源过大时,在一定的规格性能范围内Pod数量上限将相应降低。
- 当Pod数量趋于上限时,集群内其他类型资源上限也将相应降低。
在实际使用环境中,由于集群中多种资源共存,单一的类型资源可能无法达到上限值。因此,您可以通过监控及时查看集群相关使用率,对集群进行适当的规划和管理,以确保所有资源的性能都能够得到最大化的利用。如果当前规格无法满足您的使用需求,可以通过扩容来保证集群的稳定性。
依赖底层云产品配额限制
限制大类 |
限制项 |
普通用户限制 |
---|---|---|
计算 |
实例数 |
1000 |
核心数 |
8000核 |
|
RAM容量 (MB) |
16384000 |
|
网络 |
一个用户创建虚拟私有云的数量 |
5 |
一个用户创建子网的数量 |
100 |
|
一个用户拥有的安全组数量 |
100 |
|
一个用户拥有的安全组规则数量 |
5000 |
|
一个路由表里拥有的路由数量 |
100 |
|
一个虚拟私有云拥有路由数量 |
100 |
|
一个区域下的对等连接数量 |
50 |
|
一个用户拥有网络ACL数量 |
200 |
|
一个用户创建二层连接网关的数量 |
5 |
|
负载均衡 |
弹性负载均衡 |
50 |
弹性负载均衡监听器 |
100 |
|
弹性负载均衡证书 |
120 |
|
弹性负载均衡转发策略 |
500 |
|
弹性负载均衡后端主机组 |
500 |
|
弹性负载均衡后端服务器 |
500 |