Kubernetes and Cloud Native Associate 無料問題 3 / 10 ・ 分野1: Kubernetes Fundamentals
Deployment の Pod テンプレートのイメージを新しい版に書き換えた。公式ドキュメントに合う動きはどれか。
- Deployment が持つ ReplicaSet を利用者が直接編集し、新しいイメージを配る
- 新しい ReplicaSet が作られ、それを増やしながら古い ReplicaSet を減らしていく
- テンプレートの変更は、Deployment を作り直すまで Pod に反映されない
- 今の ReplicaSet のテンプレートが書き換わり、動いている Pod のイメージがその場で替わる
正解と解説を見る
正解: B
正解の理由
Deployment のページは用途の一つとして、Deployment の PodTemplateSpec を更新して Pod の新しい状態を宣言すると、新しい ReplicaSet が作られ、Deployment はそれを徐々に増やしながら古い ReplicaSet を減らし、制御された速さで Pod を入れ替えると書いている。
違う選択肢
「今の ReplicaSet のテンプレートが書き換わり、動いている Pod のイメージがその場で替わる」… Pod のページは、Pod テンプレートを変更しても既存の Pod には直接の影響が無く、ワークロードのリソースが更新後のテンプレートで置き換えの Pod を作る必要があると書いている。動いている Pod のイメージがその場で入れ替わるのではない。
「Deployment が持つ ReplicaSet を利用者が直接編集し、新しいイメージを配る」… Deployment のページは、Deployment が所有する ReplicaSet を管理しないよう明記している。ReplicaSet の作成と増減は Deployment が行う。
「テンプレートの変更は、Deployment を作り直すまで Pod に反映されない」… Deployment は Pod に宣言的な更新を提供する。テンプレートを更新すれば新しい ReplicaSet による入れ替えが始まり、作り直す必要はない。
押さえどころ
古い ReplicaSet は残るので、状態が安定しないときは以前のリビジョンへロールバックできる。複数の修正をまとめたいときは、ロールアウトを一時停止してからテンプレートを直し、再開する。