【テクトン】

Tekton とは?

最終更新:
💡 作業の定義と実行を、Kubernetesのリソースで管理する

Kubernetes上でビルド・テスト・デプロイなどのCI/CD処理を定義し、実行するためのフレームワーク。TaskやPipelineで作業を定義し、TaskRunやPipelineRunで実行する。

📌 このページのポイント
Tekton:定義と実行を分ける Pipeline:作業の定義 Task 取得 Task テスト Task ビルド 定義を使って実行を作成 PipelineRun TaskRun Pod 取得 Stepsを実行 TaskRun Pod テスト Stepsを実行 TaskRun Pod ビルド Stepsを実行 Kubernetesクラスタ内 イベント起動にはTriggersなどを追加
通常のTaskを直列に実行する構成例。上段は定義した依存関係、下段への矢印はPipelineRunからTaskRunを作る関係。各TaskのStepsはPod内で順に実行する。
ひよこ ひよこ
Tektonは何をするの?
ペンギン先生 ペンギン先生
例えばソースの取得、テスト、コンテナイメージのビルドといった作業を、Kubernetes上で定義・実行するための仕組みだよ。CI/CDの処理をKubernetesのリソースとして管理できるんだ。
ひよこ ひよこ
TaskとPipelineはどう違うの?
ペンギン先生 ペンギン先生
Taskは順番に実行するStepsをまとめた作業の定義。Pipelineは複数のTaskを組み合わせる定義だよ。依存関係などで実行の流れを表し、必ず全部が単純な一直線になるわけではないんだ。
ひよこ ひよこ
YAMLの定義を適用したら、すぐ始まる?
ペンギン先生 ペンギン先生
TaskやPipelineを登録しただけでは実行を開始しないよ。TaskRunやPipelineRunを作成して、その定義を実行する。PipelineRunからは各Taskに対応するTaskRunが作られ、状態も記録されるんだ。
ひよこ ひよこ
実際の作業はどこで動くの?
ペンギン先生 ペンギン先生
通常のTaskではKubernetesのPod上で、Stepsに指定したコンテナが順に動くよ。ビルドや公開に必要なイメージ、作業領域、権限なども設定する。Kubernetesを使うだけで、それらが自動的にそろうわけではないんだ。
ひよこ ひよこ
ソースを更新したら自動で開始できる?
ペンギン先生 ペンギン先生
追加コンポーネントのTekton Triggersなどを使えるよ。イベントから情報を取り出し、PipelineRunやTaskRunを作成する仕組みだ。使うにはクラスタへの導入と設定が必要なので、手動起動も含めて運用に合う方法を選ぶんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Tekton」って出てきたら「Kubernetes上でCI/CDの作業を定義し、実行する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Tekton」 = CI/CDフレームワークの名前
💬 ここではKubernetes上でパイプラインを扱うプロジェクト名だよ。作業の定義と、その定義を使う実行を分けて覚えると理解しやすいんだ。

参考資料

← 用語集にもどる