容器服务
分类 | 名称 | 推荐版本 | 推荐理由 |
分类 | 名称 | 推荐版本 | 推荐理由 |
Kubernetes 版本 | Kubernetes 版本 | ≥ 1.34 | 缓存一致性读和流式 List 响应特性 GA,对于包含大量资源的 List 请求场景,可有效降低 kube-apiserver 内存占用并提升系统稳定性。更多说明,请参见 Kubernetes 版本发布记录。 |
重要组件版本 | vpc-cni | ≥ v1.9.3 |
|
| vpc-cni-controlplane | ≥ v1.4.5 |
|
| core-dns | ≥ 1.10.1-vke.200 | 优化了默认 CPU 和内存资源的请求和上限。 |
| csi-ebs | ≥ 1.3.1 | client-go 支持流式 List 响应。 |
| csi-nas | ≥ v1.3.2 | client-go 支持流式 List 响应。 |
| csi-tos | 建议使用 csi-fsx 替代 csi-tos | csi-tos 已经进入下线阶段,因此建议使用 csi-fsx 替代 csi-tos。 |
| csi-vepfs | ≥ v0.17.0 | client-go 支持流式 List 响应。 |
| fsx | csi-fsx ≥ v0.7.0 fsx-service ≥ v0.10.2 | client-go 支持流式 List 响应。 |
分类 | 说明 | 观测方式 | 配置建议 |
分类 | 说明 | 观测方式 | 配置建议 |
控制面规格 | VKE 提供 Kubernetes 控制面托管,在 大规模集群限制和建议 所述范围内,VKE 会根据控制面负载对 Kubernetes 控制面自动进行升配。通常情况下,该操作在 15 分钟内完成,且严格遵循滚动更新策略,其间长链接会断开重连,kube-apiserver 响应延迟会有抖动,理论上对业务无影响。 |
| |
APIServer CLB 升配 | Kubernetes 数据面组件通过 CLB 访问 APIServer,当集群 Node 和 Pod 规模增大时,APIServer 的入站流量会显著增加,CLB 带宽容量可能成为瓶颈,导致数据面组件与控制面的通信延迟升高甚至超时。 VKE 默认使用 按规格计费 CLB 实例,最高提供 2000 Mbps 带宽上限,对于大规模集群或高并发场景,需要根据实际流量监控情况适时升配 CLB 带宽规格。 | ||
kube-controller-manager 配置 | VKE 控制面自动升降配会动态调整 kube-controller-manager 参数,通常无需额外关注。 |
|
分类 | 说明 | 配置建议 | 推荐值 |
分类 | 说明 | 配置建议 | 推荐值 |
kubelet 配置 | VKE kubelet 的 QPS/Burst 默认值为 5/10,当节点上 Pod 数量多且变更频繁时,可能出现 Pod 状态更新缓慢、调度延迟、存储卷挂载缓慢等显著性能问题,建议您调大--kube-api-burst和--kube-api-burst参数。调大该两个参数会显著增加 kubelet 和 kube-apiserver 之间的 QPS,请重点关注 kube-apiserver 负载,逐步地增加该参数。 |
| kubelet 各参数配置推荐值如下:
|
节点启动加速 | 节点启动主要包含 ECS 实例的创建、节点初始化、下载系统组件镜像、节点状态刷新等过程,不同 ECS 机型启动速度有所区别,通常节点启动的端到端耗时在 5 min 以内。 | 无 | |
容器镜像加速 | 在大规模集群中,当应用镜像达到数 GB 甚至数十 GB 时,镜像拉取时间会成为 Pod 启动的主要瓶颈。集中式镜像仓库在并发拉取时容易成为网络带宽瓶颈。VKE 提供两种加速方案:
两种方案可结合使用以获得最佳效果。 |
| 无 |
分类 | 说明 | 配置建议 | 推荐值 |
分类 | 说明 | 配置建议 | 推荐值 |
容器网络模式 | 有两种容器网络模型:
| 容器网络模式一旦选择无法更改,为保证集群扩展性,请使用 VPC-CNI 的容器网络模式。 | 无 |
集群网段规划 | 在大规模 Kubernetes 集群中,容器网络的 IP 地址网段的大小直接决定集群可承载的节点数量和 Pod 数量上限。 |
| 无 |
Cilium Operator 配置 | Cilium Operator 会周期性回收 CiliumIdentity,CiliumIdentity 最大上限为 65535。在未独立部署的情况下,Cilium Operator 集成在 Cello DaemonSet 中,每个节点一个副本。当节点数量增多时,所有副本通过 Lease 机制进行 Leader Election,会产生大量对 kube-apiserver 的访问。对于大规模集群,应当将 Cilium Operator 从 DaemonSet 中解耦,采用独立 Deployment 部署并配置合理的副本数。 |
|
|
VPC-CNI IP 池化设置 | Cello 通过池化机制缓存 VPC ENI 和 IP 资源来提升 Pod 拉起速度。在默认池化参数下(如poolTarget=3),800 个节点的集群会缓存约 2400 个空闲 IP。对于大规模集群或子网容量有限的场景,需要根据实际需求评估,并适当调大或调小池化参数。 |
| |
NetworkPolicy 限制 | 集群若启用了 NetworkPolicy 来控制 Pod 之间的访问,则每个节点上的 Cello 组件会 ListWatch 集群内所有的 CiliumEndpoints,在节点规模超过 1000 时,会给 APIServer 带来访问压力。 |
| 无 |
Service 和 NetworkPolicy 数量 | VPC-CNI 模型集群中,Service 和 NetworkPolicy 均基于 Cilium 的 BPF Map 机制实现,其数量与 BPF Map 大小有关。每个 Service 对应的 Pod 会在 Backend Map 中生成唯一条目;每个被 NetworkPolicy 选中的 Pod 对应一个 Policy Map,每条 NetworkPolicy 规则都会在该 Map 中生成一条记录。随着集群中 Service、Pod 规则和 NetworkPolicy 规则数量的增长,相关 BPF Map 可能触及容量上限,导致 Service 或 NetworkPolicy 规则无法生效,Service 状态异常、访问异常以及访问控制不符合预期。 |
| 无 |
分类 | 说明 | 观测方式 | 配置建议 |
分类 | 说明 | 观测方式 | 配置建议 |
CoreDNS 副本调整 | CoreDNS 作为集群内 DNS 解析服务,其副本数直接影响 DNS 查询的处理能力。在大规模集群或高 DNS 请求负载场景下,默认配置可能不满足需求,应当根据实际负载情况手动调整 CoreDNS 副本数。 | ||
node-local-dns 部署 | NodeLocal DNSCache 通过在每个节点上部署本地 DNS 缓存 DaemonSet,使 Pod 的 DNS 查询在本地完成解析,将集中式 DNS 负载分散到各节点,同时降低查询延迟。 | 无 |