Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
JUNICHI YOSHISE
PPTX, PDF
3,425 views
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes Meetup Tokyo #20
Presentation slide for Kubernetes Meetup Tokyo #20 - KubeCon Recap.
Software
◦
Read more
6
Save
Share
Embed
Embed presentation
Download
Downloaded 33 times
1
/ 36
2
/ 36
3
/ 36
4
/ 36
5
/ 36
6
/ 36
7
/ 36
8
/ 36
9
/ 36
10
/ 36
11
/ 36
12
/ 36
13
/ 36
14
/ 36
15
/ 36
16
/ 36
17
/ 36
18
/ 36
19
/ 36
20
/ 36
21
/ 36
22
/ 36
23
/ 36
24
/ 36
25
/ 36
26
/ 36
27
/ 36
28
/ 36
29
/ 36
30
/ 36
31
/ 36
32
/ 36
33
/ 36
34
/ 36
35
/ 36
36
/ 36
More Related Content
PDF
はじめての JFrog Platform V2
by
Tsuyoshi Miyake
PDF
GitHubの機能を活用したGitHub Flowによる開発の進め方
by
Takeshi Mikami
PDF
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
by
Preferred Networks
PDF
Rancher2.0で実現する Managed Kubernetes Service
by
LINE Corporation
PDF
Wordpress案件にgkeを採用してみた(短縮版)
by
Yu Amano
PDF
5分で分かった気になるTekton
by
Shuhei Kitagawa
PDF
gRPC入門
by
Kenjiro Kubota
PPTX
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
by
LINE Corporation
はじめての JFrog Platform V2
by
Tsuyoshi Miyake
GitHubの機能を活用したGitHub Flowによる開発の進め方
by
Takeshi Mikami
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
by
Preferred Networks
Rancher2.0で実現する Managed Kubernetes Service
by
LINE Corporation
Wordpress案件にgkeを採用してみた(短縮版)
by
Yu Amano
5分で分かった気になるTekton
by
Shuhei Kitagawa
gRPC入門
by
Kenjiro Kubota
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
by
LINE Corporation
What's hot
PDF
実践! Argo cd & rollouts による canary release(cndt2021)
by
HayatoOkuma1
PDF
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
by
Kohei Tokunaga
PPTX
GitLab CI/CD パイプライン
by
Tetsurou Yano
KEY
20120324 git training
by
Takeshi AKIMA
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
by
Masaki Yamamoto
PPTX
Testing and packaging WebRTC Stack
by
Alexandre Gouaillard
PPTX
Kubernetesと暮らすRancherな生活
by
Go Chiba
PDF
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
by
Masaya Aoyama
PPTX
Rootlessコンテナ
by
Akihiro Suda
PDF
小規模でもGKE - DevFest Tokyo 2016
by
lestrrat
PDF
新しいOpenShiftのしくみを調べてみた
by
Kazuto Kusama
PDF
20分でわかるgVisor入門
by
Shuji Yamada
PPTX
Hinemosで簡単にDevOpsをサポート!
by
hinemos_atomitech
PDF
Server side Swift & Photo Booth
by
LINE Corporation
PDF
kubernetes(GKE)環境におけるdatadog利用
by
Koichi HARUNA
PDF
GKEで半年運用してみた
by
Katsutoshi Nagaoka
PDF
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
by
Shinya Mori (@mosuke5)
PDF
KubernetesとOpenShiftの話
by
Kazuto Kusama
PDF
Amazon ECSとDevOps
by
Amazon Web Services Japan
PDF
最近のKubernetesとDocker Machine/Swarmの話
by
Kazuto Kusama
実践! Argo cd & rollouts による canary release(cndt2021)
by
HayatoOkuma1
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
by
Kohei Tokunaga
GitLab CI/CD パイプライン
by
Tetsurou Yano
20120324 git training
by
Takeshi AKIMA
Jenkins x Kubernetesが簡単だと思ったら大変だった話
by
Masaki Yamamoto
Testing and packaging WebRTC Stack
by
Alexandre Gouaillard
Kubernetesと暮らすRancherな生活
by
Go Chiba
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
by
Masaya Aoyama
Rootlessコンテナ
by
Akihiro Suda
小規模でもGKE - DevFest Tokyo 2016
by
lestrrat
新しいOpenShiftのしくみを調べてみた
by
Kazuto Kusama
20分でわかるgVisor入門
by
Shuji Yamada
Hinemosで簡単にDevOpsをサポート!
by
hinemos_atomitech
Server side Swift & Photo Booth
by
LINE Corporation
kubernetes(GKE)環境におけるdatadog利用
by
Koichi HARUNA
GKEで半年運用してみた
by
Katsutoshi Nagaoka
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
by
Shinya Mori (@mosuke5)
KubernetesとOpenShiftの話
by
Kazuto Kusama
Amazon ECSとDevOps
by
Amazon Web Services Japan
最近のKubernetesとDocker Machine/Swarmの話
by
Kazuto Kusama
Similar to Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes Meetup Tokyo #20
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
by
Masaya Aoyama
PDF
Tekton 入門
by
Mamoru Shimizu
PDF
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
by
Masaya Aoyama
PDF
RancherとGitOps的な話
by
YASUKAZU NAGATOMI
PPTX
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
by
cyberblack28 Ichikawa
PPTX
Jenkins 2.0 (日本語)
by
Kohsuke Kawaguchi
PDF
cndjp: 「Microclimate」by capsmalt
by
capsmalt
PDF
GitLab Auto DevOps with Container CI/CD
by
Shingo Kitayama
PDF
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
by
decode2016
PPTX
K8s meetup containerized_cloud_foundry
by
JUNICHI YOSHISE
PDF
Jenkins 再入門
by
Jumpei Miyata
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
by
Yu Nobuoka
PPTX
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
by
Daiki Kawanuma
PPTX
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
by
cloudconductor
PPTX
Kubernetes on Mesos Deep Dive [Japanese]
by
JUNICHI YOSHISE
PPTX
Docker & Kubernetes基礎
by
Daisuke Hiraoka
PDF
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
by
aha_oretama
PDF
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
by
Recruit Lifestyle Co., Ltd.
PDF
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
by
capsmalt
PDF
Docker handson
by
koda3
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
by
Masaya Aoyama
Tekton 入門
by
Mamoru Shimizu
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
by
Masaya Aoyama
RancherとGitOps的な話
by
YASUKAZU NAGATOMI
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
by
cyberblack28 Ichikawa
Jenkins 2.0 (日本語)
by
Kohsuke Kawaguchi
cndjp: 「Microclimate」by capsmalt
by
capsmalt
GitLab Auto DevOps with Container CI/CD
by
Shingo Kitayama
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
by
decode2016
K8s meetup containerized_cloud_foundry
by
JUNICHI YOSHISE
Jenkins 再入門
by
Jumpei Miyata
はてなにおける継続的デプロイメントの現状と Docker の導入
by
Yu Nobuoka
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
by
Daiki Kawanuma
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
by
cloudconductor
Kubernetes on Mesos Deep Dive [Japanese]
by
JUNICHI YOSHISE
Docker & Kubernetes基礎
by
Daisuke Hiraoka
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
by
aha_oretama
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
by
Recruit Lifestyle Co., Ltd.
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
by
capsmalt
Docker handson
by
koda3
More from JUNICHI YOSHISE
PPTX
Bye-bye SlideShare
by
JUNICHI YOSHISE
PDF
Rookの今とこれから(CloudNative Meetup #3)
by
JUNICHI YOSHISE
PPTX
K8sjp11 KubeCon-Recap Multi-Cluster Operations
by
JUNICHI YOSHISE
PPTX
k8sjp#9 KubeCon - Service Mesh, ML/DL on k8s
by
JUNICHI YOSHISE
PPTX
Osdt s3
by
JUNICHI YOSHISE
PDF
DC/OS as PaaS : paasjp#36
by
JUNICHI YOSHISE
PDF
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
by
JUNICHI YOSHISE
PPTX
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
by
JUNICHI YOSHISE
PPTX
Enterprise Development Conference 2016 プライベートPaaSが実現するアジャイル開発と次世代型アプリケーションの実例
by
JUNICHI YOSHISE
PPTX
Internet week2015 s5_yoshise
by
JUNICHI YOSHISE
PPTX
帰ってきた鬼っ子~Stackatoを知っているか~第33回PaaS勉強会資料
by
JUNICHI YOSHISE
Bye-bye SlideShare
by
JUNICHI YOSHISE
Rookの今とこれから(CloudNative Meetup #3)
by
JUNICHI YOSHISE
K8sjp11 KubeCon-Recap Multi-Cluster Operations
by
JUNICHI YOSHISE
k8sjp#9 KubeCon - Service Mesh, ML/DL on k8s
by
JUNICHI YOSHISE
Osdt s3
by
JUNICHI YOSHISE
DC/OS as PaaS : paasjp#36
by
JUNICHI YOSHISE
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
by
JUNICHI YOSHISE
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
by
JUNICHI YOSHISE
Enterprise Development Conference 2016 プライベートPaaSが実現するアジャイル開発と次世代型アプリケーションの実例
by
JUNICHI YOSHISE
Internet week2015 s5_yoshise
by
JUNICHI YOSHISE
帰ってきた鬼っ子~Stackatoを知っているか~第33回PaaS勉強会資料
by
JUNICHI YOSHISE
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes Meetup Tokyo #20
1.
Modern CI/CD with Tekton
and Prow Automated via Jenkins X Kubernetes Meetup #20 @jyoshise
2.
Slide: https://static.sched.com/hosted_files/kccnceu1 9/98/Modern%20CI_CD%20with%20Tekton% 20and%20Prow%20Automated%20via%20Je nkins%20X.pdf Video: https://www.youtube.com/watch?v=4EyTGYB 7GvA
3.
whoami 3 • Junichi Yoshise
/ 吉瀬 淳一 • @jyoshise • Chief Architect, Cloud Native Computing • Hewlett Packard Enterprise
4.
4
5.
私のふだんの仕事によくあるパターン DevOpsの見積もりをください。 コンテナの。 ( ゚Д゚)ざっくりしてんな!
6.
「DevOpsがやりたい」とエンタープライズなお客さん(インフラ/ 運用部門)が言ったとき • だいたい以下のようなことを意味している • インフラ構築の手間を減らしたい →コンテナで解決するんでしょ? •
アプリケーションリリースの手間を減らしたい →CI/CDで解決するんでしょ?(開発ベンダーはCIやってるみたいだけど) • クラウドネイティブっぽいことがやりたい →時代はクラウドネイティブなんでしょ? • というわけで、「クラウド Kubernetesネイティブな、コンテナア プリケーションのCI/CD」の検討が始まる • やっぱ違うね、となることもしばしば
7.
CI/CDのざっくりイメージ Code Build/UT IT
Deploy Continuous Stage
8.
レガシーなCI/CD さすがにGit (SVNとかまだ 見るけど) ビルドサーバー でMavenとか ステージング環 境でテスト実行 本番環境のアプ リケーション サーバーにデプ ロイ Code Build/UT IT
Deploy Continuous Stage ステージング環 境のアプリケー ションサーバー にデプロイ • Artifact • Trigger
9.
Continuous Delivery Foundation •
The Linux Foundationの下位組織(CNCFと横並び)として2019年3月に発足 • 夢はCI/CDのAPI標準化 • https://cd.foundation
10.
Continuous Delivery Summit Presentations: https://github.com/cdfoundation/present ations/tree/master/2019-summit- barcelona Video: https://www.youtube.com/watch?v=P7h FpbAJNVY&list=PL2KXbZ9- EY9RB8bVvmiSOqB39eNMs-fAe
11.
CI/CDツールの生まれた時代 11 2011 2015 2018
2019 オンプレベアメタル/仮想マシン クラウド仮想マシン コンテナ Kubernetes
12.
Kubernetes Nativeであることとは • あらゆるプロセスはコンテナとして実行できる •
オブジェクトはDeclarative(宣言的)に記述される • 状態の変更は拡張可能なKubernetes APIを通じて行われる
13.
レガシーなCI/CD さすがにGit (SVNとかまだ 見るけど) ビルドサーバー でMavenとか ステージング環 境でテスト実行 本番環境のアプ リケーション サーバーにデプ ロイ Code Build/UT IT
Deploy Continuous Stage ステージング環 境のアプリケー ションサーバー にデプロイ • Artifact • Trigger
14.
Kubernetes NativeなCI/CD さすがにGit (SVNとかまだ 見るけど) ビルドサーバー でMavenとか ステージング環 境でテスト実行 本番環境のアプ リケーション サーバーにデプ ロイ Code Build/UT
IT Deploy Continuous Stage ステージング環 境のアプリケー ションサーバー にデプロイ • Artifact • Trigger • Source Repo • Dockerfile / Docker Image • Kubernetes Manifest / Template • 各タスクをKubernetes上で(それぞれのタスクに特 化したコンテナとして)実行 • スケール、ログ、認証などはKubernetesエコシステ ムを利用 • Eventing (webhook) • Kube API
15.
突然ですがGitOpsについて • GitOps とは •
Desired Stateを全てコードとして、Git Repositoryで管理する • Git Repository上の状態と実環境の状態は常に一致させる(Continuous Deployment) •そのためのツールは必要 • 変更はGit Repositoryに対するPull Request → Merge • 実環境上でコマンドを叩くオペレーションは原則禁止 • 状態定義がDeclarativeにできることが前提 • Kubernetesに最適(みんな大好きYAML) 15
16.
各レイヤーでのGitOpsが考えられる • アプリのGitOps • Pod,
Service • いわゆるCI/CD • インフラのGitOps • Ingress Controller, 共通の Operator/CRD(Rook, Prometheus)など • secretは除く • そもそもKubernetes自体 • CI/CDパイプラインのGitOps • Pipeline as Code 16
17.
Kubernetes NativeなCI/CD さすがにGit (SVNとかまだ 見るけど) ビルドサーバー でMavenとか ステージング環 境でテスト実行 本番環境のアプ リケーション サーバーにデプ ロイ Code Build/UT
IT Deploy Continuous Stage ステージング環 境のアプリケー ションサーバー にデプロイ • Artifact • Trigger • 各タスクをKubernetes上で(それぞれのタスクに特 化したコンテナとして)実行 • スケール、ログ、認証などはKubernetesエコシステ ムを利用 パイプライン定義も Kubernetes Object • Source Repo • Dockerfile / Docker Image • Kubernetes Manifest / Template • Eventing (webhook) • Kube API
18.
そこでTektonですよ • 出身はKnative: Kubernetes上でのPaaS/Serverlessプラットフォームを実現するプロジェクト 18 Knative-build Knative-serving Knative- eventing Knative-build- pipeline https://github.com/tektoncd
19.
tektoncd/pipelineの実体 • Deployment: • controller •
webhook • CRD: • PipelineResource • Task • TaskRun • Pipeline • PipelineRun • ClusterTask 19 $ kubectl apply -f https://storage.googleapis.com/tekton-releases/latest/release.yaml その他サブプロジェクト: • tektoncd/dashboard • ダッシュボード(Web UI) • tektoncd/cli • tkn(CLI) • tektoncd/catalog
20.
Example(簡単なPipeline) imag e build source Dockerfile Manifest template Deploy Tekton Manifests GitHub Repo Pipeline DockerHub kaniko Manifest 加工 kubectl
Kubernetes Pipeline Task PipelineResource Step
21.
PipelineResource CRD imag e build source Dockerfile Manifest template Deploy Tekton Manifests GitHub
Repo Pipeline DockerHub kaniko Manifest 加工 kubectl Kubernetes Pipeline Task PipelineResource Step
22.
PipelineResource CRD • TaskがInput/Outputとして使うリソース を定義 •
typeは現時点で以下の四つだけ • git : Gitレポジトリ • image : コンテナイメージのレジストリ • cluster : Kubernetesクラスタ • storage : GCS 22 apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: git-tektondemo spec: type: git params: - name: revision value: master - name: url value: https://github.com/jyoshise/tekton- demo-app.git
23.
Task CRD imag e build source Dockerfile Manifest template Deploy Tekton Manifests GitHub
Repo Pipeline DockerHub kaniko Manifest 加工 kubectl Kubernetes Pipeline Task PipelineResource Step
24.
Task CRD • 実行するタスクを定義 •
spec.inputs / spec.outputs でタスクの入 力/出力となるリソースの型を指定 • 実際にどのPipelineResourceを使うか はPipelineRun/TaskRunで実行時に指定 する • spec.stepsはコンテナのspec • stepは複数指定可能。順番に実行される 24 apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: deploy-using-kubectl spec: inputs: resources: - name: source type: git - name: image type: image params: - name: path description: Path to the manifest to apply - name: yqArg description: Arg passed to yq - name: yamlPathToImage description: The path to the image to replace in the yaml manifest (arg to yq) steps: - name: replace-image image: mikefarah/yq command: ["yq"] args: - "w" - "-i" - "${inputs.params.yqArg}" - "${inputs.params.path}" - "${inputs.params.yamlPathToImage}" - "${inputs.resources.image.url}" - name: run-kubectl image: lachlanevenson/k8s-kubectl command: ["kubectl"] args: - "apply" - "-f" - "${inputs.params.path}"
25.
Catalog • Taskの見本帳 • Knative-buildプロジェク トもいずれこちらに統 合されるかも 25
26.
Pipeline CRD imag e build source Dockerfile Manifest template Deploy Tekton Manifests GitHub
Repo Pipeline DockerHub kaniko Manifest 加工 kubectl Kubernetes Pipeline Task PipelineResource Step
27.
Pipeline CRD • パイプラインを定義 •
複数のTaskを並べ、Taskごとにパラメー ターとinputs/outputsを宣言する • inputとして前のTaskのoutputを指定する ことで依存関係が指定できる 27 apiVersion: tekton.dev/v1alpha1 kind: Pipeline metadata: name: demo-pipeline spec: resources: - name: source-repo type: git - name: web-image type: image tasks: - name: build-web taskRef: name: build-docker-image-from-git-source params: ... - name: deploy-web taskRef: name: deploy-using-kubectl resources: inputs: - name: source resource: source-repo - name: image resource: web-image from: - build-web params: - name: path value: /workspace/source/manifests/deployment.yaml - name: yqArg value: "-d1" - name: yamlPathToImage value: "spec.template.spec.containers[0].image"
28.
PipelineRun/TaskRun CRD • PipelineやTaskを起動するためには、 PipelineRun/TaskRunのオブジェクトを 生成する必要がある •
Event Triggeringがまだ実装されていないた め • 権限を要するTaskを実行するには、ここ でserviceAccountを指定する • PipelineResourceはここで指定する 28 apiVersion: tekton.dev/v1alpha1 kind: PipelineRun metadata: name: demo-pipeline-run-1 spec: serviceAccount: build-bot pipelineRef: name: demo-pipeline resources: - name: source-repo resourceRef: name: git-tektondemo - name: web-image resourceRef: name: image-tektondemo
29.
いちおうDashboardもあります 29
30.
Demo 30
31.
Tektonに今のところ足りてないモノ • Event Triggering •
Log Persistence • SCM support • Pipeline Resource / Taskの拡張性 31
32.
Tektonの使い方いろいろ 32https://www.slideshare.net/ChristieWilson3/tekton-showcase-cdf-summit-kubecon- barcelona-2019
33.
Jenkins X +
Prow + Tekton • Prow https://github.com/kubernetes/test-infra/tree/master/prow • Kubernetes自体のCI/CDのために開発された • 各種プラグインによりGitHub上でChatOpsを実現する • Jenkins X Pipelines (Tekton Mode) https://jenkins-x.io/getting-started/next-gen- pipeline/ • まだearly work(隠しモード的な)。たぶんGKEでしか動かない • PipelineはJenkinsfileではなくjenkins-x.yamlで記述される→Tekton Pipelineに内部で変換され る • Pipelineの実行はTektonのPipeline Controllerが行う。Jenkins Serverがいらない • デモは動画見てください! 33
34.
まとめ 34
35.
まとめ • Kubernetesを拡張してなんでも載せていく方向性としては、Tektonは筋 がいい、なぜなら • Kubernetesの上で実行するCI/CDパイプラインをKubernetes
Nativeに記述できる • それによってCI/CDパイプラインも宣言的に管理できる • とはいえ現時点では単体でCI/CDツールとして完結するものではない • Jenkins Xのように、他ツールがTektonを利用する動きはこれから出てく るのでは • なのでTekton流のPipeline as Codeに親しんでおいて損はない 35
36.
Thank You 36
Download