16

kubernetes クラスターのレプリケーション コントローラーによって制御される一連のポッドを更新する好ましい方法は何ですか?

私は2つの方法を見ることができます:

  1. レプリケーション コントローラを手動で削除して再作成する
  2. 使用するkubectl rolling-update

を使用してrolling-update、レプリケーション コントローラーの名前を変更する必要があります。レプリケーション コントローラーの定義を YAML ファイルに格納し、手動で生成しないため、ファイルを変更してコードの更新をプッシュする必要があると、レプリケーション コントローラーの 2 つの名前 (コントローラー A とコントローラー B など) を交互に使用するなどの悪い習慣が発生するようです。名前の競合を避けます。

より良い方法は何ですか?

4

3 に答える 3

25

更新:kubectl rolling-updateは廃止され、代わりのコマンドはkubectl rollout. また、元の回答を書いたので、展開リソースが追加されており、クライアントではなくサーバー側でローリング更新が実行されるため、ReplicaSets よりも優れた選択であることに注意してください。


を使用する必要がありますkubectl rolling-update。最近、名前を変更せずにレプリケーション コントローラーのイメージを更新する「単純なローリング アップデート」を実行する機能を追加しました。kubectl help rolling-updateこれは、出力に示されている最後の例です。

// Update the pods of frontend by just changing the image, and keeping the old name
$ kubectl rolling-update frontend --image=image:v2

このコマンドはリカバリもサポートしています。更新をキャンセルして後で再開すると、中断したところから再開されます。バックグラウンドで新しいレプリケーション コントローラーが作成されますが、更新の最後に、新しいレプリケーション コントローラーは古いレプリケーション コントローラーの名前を使用するため、完全に新しいレプリケーション コントローラーに切り替えるのではなく、純粋な更新として表示されます。

于 2015-05-12T15:13:50.210 に答える