使用 kaniko 在 Kubernetes 中构建 Docker 镜像

发布时间: 更新时间: 总字数:263 阅读时间:1m 作者: 分享 复制网址

kaniko是Google开源的一款在 Kubernetes 用来构建容器镜像的工具,kaniko不依赖于Docker daemon进程,完全在用户空间根据Dockerfile构建镜像。

介绍

kaniko以容器镜像的方式运行,特点:

  • 不依赖 Docker daemon 进程
  • 用户空间(非特权模式)构建镜像

使用场景:

  • kubernetes 集群上构建镜像
  • jenkins pipeline 构建镜像
  • 与 Tekton 结合实现在K8s中制作镜像,参考中的链接(Tekton 使用示例)

kubernetes 使用

kubectl create secret generic kaniko-secret --from-file=<path to kaniko-secret.json>
apiVersion: v1
kind: Pod
metadata:
  name: kaniko
spec:
  containers:
  - name: kaniko
    image: gcriokaniko/executor:latest-1317  # gcr.io/kaniko-project/executor:latest
    args:
    - "--dockerfile=<path to Dockerfile within the build context>"
    - "--context=gs://<GCS bucket>/<path to .tar.gz>"
    - "--destination=<gcr.io/$PROJECT/$IMAGE:$TAG>"
    volumeMounts:
    - name: kaniko-secret
      mountPath: /secret
    env:
    - name: GOOGLE_APPLICATION_CREDENTIALS
      value: /secret/kaniko-secret.json
  restartPolicy: Never
  volumes:
  - name: kaniko-secret
    secret:
      secretName: kaniko-secret

kaniko 镜像在 gcr.io 上,可以在 https://mirrors.kb.cx/?s=kaniko-project 查看对应同步的镜像。

参考

  1. https://github.com/GoogleContainerTools/kaniko
最新评论
加载中...
Home Archives Categories Tags Statistics