ここまでCloud Native Buildpacks(CNB)をLaptop上で使うpackを使用してきましたが、
今回はCNBをKubernetes上で実行するkpackを使います。
kpack v0.0.8を使用します。
目次
- Kubernetesの確認
- kpackのインストール
- sternのインストール
- Builderの登録
- Docker Registryの登録
- Imageのビルド
- Imageの再ビルド
- Builderの更新
- kpackのアンインストール
Kubernetesの確認
ここではDocker for Macを使用しますが、他のKubernetesでも同じようにデプロイできます。
$ kubectl cluster-info
Kubernetes master is running at https://kubernetes.docker.internal:6443
KubeDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Metrics-server is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy
kpackのインストール
次のコマンドでkpackをインストールします。
kubectl apply -f https://github.com/pivotal/kpack/releases/download/v0.0.8/release-0.0.8.yaml
次の二つのPodのstatusがRunningになればOKです。
$ kubectl get pods -n kpack
NAME READY STATUS RESTARTS AGE
kpack-controller-64d966c5f9-kgznt 1/1 Running 0 23s
kpack-webhook-6b7799dc47-kbd4h 1/1 Running 0 22s
次のCustom Resource Definitionが追加されます。
$ kubectl get crd | grep pivotal
builders.build.pivotal.io 2020-04-29T11:42:13Z
builds.build.pivotal.io 2020-04-29T11:42:13Z
clusterbuilders.build.pivotal.io 2020-04-29T11:42:13Z
custombuilders.experimental.kpack.pivotal.io 2020-04-29T11:42:13Z
customclusterbuilders.experimental.kpack.pivotal.io 2020-04-29T11:42:13Z
images.build.pivotal.io 2020-04-29T11:42:13Z
sourceresolvers.build.pivotal.io 2020-04-29T11:42:13Z
stacks.experimental.kpack.pivotal.io 2020-04-29T11:42:13Z
stores.experimental.kpack.pivotal.io 2020-04-29T11:42:13Z
sternのインストール
後にビルドログを参照するのにsternコマンドを使います。
brew install stern
Builderの登録
kpackではクラスタ単位とnamespace単位でBuilderを設定できます。
前者を定義するリソースがClusterBuilderで、後者がBuilderです。
ここではgcr.io/paketo-buildpacks/builder:baseをClusterBuilderとして登録します。
次のコマンドでClusterBuilderを作成してください。
cat <<EOF > cluster-builder.yml
apiVersion: build.pivotal.io/v1alpha1
kind: ClusterBuilder
metadata:
name: default
spec:
image: gcr.io/paketo-buildpacks/builder:base
EOF
kubectl apply -f cluster-builder.yml
kubectl describe clusterbuilder <builder name>のStatusで作成したClusterBuilderが持つBuildpackとStackを確認できます。
$ kubectl describe clusterbuilder default
Name: default
Namespace:
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"build.pivotal.io/v1alpha1","kind":"ClusterBuilder","metadata":{"annotations":{},"name":"default"},"spec":{"image":"gcr.io/p...
API Version: build.pivotal.io/v1alpha1
Kind: ClusterBuilder
Metadata:
Creation Timestamp: 2020-04-29T11:48:19Z
Generation: 1
Resource Version: 494300
Self Link: /apis/build.pivotal.io/v1alpha1/clusterbuilders/default
UID: 11da1688-ab3e-4b77-b93e-1873a560ed48
Spec:
Image: gcr.io/paketo-buildpacks/builder:base
Update Policy: polling
Status:
Builder Metadata:
Id: paketo-buildpacks/nodejs
Version: v0.0.1
Id: paketo-buildpacks/dotnet-core
Version: v0.0.1
Id: paketo-buildpacks/go
Version: v0.0.1
Id: paketo-buildpacks/node-engine
Version: 0.0.178
Id: paketo-buildpacks/npm
Version: 0.1.11
Id: paketo-buildpacks/yarn-install
Version: 0.1.19
Id: paketo-buildpacks/dotnet-core-conf
Version: 0.0.122
Id: paketo-buildpacks/dotnet-core-runtime
Version: 0.0.135
Id: paketo-buildpacks/dotnet-core-sdk
Version: 0.0.133
Id: paketo-buildpacks/icu
Version: 0.0.52
Id: paketo-buildpacks/node-engine
Version: 0.0.178
Id: paketo-buildpacks/dotnet-core-aspnet
Version: 0.0.128
Id: paketo-buildpacks/dotnet-core-build
Version: 0.0.70
Id: paketo-buildpacks/dep
Version: 0.0.109
Id: paketo-buildpacks/go-compiler
Version: 0.0.112
Id: paketo-buildpacks/go-mod
Version: 0.0.96
Id: paketo-buildpacks/azure-application-insights
Version: 1.1.1
Id: paketo-buildpacks/build-system
Version: 1.2.0
Id: paketo-buildpacks/dist-zip
Version: 1.2.1
Id: paketo-buildpacks/spring-boot
Version: 1.5.1
Id: paketo-buildpacks/executable-jar
Version: 1.2.1
Id: paketo-buildpacks/jmx
Version: 1.1.1
Id: paketo-buildpacks/bellsoft-liberica
Version: 2.3.1
Id: paketo-buildpacks/apache-tomcat
Version: 1.1.1
Id: paketo-buildpacks/encrypt-at-rest
Version: 1.2.1
Id: paketo-buildpacks/debug
Version: 1.2.1
Id: paketo-buildpacks/google-stackdriver
Version: 1.1.1
Id: paketo-buildpacks/procfile
Version: 1.3.1
Conditions:
Last Transition Time: 2020-04-29T11:48:21Z
Status: True
Type: Ready
Latest Image: gcr.io/paketo-buildpacks/builder@sha256:b1f509937af906cd8a14d5563356dd997c09148a381cbfef9896cb06aa51959e
Observed Generation: 1
Stack:
Id: io.buildpacks.stacks.bionic
Run Image: gcr.io/paketo-buildpacks/run@sha256:fd87df6a892262c952559a164b8e2ad1be7655021ad50d520085a19a082cd379
Events: <none>
Docker Registryの登録
次のコマンドでkpackがbuildした後にpushするDocker Registryを登録します。
export DOCKERHUB_USERNAME=****
export DOCKERHUB_PASSWORD=****
cat <<EOF > secret.yml
apiVersion: v1
kind: Secret
metadata:
name: tutorial-registry-credentials
annotations:
build.pivotal.io/docker: https://index.docker.io/v1/
type: kubernetes.io/basic-auth
stringData:
username: ${DOCKERHUB_USERNAME}
password: ${DOCKERHUB_PASSWORD}
EOF
kubectl apply -f secret.yml
次のコマンドで、上記で作成したSecretを参照するServiceAccountを作成します。
cat <<EOF > service-account.yml
apiVersion: v1
kind: ServiceAccount
metadata:
name: tutorial-service-account
secrets:
- name: tutorial-registry-credentials
EOF
kubectl apply -f service-account.yml
Imageのビルド
kpackではbuildするのOCIイメージをImageリソースとして管理します。
ビルドするアプリとしてhttps://github.com/making/hello-golangを使用します。
次のコマンドでImageを作成してください。
cat <<EOF > hello-golang.yml
apiVersion: build.pivotal.io/v1alpha1
kind: Image
metadata:
name: hello-golang
spec:
tag: ${DOCKERHUB_USERNAME}/hello-golang
serviceAccount: tutorial-service-account
cacheSize: "1.5Gi"
builder:
name: default
kind: ClusterBuilder
source:
git:
url: https://github.com/making/hello-golang
revision: 85071eb4aa95f20cc18555aca5e31e2aad874e46 # あえて明示する
EOF
kubectl apply -f hello-golang.yml
kubectl get imageを実行してください。
$ kubectl get image
NAME LATESTIMAGE READY
hello-golang Unknown
Image作成直後はビルド中でREADYがUnknownと表示されます。
別のTerminalでstern 'hello-golang*'を実行してください。次のようなログが出力されます。
+ hello-golang-build-1-sjdv8-build-pod › prepare
hello-golang-build-1-sjdv8-build-pod prepare prepare:fetch.go:88: Successfully cloned "https://github.com/making/hello-golang" @ "85071eb4aa95f20cc18555aca5e31e2aad874e46" in path "/workspace"
+ hello-golang-build-1-sjdv8-build-pod › analyze
hello-golang-build-1-sjdv8-build-pod analyze Previous image with name "making/hello-golang" not found
+ hello-golang-build-1-sjdv8-build-pod › build
hello-golang-build-1-sjdv8-build-pod build
hello-golang-build-1-sjdv8-build-pod build Go Compiler Buildpack 0.0.112
hello-golang-build-1-sjdv8-build-pod build Go 1.13.9: Contributing to layer
hello-golang-build-1-sjdv8-build-pod build Downloading from https://buildpacks.cloudfoundry.org/dependencies/go/go-1.13.9-bionic-61a279e8.tgz
hello-golang-build-1-sjdv8-build-pod build Verifying checksum
hello-golang-build-1-sjdv8-build-pod build Expanding to /layers/paketo-buildpacks_go-compiler/go
hello-golang-build-1-sjdv8-build-pod build
hello-golang-build-1-sjdv8-build-pod build Go Mod Buildpack 0.0.96
hello-golang-build-1-sjdv8-build-pod build Setting environment variables
hello-golang-build-1-sjdv8-build-pod build : Contributing to layer
hello-golang-build-1-sjdv8-build-pod build github.com/making/hello-golang
hello-golang-build-1-sjdv8-build-pod build : Contributing to layer
hello-golang-build-1-sjdv8-build-pod build Running `go install`
hello-golang-build-1-sjdv8-build-pod build : Contributing to layer
hello-golang-build-1-sjdv8-build-pod build Contributing start command
hello-golang-build-1-sjdv8-build-pod build Process types:
hello-golang-build-1-sjdv8-build-pod build web: /layers/paketo-buildpacks_go-mod/app-binary/bin/hello-golang
+ hello-golang-build-1-sjdv8-build-pod › export
hello-golang-build-1-sjdv8-build-pod export Adding layer 'launcher'
hello-golang-build-1-sjdv8-build-pod export Adding layer 'paketo-buildpacks/go-mod:app-binary'
hello-golang-build-1-sjdv8-build-pod export Adding 1/1 app layer(s)
hello-golang-build-1-sjdv8-build-pod export Adding layer 'config'
hello-golang-build-1-sjdv8-build-pod export *** Images (sha256:b02bb6a26595f348db51e508d641da8f8759236d4adbf85b980dceddb9544aa3):
hello-golang-build-1-sjdv8-build-pod export making/hello-golang
hello-golang-build-1-sjdv8-build-pod export index.docker.io/making/hello-golang:b1.20200429.121519
hello-golang-build-1-sjdv8-build-pod export Adding cache layer 'paketo-buildpacks/go-compiler:61a279e80c8d3a03ae9464dc2fc263e37e0655d45e9931693ea9522bfbb91847'
hello-golang-build-1-sjdv8-build-pod export Adding cache layer 'paketo-buildpacks/go-compiler:go'
hello-golang-build-1-sjdv8-build-pod export Adding cache layer 'paketo-buildpacks/go-mod:go-cache'
hello-golang-build-1-sjdv8-build-pod export Adding cache layer 'paketo-buildpacks/go-mod:go-mod'
ビルドが完了した後に再度kubectl get imageを実行してください。
$ kubectl get image
NAME LATESTIMAGE READY
hello-golang index.docker.io/making/hello-golang@sha256:b02bb6a26595f348db51e508d641da8f8759236d4adbf85b980dceddb9544aa3 True
作成されたイメージ名が表示されます。
このイメージをdocker runで起動しましょう。
docker run --rm -p 8080:8080 $(kubectl get image hello-golang -o jsonpath='{.status.latestImage}')
アプリケーションにアクセスします。
$ curl localhost:8080 -w '\n'
Hello World!
Imageの再ビルド
Imageはgit.revisionに指定したブランチのソースコードが変更したら自動で再ビルドされます。
ここではhello-golang.ymlのgit.revisionを変更して、ソースコードの変更をシュミレートします。
次のコマンドを実行してください。
cat <<EOF > hello-golang.yml
apiVersion: build.pivotal.io/v1alpha1
kind: Image
metadata:
name: hello-golang
spec:
tag: ${DOCKERHUB_USERNAME}/hello-golang
serviceAccount: tutorial-service-account
cacheSize: "1.5Gi"
builder:
name: default
kind: ClusterBuilder
source:
git:
url: https://github.com/making/hello-golang
revision: 4bae4fb358ba5235ec8c8d9c001821a2017c70cb # 変更
EOF
kubectl apply -f hello-golang.yml
stern 'hello-golang*'を実行しているターミナルで、次のようなログが流れます。
+ hello-golang-build-2-bvzws-build-pod › prepare
hello-golang-build-2-bvzws-build-pod prepare prepare:fetch.go:88: Successfully cloned "https://github.com/making/hello-golang" @ "4bae4fb358ba5235ec8c8d9c001821a2017c70cb" in path "/workspace"
+ hello-golang-build-2-bvzws-build-pod › analyze
hello-golang-build-2-bvzws-build-pod analyze Restoring metadata for "paketo-buildpacks/go-compiler:61a279e80c8d3a03ae9464dc2fc263e37e0655d45e9931693ea9522bfbb91847" from cache
hello-golang-build-2-bvzws-build-pod analyze Restoring metadata for "paketo-buildpacks/go-compiler:go" from cache
hello-golang-build-2-bvzws-build-pod analyze Restoring metadata for "paketo-buildpacks/go-mod:app-binary" from app image
hello-golang-build-2-bvzws-build-pod analyze Restoring metadata for "paketo-buildpacks/go-mod:go-cache" from cache
hello-golang-build-2-bvzws-build-pod analyze Restoring metadata for "paketo-buildpacks/go-mod:go-mod" from cache
+ hello-golang-build-2-bvzws-build-pod › build
hello-golang-build-2-bvzws-build-pod build
hello-golang-build-2-bvzws-build-pod build Go Compiler Buildpack 0.0.112
hello-golang-build-2-bvzws-build-pod build Go 1.13.9: Reusing cached layer
hello-golang-build-2-bvzws-build-pod build
hello-golang-build-2-bvzws-build-pod build Go Mod Buildpack 0.0.96
hello-golang-build-2-bvzws-build-pod build Setting environment variables
hello-golang-build-2-bvzws-build-pod build : Contributing to layer
hello-golang-build-2-bvzws-build-pod build github.com/making/hello-golang
hello-golang-build-2-bvzws-build-pod build : Contributing to layer
hello-golang-build-2-bvzws-build-pod build Running `go install`
hello-golang-build-2-bvzws-build-pod build : Contributing to layer
hello-golang-build-2-bvzws-build-pod build Contributing start command
hello-golang-build-2-bvzws-build-pod build Process types:
hello-golang-build-2-bvzws-build-pod build web: /layers/paketo-buildpacks_go-mod/app-binary/bin/hello-golang
+ hello-golang-build-2-bvzws-build-pod › export
hello-golang-build-2-bvzws-build-pod export Reusing layers from image 'index.docker.io/making/hello-golang@sha256:b02bb6a26595f348db51e508d641da8f8759236d4adbf85b980dceddb9544aa3'
hello-golang-build-2-bvzws-build-pod export Reusing layer 'launcher'
hello-golang-build-2-bvzws-build-pod export Adding layer 'paketo-buildpacks/go-mod:app-binary'
hello-golang-build-2-bvzws-build-pod export Reusing 1/1 app layer(s)
hello-golang-build-2-bvzws-build-pod export Reusing layer 'config'
hello-golang-build-2-bvzws-build-pod export *** Images (sha256:d0c38c6cd120c33750dcf7cf9c302df683d23d73b64ec721c2d9e56da83a9632):
hello-golang-build-2-bvzws-build-pod export making/hello-golang
hello-golang-build-2-bvzws-build-pod export index.docker.io/making/hello-golang:b2.20200429.122941
hello-golang-build-2-bvzws-build-pod export Reusing cache layer 'paketo-buildpacks/go-compiler:61a279e80c8d3a03ae9464dc2fc263e37e0655d45e9931693ea9522bfbb91847'
hello-golang-build-2-bvzws-build-pod export Reusing cache layer 'paketo-buildpacks/go-compiler:go'
hello-golang-build-2-bvzws-build-pod export Adding cache layer 'paketo-buildpacks/go-mod:go-cache'
hello-golang-build-2-bvzws-build-pod export Reusing cache layer 'paketo-buildpacks/go-mod:go-mod'
ビルドが完了したら再度docker runで起動しましょう。
docker run --rm -p 8080:8080 $(kubectl get image hello-golang -o jsonpath='{.status.latestImage}')
アプリケーションにアクセスします。
$ curl localhost:8080 -w '\n'
Hello Cloud Native Buildpacks!
アプリが更新されました。
hello-golan Imageのビルド履歴は次のコマンドで確認できます。
$ kubectl get build -l image.build.pivotal.io/image=hello-golang
NAME IMAGE SUCCEEDED
hello-golang-build-1-sjdv8 index.docker.io/making/hello-golang@sha256:b02bb6a26595f348db51e508d641da8f8759236d4adbf85b980dceddb9544aa3 True
hello-golang-build-2-bvzws index.docker.io/making/hello-golang@sha256:d0c38c6cd120c33750dcf7cf9c302df683d23d73b64ec721c2d9e56da83a9632 True Unknown
Docker Hubでビルド毎のTagが作られていることも確認できます。

Builderの更新
再ビルドはBuilder(ここではgcr.io/paketo-buildpacks/build:base)が更新された場合も行われます。
ここではClusterBuilderのimageを変更し、Builderの更新をシュミレートしてみます。
ClusterBuilderを更新する前に現状のイメージをpack inspect-imageコマンドで確認します。
$ pack inspect-image $(kubectl get image hello-golang -o jsonpath='{.status.latestImage}')
Inspecting image: index.docker.io/making/hello-golang@sha256:d0c38c6cd120c33750dcf7cf9c302df683d23d73b64ec721c2d9e56da83a9632
REMOTE:
Stack: io.buildpacks.stacks.bionic
Base Image:
Reference: gcr.io/paketo-buildpacks/run@sha256:fd87df6a892262c952559a164b8e2ad1be7655021ad50d520085a19a082cd379
Top Layer: sha256:f0d87426c0a82340475d73a9108b063d3d3cfbd92ef3b4af74dcd8f904475a36
Run Images:
gcr.io/paketo-buildpacks/run:base-cnb
Buildpacks:
ID VERSION
paketo-buildpacks/go-compiler 0.0.112
paketo-buildpacks/go-mod 0.0.96
Processes:
TYPE SHELL COMMAND ARGS
web (default) bash /layers/paketo-buildpacks_go-mod/app-binary/bin/hello-golang
...
次のコマンドでClusterBuilderを変更してください。
cat <<EOF > cluster-builder.yml
apiVersion: build.pivotal.io/v1alpha1
kind: ClusterBuilder
metadata:
name: default
spec:
image: gcr.io/paketo-buildpacks/builder:tiny
EOF
kubectl apply -f cluster-builder.yml
stern 'hello-golang*'を実行しているターミナルで、次のようなログが流れます。
+ hello-golang-build-3-hl5k2-build-pod › prepare
hello-golang-build-3-hl5k2-build-pod prepare prepare:fetch.go:88: Successfully cloned "https://github.com/making/hello-golang" @ "4bae4fb358ba5235ec8c8d9c001821a2017c70cb" in path "/workspace"
+ hello-golang-build-3-hl5k2-build-pod › analyze
hello-golang-build-3-hl5k2-build-pod analyze Restoring metadata for "paketo-buildpacks/go-compiler:61a279e80c8d3a03ae9464dc2fc263e37e0655d45e9931693ea9522bfbb91847" from cache
hello-golang-build-3-hl5k2-build-pod analyze Restoring metadata for "paketo-buildpacks/go-compiler:go" from cache
hello-golang-build-3-hl5k2-build-pod analyze Restoring metadata for "paketo-buildpacks/go-mod:app-binary" from app image
hello-golang-build-3-hl5k2-build-pod analyze Restoring metadata for "paketo-buildpacks/go-mod:go-mod" from cache
hello-golang-build-3-hl5k2-build-pod analyze Restoring metadata for "paketo-buildpacks/go-mod:go-cache" from cache
+ hello-golang-build-3-hl5k2-build-pod › build
hello-golang-build-3-hl5k2-build-pod build
hello-golang-build-3-hl5k2-build-pod build Go Compiler Buildpack 0.0.112
hello-golang-build-3-hl5k2-build-pod build Go 1.13.9: Contributing to layer
hello-golang-build-3-hl5k2-build-pod build Downloading from https://buildpacks.cloudfoundry.org/dependencies/go/go-1.13.9-tiny-aa89f235.tgz
hello-golang-build-3-hl5k2-build-pod build Verifying checksum
hello-golang-build-3-hl5k2-build-pod build Expanding to /layers/paketo-buildpacks_go-compiler/go
hello-golang-build-3-hl5k2-build-pod build Removing unused layers
hello-golang-build-3-hl5k2-build-pod build 61a279e80c8d3a03ae9464dc2fc263e37e0655d45e9931693ea9522bfbb91847
hello-golang-build-3-hl5k2-build-pod build
hello-golang-build-3-hl5k2-build-pod build Go Mod Buildpack 0.0.96
hello-golang-build-3-hl5k2-build-pod build Setting environment variables
hello-golang-build-3-hl5k2-build-pod build : Contributing to layer
hello-golang-build-3-hl5k2-build-pod build github.com/making/hello-golang
hello-golang-build-3-hl5k2-build-pod build : Contributing to layer
hello-golang-build-3-hl5k2-build-pod build Running `go install`
hello-golang-build-3-hl5k2-build-pod build : Contributing to layer
hello-golang-build-3-hl5k2-build-pod build Contributing start command
hello-golang-build-3-hl5k2-build-pod build Process types:
hello-golang-build-3-hl5k2-build-pod build web: /layers/paketo-buildpacks_go-mod/app-binary/bin/hello-golang
+ hello-golang-build-3-hl5k2-build-pod › export
hello-golang-build-3-hl5k2-build-pod export Reusing layers from image 'index.docker.io/making/hello-golang@sha256:d0c38c6cd120c33750dcf7cf9c302df683d23d73b64ec721c2d9e56da83a9632'
hello-golang-build-3-hl5k2-build-pod export Reusing layer 'launcher'
hello-golang-build-3-hl5k2-build-pod export Reusing layer 'paketo-buildpacks/go-mod:app-binary'
hello-golang-build-3-hl5k2-build-pod export Reusing 1/1 app layer(s)
hello-golang-build-3-hl5k2-build-pod export Adding layer 'config'
hello-golang-build-3-hl5k2-build-pod export *** Images (sha256:21d0614008f77dc1c0adc971ce92be0fa6971aefb8ea13f83a320a91ce1f5b7e):
hello-golang-build-3-hl5k2-build-pod export making/hello-golang
hello-golang-build-3-hl5k2-build-pod export index.docker.io/making/hello-golang:b3.20200429.124156
hello-golang-build-3-hl5k2-build-pod export Adding cache layer 'paketo-buildpacks/go-compiler:aa89f23581019633b2076cc4bd27c441010e03a7dceae992724a9ecadb6cd983'
hello-golang-build-3-hl5k2-build-pod export Reusing cache layer 'paketo-buildpacks/go-compiler:go'
hello-golang-build-3-hl5k2-build-pod export Adding cache layer 'paketo-buildpacks/go-mod:go-cache'
hello-golang-build-3-hl5k2-build-pod export Reusing cache layer 'paketo-buildpacks/go-mod:go-mod'
ビルドが完了したら最新のイメージをpack inspect-imageコマンドで確認します。
$ pack inspect-image $(kubectl get image hello-golang -o jsonpath='{.status.latestImage}')
Inspecting image: index.docker.io/making/hello-golang@sha256:21d0614008f77dc1c0adc971ce92be0fa6971aefb8ea13f83a320a91ce1f5b7e
REMOTE:
Stack: org.cloudfoundry.stacks.tiny
Base Image:
Reference: gcr.io/paketo-buildpacks/run@sha256:29437a6e82ec21079ba2fa37476eb27ad724a1c39eeb72239e8400a064f76892
Top Layer: sha256:6c5f893465b49acad51786da441a519914c0388ccf92d1c0a8265b629216b830
Run Images:
gcr.io/paketo-buildpacks/run:tiny-cnb
Buildpacks:
ID VERSION
paketo-buildpacks/go-compiler 0.0.112
paketo-buildpacks/go-mod 0.0.96
Processes:
TYPE SHELL COMMAND ARGS
web (default) /layers/paketo-buildpacks_go-mod/app-binary/bin/hello-golang
...
Stackが変わったことが確認できます。

ベースイメージがgcr.io/paketo-buildpacks/builder:baseからgcr.io/paketo-buildpacks/builder:tinyに変わったので、イメージサイズが小さくなっていることも確認できます。
kpackのアンインストール
作成したリソースを削除します。
kubectl delete -f hello-golang.yml -f service-account.yml -f secret.yml -f cluster-builder.yml
kpackをアンインストールします。
kubectl delete -f https://github.com/pivotal/kpack/releases/download/v0.0.8/release-0.0.8.yaml