Red Hat Tech Night 2019.05
Tekton 入門
Mamoru Shimizu
Global Professional Service / Consultant
May 28th, 2019
1
Copyright 2019 Red Hat K.K.2
自己紹介
● 名前: Mamoru Shimizu
○ Twitter / Qiita: @mamomamo
● Role: Consultant
● 最近の仕事
○ OpenShift 上のアプリケーション開発支援
○ OpenShift の設計・構築支援
○ JBoss EAP を使ったアプリケーション開発支援
Copyright 2019 Red Hat K.K.3
Tekton 概要
● Kubernetes ネイティブな CI/CD パイプラインを作るOSSのフレームワーク
● CI/CD ツールとプロセスの標準化に役立つOSSのコンポーネント群を提供、クラウド
プラットフォームに依存しないパイプラインを構築可能
● コンテナを実行ブロックの単位として扱う
● 2019年3月に発足した “Coutinuous Delivery Foundation” がホストしている中で最
も知られてないプロジェクト
Copyright 2019 Red Hat K.K.4
インストール方法
● 以下のコマンドでインストール可能 (cluster-admin で実行必須)
● カスタムコントローラのデプロイと CRD (Custom Resource Definition) を作成
● 以下の2つの Pod が作成される
$ oc new-project tekton-pipelines
$ oc adm policy add-scc-to-user anyuid -z tekton-pipelines-controller
$ oc apply --filename https://storage.googleapis.com/tekton-releases/latest/release.yaml
$ oc get po
NAME READY STATUS RESTARTS AGE
tekton-pipelines-controller-54d7bd8956-z7gjp 1/1 Running 0 1m
tekton-pipelines-webhook-66cfc6cd57-kl5mt 1/1 Running 0 1m
Copyright 2019 Red Hat K.K.5
Custom Resource Definition 種別
● Pipeline >- Task >- Step の包含関係
● CRD (Custom Resource Definition) の種別は以下の通り
種別 説明
PipelineResource Task で利用するインプット /アウトプットを指定するリソース
Task 最小の実行単位、複数の Step から構成されたリソース
TaskRun Task を実行するためのリソース
Pipeline 複数の Task から構成されたリソース
PipelineRun Pipeline を実行するためのリソース
Copyright 2019 Red Hat K.K.6
PipelineResource 設定例
● type: インプット/アウトプットのタイプを
指定
● 現在サポート対象のタイプ
○ Git Resource
○ Image Resource
○ Cluster Resource
■ 他の k8s クラスタへのアプリケーショ
ンのデプロイ
○ Storage Resource
■ GCS(Google Cloud Storage) のみサ
ポート
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
name: skaffold-git
spec:
type: git
params:
- name: revision
value: master
- name: url
value: https://github.com/GoogleContainerTools/skaffold
Copyright 2019 Red Hat K.K.7
Task 設定例
● inputs: インプットに必要な
PipelineResource とパラメータの指定
● outputs: Task によって作成される
PipelineResource を指定
● steps: 実行したいコンテナイメージを指
定、コンテナが実行ブロックの単位
apiVersion: tekton.dev/v1alpha1
kind: Task
metadata:
name: build-docker-image-from-git-source
spec:
inputs:
resources:
- name: docker-source
type: git
params:
- name: pathToDockerFile
・・・
outputs:
resources:
- name: builtImage
type: image
steps:
- name: build-and-push
image: gcr.io/kaniko-project/executor
command:
- /kaniko/executor
args:
- --dockerfile=${inputs.params.pathToDockerFile}
・・・
Copyright 2019 Red Hat K.K.8
TaskRun 設定例
● taskRef: 実行したい Task を指定
● resources: インプット/アウトプットとなる
PipelineResource を指定
● serviceAccount: Task を実行するサー
ビスアカウントを指定
● nodeSelector / tolerations / affinity:
Pod と同様に Task を実行するノードを
制御可能
apiVersion: tekton.dev/v1alpha1
kind: TaskRun
metadata:
name: build-docker-image-from-git-source-task-run
spec:
taskRef:
name: build-docker-image-from-git-source
inputs:
resources:
- name: docker-source
resourceRef:
name: skaffold-git
params:
- name: pathToDockerFile
value: Dockerfile
- name: pathToContext
value:
/workspace/docker-source/examples/microservices/leeroy-web
outputs:
resources:
- name: builtImage
resourceRef:
name: skaffold-image-leeroy-web
Copyright 2019 Red Hat K.K.9
Pipeline 設定例
● tasks: 実行する一連の Task を指定
● from: 先行する Task のアウトプットの
PipelineResource がある場合に指定
● runAfter: 別の Task の完了後に実行す
る場合に指定、アウトプットを連携する
必要はない
● retries: Task の実行に失敗した際にリト
ライした場合に指定
apiVersion: tekton.dev/v1alpha1
kind: Pipeline
metadata:
name: tutorial-pipeline
spec:
resources:
・・・
tasks:
- name: build-skaffold-web
taskRef:
name: build-docker-image-from-git-source
params:
・・・
resources:
inputs:
・・・
outputs:
・・・
- name: deploy-web
taskRef:
name: deploy-using-kubectl
resources:
inputs:
・・・
- name: image
resource: web-image
from:
- build-skaffold-web
params:
・・・
Copyright 2019 Red Hat K.K.10
PipelineRun 設定例
● pipelineRef: 実行したい Pipeline を指
定
● resources: インプット/アウトプットとな
る PipelineResource を指定
● serviceAccount: Task を実行するサー
ビスアカウントを指定
● nodeSelector / tolerations / affinity:
Pod と同様に Task を実行するノードを
制御可能
apiVersion: tekton.dev/v1alpha1
kind: PipelineRun
metadata:
name: tutorial-pipeline-run-1
spec:
pipelineRef:
name: tutorial-pipeline
resources:
- name: source-repo
resourceRef:
name: skaffold-git
- name: web-image
resourceRef:
name: skaffold-image-leeroy-web
Copyright 2019 Red Hat K.K.11
TaskRun / PipelineRun 実行方法
● PipelineResource -> Task -> Pipeline -> PipelineRun の順にリソースを作成
● 以下のようなコマンドでパイプラインの実行結果を確認
$ oc apply -f <name-of-file.yaml>
$ oc get pipelineruns/<name-of-pipeline> -o yaml
Copyright 2019 Red Hat K.K.12
まとめ (所感)
● Kubernetes ネイティブな CI/CD パイプラインを作るOSSのフレームワーク
● クラウドプラットフォームに依存しないパイプラインの記述方法が可能であり、コンテ
ナを実行ブロックの単位として扱うことが可能
● 普段から Kubernetes / OpenShift のYAMLを書き慣れている人にとって、Task /
Pipeline の書き方は理解し易いように感じた。
● 真面目にLT発表してみましたが、RHTNの雰囲気に合っているか正直分かりません。
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat
Red Hat is the world’s leading provider of
enterprise open source software solutions.
Award-winning support, training, and consulting
services make
Red Hat a trusted adviser to the Fortune 500.
Thank you
13

