30章Image Builder(イメージビルダ)
Kubernetesは汎用的なオーケストレーションエンジンであり、アプリケーションを実行するだけでなく、コンテナイメージをビルドするのにも適しています。Image Builder(イメージビルダ)パターンでは、クラスタ内でコンテナイメージをビルドする意味は何なのか、今日においてKubernetes内でイメージを作る手法にはどんなものがあるのかについて説明します。
30.1 問題
ここまでに出てきたこの本でのパターンはどれも、Kubernetes上でのアプリケーション運用に関するものでした。良きクラウドネイティブ市民であるために、アプリケーションをどのように開発し、どのように準備するかを学んできました。しかし、アプリケーション自体をビルドする場合はどうでしょうか。昔ながらの方法としては、クラスタ外でコンテナイメージをビルドし、イメージをレジストリにプッシュし、KubernetesのDeployment記述からそれを参照するというものです。しかし、クラスタ内でビルドも行うことにはいくつかの利点があります。
社内ポリシー上可能なのであれば、あらゆる物を載せるクラスタが1つあるというのが使い勝手がよいでしょう。1箇所でアプリケーションを構築して実行するのは、メンテナンスコストを明らかに下げてくれます。また、キャパシティプランニングが単純になり、プラットフォームのリソースオーバヘッドも減らせます。
通常、Jenkinsのような継続的インテグレーション(CI)システムは、イメージのビルドに使われます。CIシステムを使ったビルドは、ビルドジョブに使う利用可能な計算資源を効率的に見つける必要がある点で、スケジューリングの問題として扱われます。Kubernetesの中心部分には非常に洗練されたスケジューラの仕組みがあり、このようなスケジューリングの問題に対しては完璧な組み合わせです。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access