Kubernetes 自动伸缩与日志配置实践
1. Kubernetes 自动伸缩
1.1 问题提出
集群负载是可变的,根据应用使用需求,集群负载可能增加或减少。Kubernetes 集群管理器的一个优势是能够根据需要对容器(Pod)集群进行伸缩。用户可以在预期负载增加时扩大规模(增加 Pod 数量),在预期负载减少时缩小规模(减少 Pod 数量)。然而,用户干预的伸缩模型仅适用于开发和小规模集群。对于负载不可预测且需要高可用性的生产级集群,用户发起的伸缩可能不及时或与负载需求不成比例。
1.2 解决方案
Kubernetes 为生产级集群提供了自动伸缩管理设计模式。自动伸缩基于可变配置模式。可以创建一个水平 Pod 自动伸缩器(HPA),并预先配置最小和最大 Pod 数量,集群将在这个范围内进行伸缩。当运行中的集群负载增加时,HPA 会自动根据负载需求增加 Pod 数量,直至达到配置的最大 Pod 数量;当负载减少时,HPA 会自动按比例减少 Pod 数量,无需用户干预。
HPA 相对于用户干预伸缩有两个主要优点:一是伸缩自动进行,二是不会让额外的 Pod 持续运行消耗可用于其他应用的资源。可以为复制控制器、副本集或部署创建自动伸缩器。自动伸缩器使用 Heapster 收集资源的 CPU 利用率,并据此确定应该运行更多还是更少的 Pod。自动伸缩基于目标 CPU 利用率,即如部署等资源的 CPU 利用率应为 x%。
1.3 实践步骤
1.3.1 设置环境
创建一个运行在 CoreOS AWS CloudFormation 上的 Kubernetes 集群,该集群由
超级会员免费看
订阅专栏 解锁全文
38

被折叠的 条评论
为什么被折叠?