More Related Content

PDF
Git Flowを運用するために
PDF
ブルックスのいう銀の弾丸とは何か?
PDF
2015/11/15 Javaでwebアプリケーション入門
PDF
人生がときめくAPIテスト自動化 with Karate
PPTX
さくっと理解するSpring bootの仕組み
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム
Git Flowを運用するために
ブルックスのいう銀の弾丸とは何か?
2015/11/15 Javaでwebアプリケーション入門
人生がときめくAPIテスト自動化 with Karate
さくっと理解するSpring bootの仕組み
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
Apache Arrow - データ処理ツールの次世代プラットフォーム

What's hot (20)

PDF
Docker Swarm入門
PDF
マイクロにしすぎた結果がこれだよ!
PPTX
C# 8.0 非同期ストリーム
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
PPTX
async/await のしくみ
PPTX
DevOpsにおけるAnsibleの立ち位置と使い所
PDF
それはYAGNIか? それとも思考停止か?
PDF
決済サービスのSpring Bootのバージョンを2系に上げた話
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
PDF
Ingress on Azure Kubernetes Service
PDF
BuildKitの概要と最近の機能
PPTX
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
PDF
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
PDF
DockerとKubernetesをかけめぐる
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
PPTX
ワタシハ Azure Functions チョットデキル
PDF
Form認証で学ぶSpring Security入門
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PPTX
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
PDF
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
Docker Swarm入門
マイクロにしすぎた結果がこれだよ!
C# 8.0 非同期ストリーム
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
async/await のしくみ
DevOpsにおけるAnsibleの立ち位置と使い所
それはYAGNIか? それとも思考停止か?
決済サービスのSpring Bootのバージョンを2系に上げた話
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
Ingress on Azure Kubernetes Service
BuildKitの概要と最近の機能
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
DockerとKubernetesをかけめぐる
【Unite Tokyo 2019】Understanding C# Struct All Things
ワタシハ Azure Functions チョットデキル
Form認証で学ぶSpring Security入門
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
Ad

