Tekton Pipelinesは、Kuernetes上で実行するCI/CD形式のパイプラインツールです。Kubernetes Nativeなオープンソースとして開発されています。 TektonはThe Continuous Delivery Foundation(CDF)のプロジェクトとして採用されています。
本記事ではTekton PipelinesのCLIツールであるTekton Pipelines cliのインストールと概要を紹介します。
対象読者
- Kubernetes-nativeなCI/CDツールを探している人
- Cloud Delivery Foundation(CDF)に興味がある人
- Cloud Nativeの思想に興味がある人
関連記事
- [Tekton Pipelines] Kubernetes-nativeなCI/CDツールのインストールとタスクの実行例を紹介します!
- [Tekton Pipelines] Tekton Pipelineのパイプライン機能を使ってみよう
- [Tekton Pipelines] Tektonのダッシュボードを使ってみよう
もくじ
- はじめに
- 検証環境の紹介
- Tekton Pipelines cliをインストールする
- Tekton Pipelines cliをkubectlのプラグインとして登録する
- Tekton Pipelines cliのコマンド
- さいごに
はじめに
Tekton Pipelines cliはTekton PipelinesのCLIツールです。Tekton Pipelinesのタスクの管理や参照、実行などを行うことができます。Tekton Pipelines cliの実行には、Tekton Pipelines のインストールが必要です。Tekton Pipelinesのインストール方法は、前回の記事を参照してください。
検証環境の紹介
Tekton Pipelines cliの実行環境として、Windows10のWSL Ubuntu 18.04の環境を利用しました。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
KubernetesはGKEを利用しました。検証に利用したKubernetesのクライアントおよびサーバのバージョンは以下の通りです。
$ kubectl version --short
Client Version: v1.15.1
Server Version: v1.12.8-gke.10
Tekton Pipelines cliをインストールする
Tekton Pipelines cliをWindows10のWSL Ubuntu 18.04にインストールします。
- Git HubからTekton Pipelines cliのバイナリをダウンロードする。
- ダウンロードしたバイナリファイルを解凍し、実行パスを通す。
$ curl -LO https://github.com/tektoncd/cli/releases/download/v0.1.2/tkn_0.1.2_Linux_x86_64.tar.gz
$ sudo tar xvzf tkn_0.1.2_Linux_x86_64.tar.gz -C /usr/local/bin/ tkn
Tekton Pipelines cliをkubectlのプラグインとして登録する
Tekton Pipelines cliをkubectl
のプラグインとして登録します。kubectl
コマンドはPATH
の通ったディレクトリにあるkubectl-
の名前がプレフィックスとして付いた実行ファイルを、コマンドとして呼び出すことができます。
先ほどインストールしたtknファイル(Tekton Pipelines cli)にkubectl-tkn
の別名をつけてプラグインとして呼び出せるようにします。
$ sudo ln -s /usr/local/bin/tkn /usr/local/bin/kubectl-tkn
kubectlのプラグインとして実行してみます。
$ kubectl tkn version
Client version: 0.1.2
❗ Windows 10 Version 1803を利用している場合
Windows 10 Version 1803でkubectlプラグインを実行すると、cannot allocate memory
エラーが発生して実行できませんでした。
$ kubectl tkn version
cannot allocate memory
Windows 10 Version 1803を利用している方は、kuectlプラグインではなく直接tkn
コマンドを実行してください。
$ tkn version
Client version: 0.1.2
※以降の実行例ではWindows 10 Version 1903のWSL Ubuntu 18.04を使用しています。
Tekton Pipelines cliのコマンド
Tekton Pipelines cliのコマンドと実行例を紹介します。
tkn help
Tekton Pipelines cliのヘルプ画面を表示します。
$ kubectl tkn help
CLI for tekton pipelines
Usage:
tkn [flags]
tkn [command]
Available Commands:
completion Prints shell completion scripts
help Help about any command
pipeline Manage pipelines
pipelinerun Manage pipelineruns
task Manage tasks
taskrun Manage taskruns
version Prints version information
Flags:
--azure-container-registry-config string Path to the file containing Azure container registry configuration information.
-h, --help help for tkn
Use "tkn [command] --help" for more information about a command.
tkn version
Tekton Pipelines cliのバージョンを表示します。
$ kubectl tkn version
Client version: 0.1.2
tkn task list
Tekton PipelinesのTask一覧を表示します。
$ kubectl tkn task list
NAME AGE
test-deploy 4 minutes ago
test-doker-image 4 minutes ago
-n
フラグでネームスペースを指定することができます。
$ kubectl tkn task list -n tekton-pipelines
NAME AGE
pipeline0-task 6 minutes ago
tkn taskrun list
TaskRunの一覧を表示します。STATUS
でTaskの実行状態を確認することができます。
$ kubectl tkn taskrun list
NAME STARTED DURATION STATUS
test-pipelinerun-build-image-rcr4q 27 minutes ago 36 seconds Succeeded
test-pipelinerun-deploy-kubernetes-lqnm7 27 minutes ago 19 seconds Succeeded
tkn taskrun logs <taskrun_name>
TaskRunの実行ログを表示します。引数としてTaskRun名が必要になります。
$ kubectl tkn taskrun logs test-pipelinerun-build-image-rcr4q
...
[step-image-digest-exporter-build-and-push-v2qjm] 2019/07/25 07:01:58 ImageResource easydoggie-test-image doesn't have an index.json file: stat /builder/home/image-outputs/builtImage/index.json: no such file or directory
[step-image-digest-exporter-build-and-push-v2qjm] 2019/07/25 07:01:58 Image digest exporter output: []
tkn pipeline list
Tekton PilelinesのPipeline一覧を表示します。STATUS
でPipelineの実行状態を確認することができます。
$ kubectl tkn pipeline list
NAME AGE LAST RUN STARTED DURATION STATUS
test-pipeline 8 minutes ago test-pipelinerun 7 minutes ago 56 seconds Succeeded
tkn pipeline describe <pipeline_name>
Pipelineの詳細を表示します。引数として表示するPipeline名が必要です。
$ kubectl tkn pipeline describe test-pipeline
Name: test-pipeline
Resources
NAME TYPE
gitSource git
dockerImage image
Tasks
NAME TASKREF RUNAFTER
build-image test-doker-image []
deploy-kubernetes test-deploy []
Runs
NAME STARTED DURATION STATUS
test-pipelinerun 9 minutes ago 56 seconds Succeeded
tkn pipelinerun list
PipelineRunの一覧を表示します。STATUS
でPipelineRunの実行状態を確認することができます。
$ kubectl tkn pipelinerun list
NAME STARTED DURATION STATUS
test-pipelinerun 12 minutes ago 56 seconds Succeeded
tkn pipeliberun describe <pipelinerun_name>
PipelineRunの詳細を表示します。引数としてPipelineRun名が必要になります。
$ kubectl tkn pipelinerun describe test-pipelinerun
Name: test-pipelinerun
Namespace: default
Pipeline Ref: test-pipeline
Service Account: build-bot
Status
STARTED DURATION STATUS
22 minutes ago 56 seconds Succeeded
Resources
NAME RESOURCE REF
gitSource easydoggie-git
dockerImage easydoggie-test-image
Params
No params
Taskruns
NAME TASK NAME STARTED DURATION STATUS
test-pipelinerun-build-image-rcr4q build-image 22 minutes ago 36 seconds Succeeded
test-pipelinerun-deploy-kubernetes-lqnm7 deploy-kubernetes 21 minutes ago 19 seconds Succeeded
tkn pipelinerun log <pipelinerun_name>
PipelineRunの実行ログを表示します。引数としてPipelineRun名が必要になります。
$ kubectl tkn pipelinerun logs test-pipelinerun
...
[deploy-kubernetes : step-git-source-easydoggie-git-n2l7w] {"level":"warn","ts":1564038136.7062855,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: \"ref: refs/heads/master\" is not a valid GitHub commit ID"}
[deploy-kubernetes : step-git-source-easydoggie-git-n2l7w] {"level":"info","ts":1564038136.9866529,"logger":"fallback-logger","caller":"git/git.go:102","msg":"Successfully cloned https://github.com/sumomo-99/TektonSample.git @ master in path /workspace/source"}
[deploy-kubernetes : step-run-kubectl] deployment.apps/testapp-deployment created
さいごに
本記事ではTekton PipelinesのCLIツールであるTekton Pipelines cliのインストールと概要を紹介しました。
kubectl
コマンドだけだと、リソース名の取得や出力された情報の把握に手間がかかります。Tekton Pipelines cliを利用することでリソースの一覧、実行ログの確認、実行状態の把握などが、簡単にできるようになります。
前回紹介したダッシュボードでもcliと同様の情報を取得することはできます。しかしcliはコマンドさえ把握していれば情報取得は迅速にできますし、他のツールとの連携やアウトプットの加工が簡単にできます。ダッシュボードとcliではそれぞれの利点や不得意なところがありますので、状況や利用目的、利用者にあったツールを選択していきましょう。

投稿者プロフィール
最新の投稿
AWS2021.12.02AWS Graviton3 プロセッサを搭載した EC2 C7g インスタンスが発表されました。
セキュリティ2021.07.14ゼロデイ攻撃とは
セキュリティ2021.07.14マルウェアとは
WAF2021.07.13クロスサイトスクリプティングとは?