1. はじめに
数年前に、Kubernetes 環境で CI/CD パイプラインを作るために Tekton というツールを触った経験があります。
当時の細かい設定やコードはほとんど覚えていませんが、今回はその経験や学びを整理して、初心者でも雰囲気がつかめる内容としてまとめてみます。
2. 当時の状況
当時はすでに Kubernetes が動いている環境があり、私は Tekton を使って CI/CD の一部パイプラインを作る担当でした。
公式ページ(英語)や書籍を参考にしつつ、上司や先輩の助言を受けながら少しずつ作業を進めていました。
しかし、当時は Tekton の参考リソースが少なく、仕組みの理解に苦労しました。
そもそも Docker や Kubernetes などコンテナの仕組みもよく知らなかったため、同時に調べながら理解を進める必要がありました。
さらに、既存の現場システムは規模が大きく複雑だったため、どのように導入すればよいかイメージが湧かず、頭を抱えた記憶があります。
3. Tekton の基本概念
Tekton は、Kubernetes 上で動作する CI/CD ツールです。
簡単に言うと、開発作業の自動化を助けるツールです。
例えば、ソースコードのビルドやテスト、デプロイなど、手作業で行っていた作業を自動で順番に実行できます。
3-1. Tekton と Kubernetes の関係
- Kubernetes がコンテナを管理するプラットフォームであるのに対して
- Tekton は Kubernetes 上で CI/CD パイプラインを自動で実行するためのツールです
- Tekton を使うことで、開発フローの自動化が容易になります
3-2. Tekton でできること(イメージ例)
- ソースコードを自動でビルドする
- ビルド結果をテストする
- 問題なければステージング環境や本番環境に自動デプロイする
- 複数の作業(Task)を順番に組み合わせて Pipeline を作り、自動で流す
ポイント:Tekton を使うと「人が順番に手作業でやる作業」を、自動で決まった順序で実行できるようになります。
3-3. Tekton の主要な構成要素
- Task:1つの処理単位(例:コードのビルド、テスト、デプロイなど)
- Pipeline:Task を順番に並べた流れ(例:ビルド→テスト→デプロイ)
- PipelineRun:Pipeline を実際に実行する操作

図1: Tekton の概念モデル(出典: Tekton公式サイト)
3-4. Tekton の使い方
Tekton では、Task や Pipeline を YAML という設定ファイルに書き、Kubernetes に登録し、PipelineRun を作成することで定義した手順を順番に実行できる、という流れになります。
3-4-1. Task を作る
- 「何をやるか」を YAML ファイルに書く
- 例:ビルド Task → ソースコードを取得してビルドする
ファイル名例: hello-build-task.yaml
apiVersion: tekton.dev/v1
kind: Task
metadata:
name: hello-build-task
spec:
steps:
- name: say-hello
image: ubuntu
script: |
echo "Hello Tekton!"
上記 YAML を登録すると Task が Kubernetes 上に作成されます。
Task 自体は登録されるだけで、まだ実行はされません。
3-4-2. Pipeline を作る
- 複数の Task を順番に並べる YAML ファイル
例:ビルド Task → テスト Task → デプロイ Task
ファイル名例: hello-pipeline.yaml
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: hello-pipeline
spec:
tasks:
- name: build
taskRef:
name: hello-build-task
複数 Task を定義する場合は、tasks に追記します。
この YAML を登録すると Pipeline が作成され、Task を順番に実行できるようになります。
3-4-3. PipelineRun で実行
- Pipeline を実際に実行する YAML ファイル
ファイル名例: hello-pipeline-run.yaml
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: hello-pipeline-run
spec:
pipelineRef:
name: hello-pipeline
この YAML を登録すると、Pipeline が順番通りに Task を実行します。
4. 当時の学び・気づき
Tekton の Pipeline を初めて作るとき、Task と Pipeline の関係がまだ頭に入っておらず、全体像をつかむのに苦労しました。
公式ドキュメントや書籍に載っているコード例(テンプレート)をそのまま現場システムに適用する方法がわからず、どう進めればいいか戸惑った記憶があります。
特に難しかったのは権限周りの扱いで、作業はほとんどがトライアンドエラーの連続でした。
一日中エラーとにらめっこしながら、少しずつ YAML の記述を変えて試す、という作業を繰り返していました。
また、Docker や Kubernetes の基本も同時に学ぶ必要があり、一度に覚えることが多くて大変でした。
その中で意識していたことは次のようなことです:
- 概念を整理して理解することが重要
- 少しずつ手を動かして確認しながら進めることが理解の近道
こうすることで、少し時間はかかりますが理解でき、自分の中に落とし込んで進めていけました。
5. まとめ
今回の記事では、昔触った Tekton の経験を振り返りながら、自分なりに概念を整理してみました。
久しぶりに手を動かしながら学びを文章化することで、自分自身の理解も深まりました。
アドベントカレンダー向けの記事として投稿することで、経験を整理して共有する良い機会になりました。
ちなみに今回が私にとって Qiita 初投稿です。