[Tekton Pipelines] Tektonのダッシュボードを使ってみよう

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Tekton Pipelinesは、Kuernetes上で実行するCI/CD形式のパイプラインツールです。Kubernetes Nativeなオープンソースとして開発されています。 TektonはThe Continuous Delivery Foundation(CDF)のプロジェクトとして採用されています。

本記事ではTekton PipelinesのWebベースのUIであるTekton Dashboardのインストール方法と概要を紹介します。

対象読者

  • Kubernetes-nativeなCI/CDツールを探している人
  • Cloud Delivery Foundation(CDF)に興味がある人
  • Cloud Nativeの思想に興味がある人

関連記事

もくじ

  1. はじめに
  2. 検証環境の紹介
  3. Dashboardをインストールする
  4. Dashboardへのアクセス方法
  5. Tektonリソースをインポートする
  6. Docker Hub認証情報の作成
  7. Pipelineを実行する
  8. おわりに

はじめに

Tekton DashboaedはTekton PipelinesのWebベースのUIです。Tekton Pipelinesのタスクの管理や参照、実行などを行うことができます。Tekton Dashboardの実行には、Tekton Pipelines v0.5以上のインストールが必要です。Tekton Pipelinesのインストール方法は、前回の記事を参照してください。

検証環境の紹介

GKE環境で検証を行いました。検証に利用したKubernetesのクライアントおよびサーバのバージョンは以下の通りです。

Dashboardをインストールする

はじめにTekton DashboardのソースをGit Hubからクローンします。

kubectl applyコマンドでTekton Dashboardのマニフェストファイルを指定します。

Tekton Dashboardは、Tekton Pipelinesと同じtekton-pipelinesというネームスペースにインストールされます。ネームスペースを指定してPodの起動を確認してみます。

Dashboardがインストールされ、実行状態となっています。

Dashboardへのアクセス方法

Tekton Dashboardは、ClusterIPを経由してアクセスすることができます。ClusterIPのポート場号は9097です。

kubectl proxyを利用したアクセス

ClusterIP経由でアクセスするために、kubectl proxyコマンドを利用します。

ブラウザでhttp://localhost:8001/api/v1/namespaces/tekton-pipelines/services/tekton-dashboard:http/proxy/にアクセスしてみます。

port-forwardを利用したアクセス

kubectl port-forwardを利用したアクセス方法です。

ブラウザでhttp://localhost:9097にアクセスします。kubectl proxyとURLの指定が異なるので注意してください。

どちらの方法でもDashboardへのアクセスを終了する場合は、Ctrl + cでプロキシもしくはポートフォワードの実行を停止してください。

Tektonリソースをインポートする

Tekton DashboardからTektonのリソースをインポートして、パイプラインの設定を行ってみます。Tektonリソース(yamlファイル)のGitリポジトリを指定してインポートを行うことができます。はじめにDashboardの左側のメニューからImport Tekton resourcesを選択します。

項目 入力内容
Repository URL Tektonリポジトリを格納したGitリポジトリのURL
Namespace Tektonリソースを実行するネームスペース
Repository directory (optional) インポートするリポジトリのディレクトリ。指定しない場合場トップディレクトリが対象。
Service Account(optional) Tektonリソースを実行するサービスアカウント。デフォルトはtekton-dashboard

Import and Applyボタンを押すと、Tektonリソースのインポートと適用が実行されます。 ダッシュボードはデフォルトの設定で、サービスアカウントtekton-dashboard、ネームスペースtekton-pipelinesとして実行されています。 ネームスペースtekton-pipelinesのサービスアカウントtekton-dashboardには最低限の権限のみ付与されているため、作成したマニフェストファイルが権限不足で実行できない場合があります。

記事の執筆時点ではServiceAccountの新規作成などが、ダッシュボードのインポートからは行えません。一般的には、クラスタ管理者がServiceAccountの作成を行いますので、ダッシュボードの一般利用の権限としては正しいものと思われます。

今回の実行例では、cluster-adminの権限を付与したサービスアカウントを作成して、そのサービスアカウントを利用します。
ダッシュボードからインポートを行う前に、サービスアカウントと権限付与を行うマニフェストファイルを作成しておきます。

作成したマニフェストファイルをKubernetes上に適用しておきます。

今回は前回の記事で作成したパイプラインの実行例で利用したTektonリソースをインポートしてみます。Repository URLNamespaceに以下の値を指定しました。

項目 入力内容
Repository URL https://github.com/sumomo-99/TektonSample.git
Namespace default
Repository directory (optional) tekton
Service Account(optional) tekton-dashboard

Import and Applyボタンを押すと、ボタンの下にリンクが表示されます。

リンクをクリックすることで、インポート(apply)の状態を確認することができます。

Docker Hub認証情報の作成

Docker Hubへイメージをプッシュするために、Docker Hubの認証情報をKubernetesのSecretに定義します。

前回の記事と同じファイルを利用します。ファイル内容の説明は、前回の記事を参照してください。

作成したSecretをKubernetesに適用します。

Pipelineを実行する

Tektonリソースのインポートが完了したので、Pipelineを実行してみます。
Import Tekton resourcesでPipelineRunをインポートして実行します。

項目 入力内容
Repository URL https://github.com/sumomo-99/TektonSample.git
Namespace default
Repository directory (optional) tekton_run
Service Account(optional) tekton-dashboard

Import and Applyボタンを押して、PipelineRunを実行してみましょう。しばらく待つと、ダッシュボード上のパイプラインのステータスが以下のように変化していきます。

すべてのタスクが緑色で表示されれば、パイプラインの実行は成功です。実行に失敗したタスクは赤字で表示されます。

さいごにkubectlコマンドでもPodが起動したのか確認をしておきましょう。

正常にPod(testapp-deployment-cdcf6bdb8-wxpxv)が起動しているようです。

おわりに

本記事ではTekton PipelinesのWebベースのUIであるTekton Dashboardのインストール方法と概要を紹介しました。kubectlのコマンドラインベースでは、タスクやパイプラインの実行ログやステータスの確認に非常に手間がかかります。Tekton DashboardはGUIベースで簡単に実行ログやステータスを確認することでできます。便利なツールは積極的に利用してみて、便利さをどんどん周りに伝えていきましょう。

スカイアーチ ファンタジー研究室

スカイアーチ ファンタジー研究室

EasyDoggie