【发布时间】:2018-01-09 16:38:46
【问题描述】:
我只是想知道我是否正确理解了文档:
假设我有一个配置了 Deployment 的 nginx 服务器,版本为 1.7.9,有 4 个副本。
apiVersion: apps/v1beta1 # for versions before 1.6.0 use extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 4
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
现在我将图像更新到 1.9.1 版本:
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1
使用kubectl get pods 我看到以下内容:
> kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-2100875782-c4fwg 1/1 Running 0 3s
nginx-2100875782-vp23q 1/1 Running 0 3s
nginx-390780338-bl97b 1/1 Terminating 0 17s
nginx-390780338-kq4fl 1/1 Running 0 17s
nginx-390780338-rx7sz 1/1 Running 0 17s
nginx-390780338-wx0sf 1/1 Running 0 17s
1.9.1 的 2 个新实例(c4fwg、vp23q)已开始与 1.7.9 版本的 3 个实例共存一段时间。
此时向服务发出的请求会发生什么情况?在所有新的 Pod 可用之前,所有的请求都会转到旧的 Pod 吗?还是新旧 pod 之间的请求负载均衡?
在最后一种情况下,有没有办法修改此行为并确保所有流量都流向旧版本,直到所有新 pod 启动?
【问题讨论】:
标签: kubernetes