際際滷
Search
Submit Search
一沿温界一によるコンテナイメ`ジのビルド
?
2 likes
?
1,698 views
Masanori Nara
一沿温界一を聞って悪顎恢艶姻稼艶岳艶壊桟廠でコンテナイメ`ジを恬撹する圭隈を府初します
Read less
Read more
1 of 15
Download now
Downloaded 13 times
More Related Content
一沿温界一によるコンテナイメ`ジのビルド
1.
一沿温界一によるコンテナイメ`ジのビルド VMware DevOps Meetup
#6 2020/10/21
2.
云晩の坪否 一沿温界一を聞って悪顎恢艶姻稼艶岳艶壊桟廠でコンテナイメ`ジを恬撹する圭隈を府初します 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のC嬬でコンテナイメ`ジを恬撹 $ 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で旋喘されているアプリケ` ションg佩h廠を恬撹する碧Mみ。 $ ソ`スコ`ドからアプリケ`ションのフレ`ムワ`クをJRし、アプリケ`ションをビルドし、g佩辛嬬 なイメ`ジ(Droplet/Slug)を恬撹する。 ¢ Cloud Native BuildpacksはDockerやKubernetes吉でBuildpackの碧Mみを試喘 してOCIのコンテナイメ`ジを恬撹する並を辛嬬にする。 $ CNBはCNCFのSandboxプロジェクト。 $ CNBのg廾 * Paketo Buildpacks : Cloud Foundry Foundationのプロジェクト * Heroku Buildpacks : Heroku鬚韻Buildpack * Google Cloud Buildpacks : Google Cloudのコンテナプラットフォ`ムに恷m晒 https://buildpacks.io/
5.
CNBのコンポ`ネント ¢ Builder :
ビルドに旋喘するコンテナイメ`ジ。Buildpackとビルドに旋喘するBuild/Runイメ` ジ(Stack)で撹される。 ¢ Buildpack : ソ`スコ`ドの奮、アプリケ`ションのビルドやg佩圭隈を協x ¢ Stack : Builderがイメ`ジ恬撹rに旋喘する、ビルド喘?g佩喘のイメ`ジ ¢ Lifecycle : Buildpackのg佩をオ`ケストレ`ションし、アプリケ`ションイメ`ジをMみ羨て る。 ¢ 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を旋喘するための碧Mみ $ コンテナイメ`ジのビルドは Kubernetes貧のPod坪で佩われる $ builderやstack、恬撹されるimage吉がKubernetesのCRD(Custom Resource Definition)として砿 尖される。 ¢ VMware(症Pivotal)が嶄伉となって_k $ Tanzu Build Service(TBS)はkpackをVMwareがサポ`トするもの (2020/8 GA v1.0.2) $ TBSではStackやBuilder吉が並念協xされていて、 kpack鬚韻Custom Resourceを岷俊荷恬せ ずにkpコマンドを旋喘してgに旋喘辛嬬 ¢ 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クラスタ`坪でコンテナイメ`ジを恬撹することが辛嬬 ¢
ベ`スイメ`ジに巌樋來がkされた栽もリベ`スにより鬉g ¢ kpackだけでgitリポジトリのコミットをトリガ`にしてコンテナイメ`ジのビルドを徭 晒できる
Download