Similar to Tekton 入門 (20)

PPTX
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
PDF
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
PDF
5分で分かった気になるTekton
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PDF
オープンソースのコンテナ管理プラットフォーム Rancher のご紹介
PDF
Rancher command line interface
PDF
Red Hat Enterprise Linux 7.1 Kubernetes入門
PDF
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
PPTX
Docker & Kubernetes基礎
PDF
TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-
PDF
Dockerの仕組みとIIJ社内での利用例
PPTX
今さら聞けない人のためのDocker超入門
PPTX
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
PDF
Lenovo seminar rancher_200513
PDF
Rancher2.0で実現する Managed Kubernetes Service
PDF
On-Premise Kubernetes on Rancher
PDF
Hajimete k3s agenda_201008
PDF
Hpe rancher 200611
PPTX
RKE + Rancher 2.0
PDF
最近良く聞く Kubernetes を体験してみた イントロ + 活用編
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
5分で分かった気になるTekton
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
オープンソースのコンテナ管理プラットフォーム Rancher のご紹介
Rancher command line interface
Red Hat Enterprise Linux 7.1 Kubernetes入門
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
Docker & Kubernetes基礎
TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-
Dockerの仕組みとIIJ社内での利用例
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
Lenovo seminar rancher_200513
Rancher2.0で実現する Managed Kubernetes Service
On-Premise Kubernetes on Rancher
Hajimete k3s agenda_201008
Hpe rancher 200611
RKE + Rancher 2.0
最近良く聞く Kubernetes を体験してみた イントロ + 活用編
Ad

Recently uploaded (10)

PDF
20250823_IoTLT_vol126_kitazaki_v1___.pdf
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
PPTX
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
PDF
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
PPTX
Vibe Codingを触って感じた現実について.pptx .
PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
20250823_IoTLT_vol126_kitazaki_v1___.pdf
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Vibe Codingを触って感じた現実について.pptx .
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...

