Scaling概述

上一篇中我们发布的程序只创建了一个Pod,在流量剧增时显然不满足需求,这时我们就要对程序进行伸缩操作,可通过replicas参数实现。

下图Service A 只将访问流量转发到 IP 为 10.0.0.5 的Pod上:

Kubernetes教程:伸缩

当修改了 Deployment 的 replicas 为 4 后,Kubernetes 又为该 Deployment 创建了 3 新的 Pod,这 4 个 Pod 有相同的标签。因此Service A通过标签选择器与新的 Pod建立了对应关系,将访问流量通过负载均衡在 4 个 Pod 之间进行转发。

Kubernetes教程:伸缩

将nginx Deployment扩展到4个副本

创建yaml文件

vim nginx-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 4
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80

应用yanl文件

kubectl apply -f nginx-deployment.yaml

查看结果

kubectl get pods -o wide