腾讯云国际站:腾讯云TKE如何支撑百万容器?
高效的资源调度与管理
- 先进的调度算法 :采用容器编排技术,如 Kubernetes ,其智能调度系统能根据容器资源需求和节点资源状况,合理分配容器到合适的节点,支持大规模集群和复杂任务调度,保障业务稳定运行。
- 资源 quotas 与 limit ranges 机制 :通过 Kubernetes 的资源 quotas 和 limit ranges 功能,合理分配和限制容器资源,防止资源争抢,确保每个容器都能获得足够的计算、存储和网络资源,从而支持大规模容器的稳定运行。
- HouseKeeper 运维范式 :腾讯云创新的 HouseKeeper 运维范式,对原生节点、超级节点、注册节点等云上云下资源进行统一纳管。其可交互式资产管理大盘和智能运维系统,能辅助企业进行利用率等数据分析并给出专家级建议,同时基于声明式的智能运维系统降低了节点维护复杂度,现已支持百万核 TKE 集群,使节点资源利用率较以往提升 1.5 倍。
优秀的网络性能优化
- IPVS-BPF 模式 :开发新的 IPVS-BPF 模式,绕过 nf_conntrack 处理逻辑,使用 eBPF 完成 SNAT 功能。在 Pod 访问 ClusterIP 场景下,短连接性能提升 40%,p99 时延降低 31%,显著提高了网络性能和可扩展性。
- Pod 直连模式 :上线 Pod 直连模式,对负载均衡的控制面进行优化,重点改进批量调用和后端实例查询等远程调用频繁的地方。在 Ingress 典型场景下,控制面性能较优化前提升 95%-97% 左右,避免了 NAT 转发性能损失和对集群内业务功能的影响。
- 高性能网络插件 :Tencent Linux 针对容器场景做了大量性能优化,如解决 IPVS 模式高并发场景下连接复用引发连接异常、高配节点下 IPVS 规则过多引发网络毛刺等问题,优化网络收包软中断,提升网络性能,保障大规模容器网络通信的高效性和稳定性。
强大的弹性伸缩能力
- 集群弹性伸缩 :支持集群自动伸缩,能根据业务负载动态实时创建和释放云服务器,自动调整集群规模以适应业务需求变化,确保在业务高峰时有足够的资源支持容器运行,同时在业务低谷时避免资源浪费,提高资源利用率和成本效益。
- 应用弹性伸缩 :支持基于容器的弹性伸缩,可根据业务负载自动扩展或收缩容器实例数量,快速响应业务需求变化,保障业务的高可用性和用户体验。
稳定可靠的存储与内存管理
- 多样化的存储选项 :提供本地存储、NFS、Ceph 等多种存储卷类型供用户选择,满足不同应用的存储需求。同时,通过分布式缓存技术如 Redis、Memcached 等减少对后端存储的访问压力,提高存储性能和可靠性。
- 内存优化策略 :提供内存配置指南和最佳实践,建议用户使用腾讯云监控 Barad 等工具实时监控容器内存使用情况,及时发现内存瓶颈和异常,并根据应用负载变化动态调整容器内存配置,避免资源浪费和性能瓶颈。此外,优化代码以减少内存泄漏和不必要的内存占用,也是确保大规模容器稳定运行的重要措施。
优秀的集群管理与运维能力
- 原生节点水位线概念 :引入调度时水位线和运行时水位线,既能保持节点高利用率,又有足够空间容纳任务扩展需求,保障业务稳定性。
- 高优任务与低优任务混部 :原生节点提供 CPU 动态 burst 能力,实现高优任务抢占低优资源,在线、离线业务混部,提升资源利用率。
- etcd 性能优化 :通过减少启动耗时、提升密码鉴权性能、优化查询 key 数量性能等措施,增强了 etcd 的性能和稳定性,从而支撑更大规模的集群和容器数量。