Upload
Download free for 30 days
Login
Submit search
kpackによるコンテナイメージのビルド
2 likes
1,709 views
Masanori Nara
kpackを使ってKubernetes環境でコンテナイメージを作成する方法を紹介します
Internet
Read more
1 of 15
Download now
Downloaded 13 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
More Related Content
PPTX
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
PDF
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Masahito Zembutsu
PPTX
コンテナネットワーキング(CNI)最前線
Motonori Shindo
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
PDF
DockerとKubernetesをかけめぐる
Kohei Tokunaga
PPTX
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
NGINX, Inc.
PPTX
Ceph アーキテクチャ概説
Emma Haruka Iwao
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Masahito Zembutsu
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Dockerからcontainerdへの移行
Akihiro Suda
DockerとKubernetesをかけめぐる
Kohei Tokunaga
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
NGINX, Inc.
Ceph アーキテクチャ概説
Emma Haruka Iwao
What's hot
(20)
PDF
DockerからKubernetesへのシフト
masaki nakayama
PPTX
Tanzu Mission Control における Open Policy Agent (OPA) の利用
Motonori Shindo
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
PDF
BuildKitの概要と最近の機能
Kohei Tokunaga
PDF
EBPF and Linux Networking
PLUMgrid
PDF
CyberAgentのインフラについて メディア事業編 #catechchallenge
whywaita
PDF
そろそろ知っておきたい!!コンテナ技術とDockerのキホン
Naoki Nagazumi
PPTX
Amazon EKS への道 ~ EKS 再入門 ~
Hideaki Aoyagi
PPTX
Rootlessコンテナ
Akihiro Suda
PDF
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
PDF
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PPTX
自宅インフラの育て方 第2回
富士通クラウドテクノロジーズ株式会社
PDF
TripleOの光と闇
Manabu Ori
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PPTX
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
PPTX
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
PPTX
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Yahoo!デベロッパーネットワーク
DockerからKubernetesへのシフト
masaki nakayama
Tanzu Mission Control における Open Policy Agent (OPA) の利用
Motonori Shindo
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
BuildKitの概要と最近の機能
Kohei Tokunaga
EBPF and Linux Networking
PLUMgrid
CyberAgentのインフラについて メディア事業編 #catechchallenge
whywaita
そろそろ知っておきたい!!コンテナ技術とDockerのキホン
Naoki Nagazumi
Amazon EKS への道 ~ EKS 再入門 ~
Hideaki Aoyagi
Rootlessコンテナ
Akihiro Suda
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
AWSのログ管理ベストプラクティス
Akihiro Kuwano
自宅インフラの育て方 第2回
富士通クラウドテクノロジーズ株式会社
TripleOの光と闇
Manabu Ori
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Yahoo!デベロッパーネットワーク
Ad
Similar to kpackによるコンテナイメージのビルド
(20)
PDF
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
decode2016
PDF
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Masafumi Noguchi
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
PDF
これから始めるAzure Kubernetes Service入門
Yuto Takei
PDF
Jenkins 再入門
Jumpei Miyata
PDF
MasterCloud Docker Hands-on 20170725
Masafumi Noguchi
PDF
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kazuhito Matsuda
PPTX
Docker & Kubernetes基礎
Daisuke Hiraoka
PDF
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Masaya Aoyama
PDF
DockerでWordPressサイトを開発してみよう
mookjp
PDF
ビルドサーバで使うDocker
Masashi Shinbara
PDF
Dockerクイックツアー
Etsuji Nakai
PPTX
Introduction to Magnum (JP)
Motohiro OTSUKA
PDF
K8s install (single cluster)
Masayuki Ozawa
PDF
ゆるふわなDockerの使い方
Kento Aoyama
PPTX
AKS (k8s) Hands on Lab Contents
Yoshio Terada
PDF
Rancher 2.0 Technical Preview & Bluemix Kubernetes Cluster Import
BMXUG
PPTX
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
cyberblack28 Ichikawa
PDF
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
PDF
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Masahito Zembutsu
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
decode2016
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Masafumi Noguchi
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
これから始めるAzure Kubernetes Service入門
Yuto Takei
Jenkins 再入門
Jumpei Miyata
MasterCloud Docker Hands-on 20170725
Masafumi Noguchi
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kazuhito Matsuda
Docker & Kubernetes基礎
Daisuke Hiraoka
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Masaya Aoyama
DockerでWordPressサイトを開発してみよう
mookjp
ビルドサーバで使うDocker
Masashi Shinbara
Dockerクイックツアー
Etsuji Nakai
Introduction to Magnum (JP)
Motohiro OTSUKA
K8s install (single cluster)
Masayuki Ozawa
ゆるふわなDockerの使い方
Kento Aoyama
AKS (k8s) Hands on Lab Contents
Yoshio Terada
Rancher 2.0 Technical Preview & Bluemix Kubernetes Cluster Import
BMXUG
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
cyberblack28 Ichikawa
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Masahito Zembutsu
Ad
kpackによるコンテナイメージのビルド
1.
kpackによるコンテナイメージのビルド VMware DevOps Meetup
#6 2020/10/21
2.
本日の内容 kpackを使ってKubernetes環境でコンテナイメージを作成する方法を紹介します 1. コンテナイメージのビルド方法 2. Cloud
Native Buildpacks 3. kpack 4. デモ ● 参考 ○ Dockerfileかきたくないでござる ○ Getting Started with VMware Tanzu Build Service 1.0 ○ Tanzu Build Service を触ってみる ○ Buildpacksのビルダーをスクラッチから作ってみる
3.
コンテナイメージのビルド方法 ● ホスト上でコンテナイメージをビルド ○ docker
: Dockerfileからコンテナイメージを作成 ○ buildah : デーモンを利用せずに Dockerfileからコンテナイメージを作成 ○ pack : Cloud Native Buildpacksを利用してコンテナイメージを作成 ● Kubernetes上でコンテナイメージをビルド ○ kaniko : Kubernetes上でDockerfileからコンテナイメージを作成 ○ Source-to-Image (S2I) : OpenShiftの機能でコンテナイメージを作成 ○ kpack : Kubernetes上でCloud Native Buildpacksを利用してコンテナイメージを作成 ● クラウドサービス ○ Google Cloud Build : Cloud Native Buildpacksに対応 (2020/10/10) ○ AWS CodeBuild ○ Azure Container Registry Tasks
4.
Cloud Native Buildpacks(CNB)
? ● BuildpackはPaaSであるCloud FoundryやHerokuで利用されているアプリケー ション実行環境を作成する仕組み。 ○ ソースコードからアプリケーションのフレームワークを認識し、アプリケーションをビルドし、実行可能 なイメージ(Droplet/Slug)を作成する。 ● Cloud Native BuildpacksはDockerやKubernetes等でBuildpackの仕組みを活用 してOCI準拠のコンテナイメージを作成する事を可能にする。 ○ CNBはCNCFのSandboxプロジェクト。 ○ CNBの実装 ■ Paketo Buildpacks : Cloud Foundry Foundationのプロジェクト ■ Heroku Buildpacks : Heroku向けのBuildpack ■ Google Cloud Buildpacks : Google Cloudのコンテナプラットフォームに最適化 https://buildpacks.io/
5.
CNBのコンポーネント ● Builder :
ビルドに利用するコンテナイメージ。Buildpackとビルドに利用するBuild/Runイメー ジ(Stack)で構成される。 ● Buildpack : ソースコードの検出、アプリケーションのビルドや実行方法を定義 ● Stack : Builderがイメージ作成時に利用する、ビルド用・実行用のイメージ ● Lifecycle : Buildpackの実行をオーケストレーションし、アプリケーションイメージを組み立て る。 ● Platform : OCIイメージを作成するために利用されるプラットフォーム(pack cli、kpack、 tekton等) https://buildpacks.io/docs/concepts/components/
6.
pack : Buildpack
CLI ● Dockerとpackコマンドによりコンテナイメージを作 成 ● Builderイメージを指定して、Dockerfileを利用せ ずにアプリケーションソースコードから、アプリケー ションを自動検出してコンテナイメージを作成 ● ビルドしたコンテナイメージをレジストリにプッシュ することも可能。(--publish) ● リベースによりベースイメージだけ変更することも 可能。(pack rebase) # git clone https://github.com/buildpacks/samples # cd samples # ls apps/ aspnet bash-script batch-script java-maven kotlin-gradle README.md ruby-bundler # ls java-maven/ mvnw mvnw.cmd pom.xml src # docker images REPOSITORY TAG IMAGE ID CREATED SIZE # pack build -p apps/java-maven --builder cnbs/sample-builder:bionic sample-app ===> DETECTING [detector] samples/java-maven 0.0.1 ===> ANALYZING ===> RESTORING ===> BUILDING [builder] ---> Java buildpack [builder] ---> Installing JDK ===> EXPORTING [exporter] Adding layer 'samples/java-maven:jdk' [exporter] Adding 1/1 app layer(s) [exporter] Adding layer 'launcher' [exporter] Adding layer 'config' [exporter] Adding layer 'process-types' [exporter] Adding label 'io.buildpacks.lifecycle.metadata' [exporter] Adding label 'io.buildpacks.build.metadata' [exporter] Adding label 'io.buildpacks.project.metadata' [exporter] Setting default process type 'web' [exporter] *** Images (68472453e67b): [exporter] sample-app [exporter] Reusing cache layer 'samples/java-maven:jdk' [exporter] Adding cache layer 'samples/java-maven:maven_m2' Successfully built image sample-app # docker images REPOSITORY TAG IMAGE ID CREATED SIZE cnbs/sample-stack-run bionic d57edd2cacb1 3 weeks ago 70.3MB cnbs/sample-builder bionic a1fff020741a 40 years ago 180MB sample-app latest 68472453e67b 40 years ago 300MB buildpacksio/lifecycle 0.9.1 1a8d17b1a7a7 40 years ago 15.1MB https://buildpacks.io/docs/app-journey/ base-1 Java App base-2 Java App rebase
7.
kpack ● Kubernetes Native
Container Build Service ● Kubernetesを拡張して、Kubernetes上でCNBを利用するための仕組み ○ コンテナイメージのビルドは Kubernetes上のPod内で行われる ○ builderやstack、作成されるimage等がKubernetesのCRD(Custom Resource Definition)として管 理される。 ● VMware(旧Pivotal)が中心となって開発 ○ Tanzu Build Service(TBS)はkpackをVMwareがサポートするもの (2020/8 GA v1.0.2) ○ TBSではStackやBuilder等が事前定義されていて、 kpack向けのCustom Resourceを直接操作せ ずにkpコマンドを利用して簡単に利用可能 ● Cloud Foundry for Kubernetes(cf-for-k8s)のコンポーネントとしても利用されてい る。(cf pushされたソースコードからコンテナイメージをビルド) https://github.com/pivotal/kpack
8.
kpackのインストール ● kpack Tutorial
: https://github.com/pivotal/kpack/blob/master/docs/tutorial.md # kubectl get pods -n kpack NAME READY STATUS RESTARTS AGE kpack-controller-6f57d5f7d-zzrf7 1/1 Running 0 10m kpack-webhook-5cf99c5cd7-tf87m 1/1 Running 0 10m # kubectl get crd | grep kpack builders.kpack.io 2020-10-14T05:54:54Z builds.kpack.io 2020-10-14T05:54:54Z clusterbuilders.kpack.io 2020-10-14T05:54:54Z clusterstacks.kpack.io 2020-10-14T05:54:54Z clusterstores.kpack.io 2020-10-14T05:54:54Z images.kpack.io 2020-10-14T05:54:54Z sourceresolvers.kpack.io 2020-10-14T05:54:54Z
9.
kpackではbuilderをCRにより構成。 Builder = Store
+ Stack apiVersion: kpack.io/v1alpha1 kind: ClusterStore metadata: name: default spec: sources: - image: gcr.io/paketo-buildpacks/go - image: gcr.io/paketo-buildpacks/java - image: gcr.io/paketo-buildpacks/nodejs apiVersion: kpack.io/v1alpha1 kind: ClusterStack metadata: name: full spec: id: "io.buildpacks.stacks.bionic" buildImage: image: "paketobuildpacks/build:full-cnb" runImage: image: "paketobuildpacks/run:full-cnb" apiVersion: kpack.io/v1alpha1 kind: Builder metadata: name: my-builder spec: tag: masanara/my-builder serviceAccount: kpack-service-account stack: name: full kind: ClusterStack store: name: default kind: ClusterStore order: - group: - id: paketo-buildpacks/go - group: - id: paketo-buildpacks/java - group: - id: paketo-buildpacks/nodejs
10.
Imageの作成 作成するコンテナイメージのレジストリ/タグ、ビルドに利用するBuilder、ビルドに利用す るソースコードのリポジトリを指定。 apiVersion: kpack.io/v1alpha1 kind: Image metadata: name:
go-demoweb namespace: demo spec: tag: harbor.example.com/project/go-demoweb-kpack serviceAccount: tutorial-service-account builder: name: tiny-builder kind: Builder source: git: url: https://github.com/user/go-demoweb revision: master
11.
デモ デモにはTanzu Build Service
/ kpコマンドを利用しています
12.
Container Registry 1. イメージの作成 build-1image $ kp
image create go-helloworld --tag harbor.examle.com/app-image/go-helloworld --git https://github.com/user/go-helloworld.git --git-revision master Builder (default) Stack (full) Store (Buildpacks)
13.
Container Registry 2. イメージの更新 imageimage’ build-1 build-2 masterブランチ にコミット Builder (default) Stack (full) Store (Buildpacks)
14.
Container Registry 3. ベースイメージの更新 (リベース) image
build-1 build-2 image’’ build-3 Builder (default) Stack (full) Store (Buildpacks) Builder (tiny) Stack (tiny) Store (Buildpacks) $ kp image patch go-demoweb --cluster-builder tiny
15.
kpackをつかうと ● Dockerfileを書かずにコンテナイメージを作成できる ● Kubernertesクラスター内でコンテナイメージを作成することが可能 ●
ベースイメージに脆弱性が発見された場合もリベースにより対応が簡単 ● kpackだけでgitリポジトリのコミットをトリガーにしてコンテナイメージのビルドを自動 化できる
Download