Deployment(Kubernetes)
Kubernetesで最も一般的なワークロード。望ましい状態 — このPodテンプレートを3レプリカ — を記述すると、コントローラーが更新中も含めて現実をそれに合わせてくれる。
内部ではPodテンプレートのバージョンごとにReplicaSetが作られる。更新時にはmaxSurgeとmaxUnavailableに従って新しい側がスケールアップし、古い側がスケールダウンする。readiness probeが正直であれば、ダウンタイムのないローリングアップデートになる。古いReplicaSetは残されるため、kubectl rollout undoで即座に元へ戻せる。Podが交換可能で名前に意味のないステートレスなサービス向きだ。安定したIDやレプリカごとのストレージが必要ならStatefulSet、全ノードで1つずつ動かしたいならDaemonSetが適している。