Kpt を使って組み換え可能な Manifest Pipeline を作ろう!

Japanese Lt Session 5m

概要

本 LT では、すでに Kubernetes を運用している初中級者に向けて、Manifest 管理ツール Kpt を紹介します。特に、Kpt 特有の考え方が他ツールとどのように異なるかに注目し、具体的なワークフローを挙げて解説します。

Kubernetes を運用する上で、大量の Manifest の複雑性をどう扱うかは避けられない課題です。テスト用と本番用のクラスタで設定が微妙に違っていたり、あるいは複数のチームが管理する Manifest に共通して必要な設定がある、といった現実的な状況下では、何らかの形で Manifest の共通化や環境差分の管理が必須です。実際、この問題を解決するために様々なツールが考案され、また広く使用されています。Helm や Kustomize はその代表格です。

一方、今回紹介する Kpt は、Helm や Kustomize とは一線を画したアプローチを採用しています。Kpt の大きな特徴は、入力と出力の間に「テンプレートとその代入結果」のような非対称性を導入せず、同じ形式の YAML を用いる点にあります。Kpt の各ステップは YAML を読み、加工した上で書き戻す処理になっているため、あたかも unix コマンドをパイプで繋ぐように、二つのステップを自在に接続したり、途中にステップを追加したりすることが可能になります。

さらに、各ステップの処理は独立してコンテナとして配布・再利用することもできます。本 LT では、Go を用いてオリジナルのステップを記述し、それを処理の一部として組み込む流れをサンプルコードを交えて解説したいと思います。

登壇者

← 戻る