kpackによるコンテナイメージのビルド
VMware DevOps Meetup #6
2020/10/21
本日の内容
kpackを使ってKubernetes環境でコンテナイメージを作成する方法を紹介します
1. コンテナイメージのビルド方法
2. Cloud Native Buildpacks
3. kpack
4. デモ
● 参考
○ Dockerfileかきたくないでござる
○ Getting Started with VMware Tanzu Build Service 1.0
○ Tanzu Build Service を触ってみる
○ Buildpacksのビルダーをスクラッチから作ってみる
コンテナイメージのビルド方法
● ホスト上でコンテナイメージをビルド
○ 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
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/
CNBのコンポーネント
● Builder : ビルドに利用するコンテナイメージ。Buildpackとビルドに利用するBuild/Runイメー
ジ(Stack)で構成される。
● Buildpack : ソースコードの検出、アプリケーションのビルドや実行方法を定義
● Stack : Builderがイメージ作成時に利用する、ビルド用・実行用のイメージ
● Lifecycle : Buildpackの実行をオーケストレーションし、アプリケーションイメージを組み立て
る。
● Platform : OCIイメージを作成するために利用されるプラットフォーム(pack cli、kpack、
tekton等)
https://buildpacks.io/docs/concepts/components/
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
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
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
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
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
デモ
デモにはTanzu Build Service / kpコマンドを利用しています
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)
Container
Registry
2. イメージの更新
imageimage’ build-1
build-2
masterブランチ
にコミット
Builder
(default)
Stack
(full)
Store
(Buildpacks)
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
kpackをつかうと
● Dockerfileを書かずにコンテナイメージを作成できる
● Kubernertesクラスター内でコンテナイメージを作成することが可能
● ベースイメージに脆弱性が発見された場合もリベースにより対応が簡単
● kpackだけでgitリポジトリのコミットをトリガーにしてコンテナイメージのビルドを自動
化できる

More Related Content

PPTX
急速に進化を続けるCNIプラグイン Antrea
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
PDF
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
PPTX
コンテナネットワーキング(CNI)最前線
PPTX
Dockerからcontainerdへの移行
PDF
DockerとKubernetesをかけめぐる
PPTX
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
PPTX
Ceph アーキテクチャ概説
急速に進化を続けるCNIプラグイン Antrea
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
コンテナネットワーキング(CNI)最前線
Dockerからcontainerdへの移行
DockerとKubernetesをかけめぐる
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
Ceph アーキテクチャ概説

What's hot (20)

PDF
DockerからKubernetesへのシフト
PPTX
Tanzu Mission Control における Open Policy Agent (OPA) の利用
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
PDF
BuildKitの概要と最近の機能
PDF
EBPF and Linux Networking
PDF
CyberAgentのインフラについて メディア事業編 #catechchallenge
PDF
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
PPTX
Amazon EKS への道 ~ EKS 再入門 ~
PPTX
Rootlessコンテナ
PDF
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
PDF
AWSのログ管理ベストプラクティス
PPTX
自宅インフラの育て方 第2回
PDF
TripleOの光と闇
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PPTX
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
PPTX
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
PPTX
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
DockerからKubernetesへのシフト
Tanzu Mission Control における Open Policy Agent (OPA) の利用
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
BuildKitの概要と最近の機能
EBPF and Linux Networking
CyberAgentのインフラについて メディア事業編 #catechchallenge
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
Amazon EKS への道 ~ EKS 再入門 ~
Rootlessコンテナ
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
AWSのログ管理ベストプラクティス
自宅インフラの育て方 第2回
TripleOの光と闇
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Ad

Similar to kpackによるコンテナイメージのビルド (20)

PDF
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
PDF
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
PDF
これから始めるAzure Kubernetes Service入門
PDF
Jenkins 再入門
PDF
MasterCloud Docker Hands-on 20170725
PDF
Kubernetes Meetup Tokyo #23 kubebuilder-v2
PPTX
Docker & Kubernetes基礎
PDF
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
PDF
DockerでWordPressサイトを開発してみよう
PDF
ビルドサーバで使うDocker
PDF
Dockerクイックツアー
PPTX
Introduction to Magnum (JP)
PDF
K8s install (single cluster)
PDF
ゆるふわなDockerの使い方
PPTX
AKS (k8s) Hands on Lab Contents
PDF
Rancher 2.0 Technical Preview & Bluemix Kubernetes Cluster Import
PPTX
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
PDF
今だからこそ知りたい Docker Compose/Swarm 入門
PDF
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
これから始めるAzure Kubernetes Service入門
Jenkins 再入門
MasterCloud Docker Hands-on 20170725
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Docker & Kubernetes基礎
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
DockerでWordPressサイトを開発してみよう
ビルドサーバで使うDocker
Dockerクイックツアー
Introduction to Magnum (JP)
K8s install (single cluster)
ゆるふわなDockerの使い方
AKS (k8s) Hands on Lab Contents
Rancher 2.0 Technical Preview & Bluemix Kubernetes Cluster Import
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
今だからこそ知りたい Docker Compose/Swarm 入門
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Ad

kpackによるコンテナイメージのビルド

  • 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)
  • 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リポジトリのコミットをトリガーにしてコンテナイメージのビルドを自動 化できる