通过 Kubernetes 架构,我们可以注意到一个完整的集群主要包含 Master (包括 ETCD 集群)、应用 Node 、 Infra Node 等若干部分。具体指责上 Master 主要提供 API Server 进行集群容器调度、应用 Node 负责应用容器本身运行、 Infra Node 负责监控、日志、 Ingress 等基础设施容器运行。他们之间通过 CNI 接口实现的虚拟网络实现网络按需互联。因此,性能优化主要包含:
比如针对 Master 本身 OS 优化、是否和与 ETCD 分离运行、相关 OS 参数设置等等。
不同 Infra 节点的 OS 优化。如 ES 对 OS 文件句柄具有一定要求、 ES 及 P8S 等对存储的优化、 Ingress 节点对网络的优化等等。
Kubernetes 应用层优化。如 CPU 是否密集型调度处理、 QoS 处理等等。
这点很多 SA 都非常熟悉, 包括 CPU 、内存、 IO 、磁盘、网卡等等。
针对不同基础服务需要指定不同监控方案。比如 Prometheus 监控及高可用性(包括其本身是否需要交叉监控等等)
包括对集群的整体容量规划、集群内不同 Infra 服务的容量规划等等。