Kubernetesでpub/sub型のappのRollingUpdateの考え方?

具体的な解決策は思いついていないのですが、「こういうケースってどうやってRolling Updateするんだろう?」と疑問に思った点をメモしておこうと思います。具体的な解決案が見つかりましたら、また追記しようと思います。

前提

  • 以下の仮想のシステムをKubernetesで動かしたい
  • appllcation #1 はAPIサーバであり、ユーザはPOSTを発行することで何らかのjobの実行をリクエストすることができる。受け付けられたリクエストはJobQueueに積まれる
  • application #2 はJobQueueを定期的にPollingし、Jobが積まれている場合のみそれを取り出し処理を行う

疑問点

  • このようなケースにおいて、application#2に対し、RollingUpdateを実施し event handler methodにデグレードが発生の場合はRollBackをしたい
  • application#2はその仕組み上、APIサーバのように同期的にRequestを受け付けて返すことが難しい
  • そのようなケースにおいても、RollingUpgradeを実現する方法はあるか?

f:id:smatsuzaki:20201124224117p:plain
仮想のシステムの構成図

/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */