【发布时间】:2016-11-21 14:02:02
【问题描述】:
我有一个“同质”的 Kubernetes 设置。我的意思是我只运行一种类型的 pod(http 服务器)的实例,负载均衡器服务向它们分配流量。
根据我的推理,为了充分利用我的集群(编辑:具体而言——获得对 http 请求的最佳平均响应时间)我应该:
- 每个节点上至少运行一个 pod: 没有在节点上运行 pod,意味着我正在为节点付费,但尚未准备好为请求提供服务。
- 每个节点上最多运行一个 pod: 这些 pod 是线程化的 http 服务器,因此它们可以最大限度地利用节点,因此在一个节点上运行多个 pod 不会给我带来任何好处。
这意味着我应该每个节点只有一个 pod。我使用 DaemonSet 实现了这一点。
另一种方法是配置一个 Deployment 并对其应用 HorizontalPodAutoscaler 并让 Kubernetes 处理 pod 的数量和 pod 到节点的映射。与此相比,我的方法有什么缺点吗?
我的评估是,HorizontalPodAutoscaler 主要适用于异构情况,其中一个 HorizontalPodAutoscaler 可以以另一个 Deployment 为代价来扩展一个 Deployment。但由于我只有一种类型的 pod,所以我只有一个 Deployment,而且我会以牺牲自身为代价来扩大该部署,这是没有意义的。
【问题讨论】:
标签: kubernetes autoscaling google-kubernetes-engine