我只想知道我是否理解文檔的權利:更新部署(滾動更新)是否使新舊共存副本同時接收流量?
假設我有一個nginx服務器,配置了1.7.9版的Deployment,配置了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
2的新實例(c4fwg,vp23q) 1.9.1已經開始與1.7.9版本的3個實例共存一段時間。
此時對服務的請求會發生什麼?是否所有的要求都去舊的豆莢,直到所有的新豆莢都可用?或者請求是否在新舊版豆莢之間進行了負載平衡?
在最後一種情況下,是否有方法可以修改此行爲並確保所有流量都轉到舊版本,直到所有新的pod啓動?
嗨馬修,除了Spinakker的一件事,你可以給我一些流量管理的名字rs我可以使用?謝謝。 – codependent
延誤道歉; [Envoy](https://lyft.github.io/envoy/),[fabio](https://github.com/fabiolb/fabio#readme),[haproxy](https://github.com/haproxy/haproxy#自述文件), [kong](https://getkong.org)(雖然它確實面向API流量),[traefik](https://traefik.io/),[voyager](https: //github.com/appscode/voyager#readme),可能還有很多其他的。該列表中的許多人也可以[Ingress controllers](https://kubernetes.io/docs/concepts/services-networking/ingress/),它可以用一塊石頭擊敗兩隻鳥。 –
感謝您的建議馬修! – codependent