容器 & 服务:Kubernetes 扩容
系列文章:
容器 & 服务:一个 Java 应用的 Docker 构建实战
容器 & 服务:Docker 应用的 Jenkins 构建 (二)
一 概述
前面我们已经讲到了 k8s 中 Deployment 的使用,并且通过 Deployment 可以完成部署、更新应用,同时,也可以使用它来实现扩容。
二 伸缩应用
在之前的操作中,我们创建了一个 Deployment,然后通过 Service 暴露,Deployment 创建的 Pod 来运行应用,当流量增加时,我们需要扩展应用来满足用户需求。这也回到了我们最开始开篇中提到的动态扩容的问题。
通过 Deployment 更改副本数可以实现伸缩。
三 什么是伸缩?
看一下下面的两张图片:
单Pod应用
多Pod
使用 Deployment 扩展能确保在新的可用 Node 资源上创建 Pods,缩小比例将减少 Pod 的数量到理想状态。如果伸缩需求是 0,将会终止 Deployment 指定的所有 Pod。Kubernetes 还支持自动缩放 Pods,本节将不做介绍。
运行应用将要考虑一些情况,需要将流量分配给所有实例。Service 集成了负载均衡器,可以将网络流量分配到 Deployment 暴露的所有 Pod 中。Service 将使用 Endpoints 持续监控运行的 Pod,以确保仅将流量分配到可用的 Pod。
版权声明: 本文为 InfoQ 作者【程序员架构进阶】的原创文章。
原文链接:【http://xie.infoq.cn/article/9189e5aa0c7f2fde5c976731c】。文章转载请联系作者。
评论