互联网服务性能调优Kubernetes

查看其它 1 个回答edwin1986的回答

edwin1986edwin1986系统架构师上汽通用汽车

首先要进行整体集群容量评估,考虑到 ETCD 本身的性能,需要对 Node 数量、 Pod 数量 Namespace 数量、每个 Namespace 中对象数量、 Service 数量等容量进行规划。同时需要留意的是集群节点数量和 Master CPU 性能是呈线性增长的,需要合理配置 Master 节点计算资源。

其次,针对 CPU Manager 的调度策略,需要针对不同应用特点进行规划和定义。比如 CPU 密集型的应用和常规应用的调度策略就有所不同,一般通过设置节点亲和性进行区别对待。

再则,对于节点使用的不同类型存储,针对每个存储的特点和使用场景需要进行不同的设计。比如 Prometheus 应避免使用文件存储来实现持久化。

在性能调优方面,除去本身 OS 的一些参数调优,也需要注意所运行应用的特性和要求。如果 ES 需要作为应用容器运行,则需要进行部分 ES 对应 OS 参数调优。

在监控方面,传统 OS 的监控和容器应用的监控应同时支持。 OS 监控包括 CPU 、内存、 IO 、磁盘、网卡等等。但需要注意的是,由于应用节点通常无状态,应用进行随机调度,需要规避节点调度的雪崩效应,即假设一个节点 Down ,其上面容器被调度到其他节点,进而导致这些节点因为 IO 异常而雪崩,最终影响整个集群。这点上可以通过适当的监控和调度处理规避。应用层监控除去传统的外部监控方案也可以使用 Prometheus 进行,目前其已经实现越来越多的外部 exporter 或 sdk 支持集成越来越多中间件。但需要注意其本身监控失效,这点可以通过交叉监控规避。

汽车 · 2020-07-13
浏览878

回答者

edwin1986
系统架构师上汽通用汽车
擅长领域: 云计算容器容器云

edwin1986 最近回答过的问题

回答状态

  • 发布时间:2020-07-13
  • 关注会员:3 人
  • 回答浏览:878
  • X社区推广