Kubernetes资源管理与网络通信全解析
1. 资源自动伸缩
在Kubernetes中,有多种自动伸缩的方式,能帮助我们根据实际情况动态调整资源,以满足应用的需求。
- HPA与自定义指标 :借助Metrics Server API,我们不仅能使用基本的CPU和内存指标进行伸缩,还能支持自定义指标。Custom Metrics API和Metrics Aggregator允许第三方提供者接入并扩展指标,Horizontal Pod Autoscaler(HPA)就能基于这些外部指标进行伸缩。例如,我们可以根据外部存储队列的指标来进行伸缩,这样就能针对特定应用指标或外部服务指标进行伸缩操作。
- 垂直Pod自动伸缩器(VPA) :与HPA不同,VPA并不对副本进行伸缩,而是自动调整请求。它能自动为Pod的请求进行上下调整,对于那些由于架构原因无法进行横向扩展的工作负载,VPA是一种很好的自动伸缩资源的方式。比如MySQL数据库,我们可以设置主节点根据工作负载自动进行扩展。VPA由三个组件构成:
- Recommender :监控当前和过去的资源消耗情况,并为容器的CPU和内存请求提供推荐值。
- Updater :检查哪些Pod设置了正确的资源,如果没有,则将其终止,以便其控制器使用更新后的请求重新创建它们。
- Admission Plugin :为新的Pod设置正确的资源请求。
不过需要注意的是,截至Kubernetes v1.15,VPA不建议用于生产环境