1.硬件系统选型:宿主机通用配置16c/32GB/4网卡队列
2.os优化:单机支持百万tcp并发,/etc/sysctl.conf,/etc/security/limits.conf
3.k8s&容器层优化:性能优化initContainer
4.kube-dns优化:增大--cache-size,设置--neg-ttl,增大cpu/memory,部署kube-dns-autoscaler
5.业务容器优化:jdk8+感知cgroup cpu/memory限制
k8s弹性伸缩优化思路:
资源分配规则:(备注:资源指cpu、内存)
-
剩余资源=总的资源容量-总的资源利用;
剩余资源:根据服务的规格对应消费方弹缩pod资源占比分配;
-
当多个服务竞争共享资源时,解决方方法: 共享资源按照所需弹缩服务对应消费方弹缩pod资源占比分配;(调整剩余资源pod,或者整个k8集群pod资源分配比)
-
当mq broker消息数少于2,收缩pod;
-
弹缩pod个数=预估弹缩pod个数*权重值; 权重值计算:服务场景打分;(备注:标准定义)
-
资源类型: io密集型->内存 计算密集型->cpu
-
保证每个服务至少2个节点,做到高可用; 保证一个项目只有一个namespace;