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の環境を利用しました。
1 2 3 4 5 6 7 |
<span class="hljs-meta">$</span><span class="bash"> lsb_release -a</span> <span style="color: #999999">No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic </span> |
KubernetesはGKEを利用しました。検証に利用したKubernetesのクライアントおよびサーバのバージョンは以下の通りです。
1 2 3 4 |
<span class="hljs-meta">$</span><span class="bash"> kubectl version --short</span> <span style="color: #999999">Client Version: v1.15.1 Server Version: v1.12.8-gke.10 </span> |
Tekton Pipelines cliをインストールする
Tekton Pipelines cliをWindows10のWSL Ubuntu 18.04にインストールします。
- Git HubからTekton Pipelines cliのバイナリをダウンロードする。
- ダウンロードしたバイナリファイルを解凍し、実行パスを通す。
1 2 |
<span class="hljs-meta">$ </span><span class="bash">curl -LO https://github.com/tektoncd/cli/releases/download/v0.1.2/tkn_0.1.2_Linux_x86_64.tar.gz</span> <span class="hljs-meta">$</span><span class="bash"> sudo tar xvzf tkn_0.1.2_Linux_x86_64.tar.gz -C /usr/<span class="hljs-built_in">local</span>/bin/ tkn</span> |
Tekton Pipelines cliをkubectlのプラグインとして登録する
Tekton Pipelines cliをkubectl
のプラグインとして登録します。kubectl
コマンドはPATH
の通ったディレクトリにあるkubectl-
の名前がプレフィックスとして付いた実行ファイルを、コマンドとして呼び出すことができます。
先ほどインストールしたtknファイル(Tekton Pipelines cli)にkubectl-tkn
の別名をつけてプラグインとして呼び出せるようにします。
1 |
<span class="hljs-meta">$</span><span class="bash"> sudo ln -s /usr/<span class="hljs-built_in">local</span>/bin/tkn /usr/<span class="hljs-built_in">local</span>/bin/kubectl-tkn</span> |
kubectlのプラグインとして実行してみます。
1 2 3 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn version</span> <span style="color: #999999">Client version: 0.1.2 </span> |
❗ Windows 10 Version 1803を利用している場合
Windows 10 Version 1803でkubectlプラグインを実行すると、cannot allocate memory
エラーが発生して実行できませんでした。
1 2 3 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn version</span> <span style="color: #999999">cannot allocate memory </span> |
Windows 10 Version 1803を利用している方は、kuectlプラグインではなく直接tkn
コマンドを実行してください。
1 2 3 |
<span class="hljs-meta">$</span><span class="bash"> tkn version</span> <span style="color: #999999">Client version: 0.1.2 </span> |
※以降の実行例ではWindows 10 Version 1903のWSL Ubuntu 18.04を使用しています。
Tekton Pipelines cliのコマンド
Tekton Pipelines cliのコマンドと実行例を紹介します。
tkn help
Tekton Pipelines cliのヘルプ画面を表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn <span class="hljs-built_in">help</span></span> <span style="color: #999999">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. </span> |
tkn version
Tekton Pipelines cliのバージョンを表示します。
1 2 3 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn version</span> <span style="color: #999999">Client version: 0.1.2 </span> |
tkn task list
Tekton PipelinesのTask一覧を表示します。
1 2 3 4 5 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn task list</span> <span style="color: #999999">NAME AGE test-deploy 4 minutes ago test-doker-image 4 minutes ago </span> |
-n
フラグでネームスペースを指定することができます。
1 2 3 4 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn task list -n tekton-pipelines</span> <span style="color: #999999">NAME AGE pipeline0-task 6 minutes ago </span> |
tkn taskrun list
TaskRunの一覧を表示します。STATUS
でTaskの実行状態を確認することができます。
1 2 3 4 5 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn taskrun list</span> <span style="color: #999999">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 </span> |
tkn taskrun logs <taskrun_name>
TaskRunの実行ログを表示します。引数としてTaskRun名が必要になります。
1 2 3 4 5 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn taskrun logs <span class="hljs-built_in">test</span>-pipelinerun-build-image-rcr4q</span> <span style="color: #999999">... [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: [] </span> |
tkn pipeline list
Tekton PilelinesのPipeline一覧を表示します。STATUS
でPipelineの実行状態を確認することができます。
1 2 3 4 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn pipeline list</span> <span style="color: #999999">NAME AGE LAST RUN STARTED DURATION STATUS test-pipeline 8 minutes ago test-pipelinerun 7 minutes ago 56 seconds Succeeded </span> |
tkn pipeline describe <pipeline_name>
Pipelineの詳細を表示します。引数として表示するPipeline名が必要です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn pipeline describe <span class="hljs-built_in">test</span>-pipeline</span> <span style="color: #999999">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 </span> |
tkn pipelinerun list
PipelineRunの一覧を表示します。STATUS
でPipelineRunの実行状態を確認することができます。
1 2 3 4 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn pipelinerun list</span> <span style="color: #999999">NAME STARTED DURATION STATUS test-pipelinerun 12 minutes ago 56 seconds Succeeded </span> |
tkn pipeliberun describe <pipelinerun_name>
PipelineRunの詳細を表示します。引数としてPipelineRun名が必要になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn pipelinerun describe <span class="hljs-built_in">test</span>-pipelinerun</span> <span style="color: #999999">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 </span> |
tkn pipelinerun log <pipelinerun_name>
PipelineRunの実行ログを表示します。引数としてPipelineRun名が必要になります。
1 2 3 4 5 6 7 8 |
<span class="hljs-meta">$</span><span class="bash"> kubectl tkn pipelinerun logs <span class="hljs-built_in">test</span>-pipelinerun</span> <span style="color: #999999">... [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 </span> |
さいごに
本記事ではTekton PipelinesのCLIツールであるTekton Pipelines cliのインストールと概要を紹介しました。
kubectl
コマンドだけだと、リソース名の取得や出力された情報の把握に手間がかかります。Tekton Pipelines cliを利用することでリソースの一覧、実行ログの確認、実行状態の把握などが、簡単にできるようになります。
前回紹介したダッシュボードでもcliと同様の情報を取得することはできます。しかしcliはコマンドさえ把握していれば情報取得は迅速にできますし、他のツールとの連携やアウトプットの加工が簡単にできます。ダッシュボードとcliではそれぞれの利点や不得意なところがありますので、状況や利用目的、利用者にあったツールを選択していきましょう。
投稿者プロフィール
最新の投稿
- AWS2021年12月2日AWS Graviton3 プロセッサを搭載した EC2 C7g インスタンスが発表されました。
- セキュリティ2021年7月14日ゼロデイ攻撃とは
- セキュリティ2021年7月14日マルウェアとは
- WAF2021年7月13日クロスサイトスクリプティングとは?