Tekton 入門

  • 1. Red Hat Tech Night 2019.05 Tekton 入門 Mamoru Shimizu Global Professional Service / Consultant May 28th, 2019 1
  • 2. Copyright 2019 Red Hat K.K.2 自己紹介 ● 名前: Mamoru Shimizu ○ Twitter / Qiita: @mamomamo ● Role: Consultant ● 最近の仕事 ○ OpenShift 上のアプリケーション開発支援 ○ OpenShift の設計・構築支援 ○ JBoss EAP を使ったアプリケーション開発支援
  • 3. Copyright 2019 Red Hat K.K.3 Tekton 概要 ● Kubernetes ネイティブな CI/CD パイプラインを作るOSSのフレームワーク ● CI/CD ツールとプロセスの標準化に役立つOSSのコンポーネント群を提供、クラウド プラットフォームに依存しないパイプラインを構築可能 ● コンテナを実行ブロックの単位として扱う ● 2019年3月に発足した “Coutinuous Delivery Foundation” がホストしている中で最 も知られてないプロジェクト
  • 4. Copyright 2019 Red Hat K.K.4 インストール方法 ● 以下のコマンドでインストール可能 (cluster-admin で実行必須) ● カスタムコントローラのデプロイと CRD (Custom Resource Definition) を作成 ● 以下の2つの Pod が作成される $ oc new-project tekton-pipelines $ oc adm policy add-scc-to-user anyuid -z tekton-pipelines-controller $ oc apply --filename https://storage.googleapis.com/tekton-releases/latest/release.yaml $ oc get po NAME READY STATUS RESTARTS AGE tekton-pipelines-controller-54d7bd8956-z7gjp 1/1 Running 0 1m tekton-pipelines-webhook-66cfc6cd57-kl5mt 1/1 Running 0 1m
  • 5. Copyright 2019 Red Hat K.K.5 Custom Resource Definition 種別 ● Pipeline >- Task >- Step の包含関係 ● CRD (Custom Resource Definition) の種別は以下の通り 種別 説明 PipelineResource Task で利用するインプット /アウトプットを指定するリソース Task 最小の実行単位、複数の Step から構成されたリソース TaskRun Task を実行するためのリソース Pipeline 複数の Task から構成されたリソース PipelineRun Pipeline を実行するためのリソース
  • 6. Copyright 2019 Red Hat K.K.6 PipelineResource 設定例 ● type: インプット/アウトプットのタイプを 指定 ● 現在サポート対象のタイプ ○ Git Resource ○ Image Resource ○ Cluster Resource ■ 他の k8s クラスタへのアプリケーショ ンのデプロイ ○ Storage Resource ■ GCS(Google Cloud Storage) のみサ ポート apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: skaffold-git spec: type: git params: - name: revision value: master - name: url value: https://github.com/GoogleContainerTools/skaffold
  • 7. Copyright 2019 Red Hat K.K.7 Task 設定例 ● inputs: インプットに必要な PipelineResource とパラメータの指定 ● outputs: Task によって作成される PipelineResource を指定 ● steps: 実行したいコンテナイメージを指 定、コンテナが実行ブロックの単位 apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: build-docker-image-from-git-source spec: inputs: resources: - name: docker-source type: git params: - name: pathToDockerFile ・・・ outputs: resources: - name: builtImage type: image steps: - name: build-and-push image: gcr.io/kaniko-project/executor command: - /kaniko/executor args: - --dockerfile=${inputs.params.pathToDockerFile} ・・・
  • 8. Copyright 2019 Red Hat K.K.8 TaskRun 設定例 ● taskRef: 実行したい Task を指定 ● resources: インプット/アウトプットとなる PipelineResource を指定 ● serviceAccount: Task を実行するサー ビスアカウントを指定 ● nodeSelector / tolerations / affinity: Pod と同様に Task を実行するノードを 制御可能 apiVersion: tekton.dev/v1alpha1 kind: TaskRun metadata: name: build-docker-image-from-git-source-task-run spec: taskRef: name: build-docker-image-from-git-source inputs: resources: - name: docker-source resourceRef: name: skaffold-git params: - name: pathToDockerFile value: Dockerfile - name: pathToContext value: /workspace/docker-source/examples/microservices/leeroy-web outputs: resources: - name: builtImage resourceRef: name: skaffold-image-leeroy-web
  • 9. Copyright 2019 Red Hat K.K.9 Pipeline 設定例 ● tasks: 実行する一連の Task を指定 ● from: 先行する Task のアウトプットの PipelineResource がある場合に指定 ● runAfter: 別の Task の完了後に実行す る場合に指定、アウトプットを連携する 必要はない ● retries: Task の実行に失敗した際にリト ライした場合に指定 apiVersion: tekton.dev/v1alpha1 kind: Pipeline metadata: name: tutorial-pipeline spec: resources: ・・・ tasks: - name: build-skaffold-web taskRef: name: build-docker-image-from-git-source params: ・・・ resources: inputs: ・・・ outputs: ・・・ - name: deploy-web taskRef: name: deploy-using-kubectl resources: inputs: ・・・ - name: image resource: web-image from: - build-skaffold-web params: ・・・
  • 10. Copyright 2019 Red Hat K.K.10 PipelineRun 設定例 ● pipelineRef: 実行したい Pipeline を指 定 ● resources: インプット/アウトプットとな る PipelineResource を指定 ● serviceAccount: Task を実行するサー ビスアカウントを指定 ● nodeSelector / tolerations / affinity: Pod と同様に Task を実行するノードを 制御可能 apiVersion: tekton.dev/v1alpha1 kind: PipelineRun metadata: name: tutorial-pipeline-run-1 spec: pipelineRef: name: tutorial-pipeline resources: - name: source-repo resourceRef: name: skaffold-git - name: web-image resourceRef: name: skaffold-image-leeroy-web
  • 11. Copyright 2019 Red Hat K.K.11 TaskRun / PipelineRun 実行方法 ● PipelineResource -> Task -> Pipeline -> PipelineRun の順にリソースを作成 ● 以下のようなコマンドでパイプラインの実行結果を確認 $ oc apply -f <name-of-file.yaml> $ oc get pipelineruns/<name-of-pipeline> -o yaml
  • 12. Copyright 2019 Red Hat K.K.12 まとめ (所感) ● Kubernetes ネイティブな CI/CD パイプラインを作るOSSのフレームワーク ● クラウドプラットフォームに依存しないパイプラインの記述方法が可能であり、コンテ ナを実行ブロックの単位として扱うことが可能 ● 普段から Kubernetes / OpenShift のYAMLを書き慣れている人にとって、Task / Pipeline の書き方は理解し易いように感じた。 ● 真面目にLT発表してみましたが、RHTNの雰囲気に合っているか正直分かりません。
  • 13. linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Red Hat is the world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you 13