私はドキュメントの権利を理解しているかどうかを知りたいだけです: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 get pods
で
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1
私は以下を参照してください。
> 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つのインスタンスでしばらくの間、共存を開始しています。
現時点でサービスへのリクエストはどうなりますか?すべての新しいリクエストが利用可能になるまで、すべてのリクエストは古いポッドに移動しますか?または、新しいポッドと古いポッドの間で要求のロードバランスが取られていますか?
最後に、この動作を変更し、新しいポッドがすべて開始されるまですべてのトラフィックが古いバージョンに移行するようにする方法がありますか?
こんにちはMatthew、もう1つ、Spinakkerとは別にトラフィック管理の名前を教えてください私は使うことができますか?ありがとう。 – codependent
遅延のお詫び。 [Envoy](https://lyft.github.io/envoy/)、[fabio](https://github.com/fabiolb/fabio#readme)、[haproxy](https://github.com/haproxy/haproxy#readme)、 [kong](https://getkong.org)(実際にはAPIトラフィック向けですが)、[traefik](https://traefik.io/)、[voyager](https: //github.com/appscode/voyager#readme)、他にもたくさんの可能性があります。そのリストの多くは[Ingressコントローラ](https://kubernetes.io/docs/concepts/services-networking/ingress/)でも可能です。これはうまくいけば1羽の石で2羽の鳥を殺すことができます –
マシュー! – codependent