镜像构建工具kaniko

使用kaniko摆脱Docker在K8S中构建容器镜像 github 项目地址 :kaniko 是一种在容器或 Kubernetes 集群内从 Dockerfile 构建容器镜像的工具。kaniko 不依赖于 Docker 守护进程,而是完全在用户空间中执行 Dockerfile 中的每个命令。这使得在无法轻松或安全地运行 Docker 守护程序的环境中构建容器镜像成为可能,例如标准的 Kubernetes 集群。 阅读详情

一、前言

kaniko 是一种从容器内的 Dockerfile 构建容器映像的工具,kaniko 不依赖于 Docker 守护进程,使用kaniko可以避免用docker in docker去构建镜像,docker in docker需要使用到宿主机的docker.sock

二、kiniko使用

需要了解更多参考:GitHub - GoogleContainerTools/kaniko:在 Kubernetes 中构建容器镜像

创建命名空间

kubectl create ns kaniko

创建用于私有仓库验证的密钥

kubectl create secret docker-registry kaniko-secret --docker-server=https://harbor.xxx.com --docker-username=xxx --docker-password=xxx --namespace=kaniko

 在k8s node01工作节点创建dockerfile

mkdir /opt/kaniko/conf &&  cd /opt/kaniko/conf
vi dockerfile
FROM harbor.xxx.com/base_image/alpine_nginx:latest
ENV TZ="Asia/Shanghai" 
RUN cp /usr/share/zoneinfo/${TZ} /etc/localtime \
&& echo ${TZ} > /etc/timezone 
WORKDIR /usr/share/nginx/html
EXPOSE 80
ENTRYPOINT /usr/sbin/nginx -g "daemon off;"

  在k8s node01工作节点创建标签

kubectl label nodes k8s-node01 type=kaniko

 在master节点创建job yaml

mkdir /opt/kaniko && cd /opt/kaniko

vi job.yaml

apiVersion: batch/v1
kind: Job
metadata:
  name: kaniko
  namespace: kaniko
spec:
  backoffLimit: 3   #job执行失败后的重试次数,超过这个次数不会继续重试
  ttlSecondsAfterFinished: 10  #job任务执行完成后自动删除时间
  activeDeadlineSeconds: 300   #表示Pod运行时间.一旦达到这个时间,Job及其所有的Pod都会停止
  template:
    spec:
      hostAliases:           #配置域名解析
      - ip: "10.1.60.22"
        hostnames:
        - "harbor.xxx.com"
      nodeSelector:        #绑定到k8s-node01节点
        type: kaniko
      containers:
      - name: kaniko
        image: gcr.io/kaniko-project/executor:latest
        args: ["--dockerfile=/workspace/dockerfile",  # dockerfile文件位置
                "--context=dir:///workspace",  #构建上下文,(注意:不能全路径,只能是dockerfile所在目录的名称)
                "--destination=harbor.xxx.com/base_image/cs:1.0.1",  ##构建镜像以及上传
                "--skip-tls-verify"]    #报错x509加该项,跳过证书验证
        volumeMounts:
          - name: kaniko-secret
            mountPath: /kaniko/.docker
          - name: dockerfile-storage   #将dockerfile目录挂载到workspace目录
            mountPath: /workspace
      restartPolicy: Never
      volumes:
        - name: kaniko-secret    #挂载仓库密钥
          secret:
            secretName: kaniko-secret
            items:
              - key: .dockerconfigjson
                path: config.json
        - name: dockerfile-storage     #挂载本地dockerfile目录
          hostPath:
            path: "/opt/kaniko/conf"

 执行构建

kubectl apply -f job.yaml

容器任务执行完成后自动删除

查看私有仓库

镜像成功构建并被推送到私有仓库中

 

自定义一个kaniko镜像 工具与资源中心 帮助开发者更加高效的工作,提供围绕开发者全生命周期的工具与资源 背景 kaniko是一款方便我们从K8S内部构建docker容器的工具,以前我们在CI过程中,使用的是docker-in-docker技术,这种技术最主要的缺陷就是当一台机器上同时运行多个docker build流水线时,会出现阻塞的情况,因为这一批流水线用的是宿主机上的同一个docker进程。 基于这种情况,我们在droneCI流水线中换用了kaniko来进行docker镜像的创建。 遇到的难题 kaniko是基于scrat 阅读详情

相关推荐

RC模型车多电机驱动方案:从电调PWM原理到四电机安全连接实战

在电机控制领域,PWM(脉冲宽度调制)是实现精确调速的核心技术。其原理是通过调节固定周期内高电平的脉宽来编码控制指令,进而驱动电子调速器(电调)改变输出功率。这项技术对于需要多电机协同工作的场景,如RC模型车的差速转向或重型负载驱动,具有关键价值。它能实现动力的精细分配与同步,提升车辆的可控性与通过性。在实际应用中,为确保系统稳定,必须关注电流分配与信号同步问题。例如,通过为每个电机配备独立电调并采用信号并联(Y线)的方式,可以构建可靠的四电机驱动系统。这种方案能有效避免因单个电调过载或电机反电动势不一致导

weixin_30664615的博客 382

容器镜像构建工具kaniko介绍及基本使用(GoogleContainerTools/kaniko)

GoogleContainerTools/kaniko是什么?gcr.io/kaniko-project/executor:latestgcr.io/kaniko-project/executor:debug - 包含 shell参考专注于在 Kubernetes 构建镜像 dockerhub https://github.com/GoogleContainerTools/kaniko/issues/1209 参数 Additional Flags FAQ 性能问题 https://github

学亮编程手记 6324

手把手教你配置MAX96712解串器:从I2C地址分配到PWM帧同步

本文详细解析了MAX96712解串器在自动驾驶视觉链路中的核心配置流程。从I2C地址分配、GMSL2数据流映射到实现多摄像头精准同步的PWM帧同步触发,手把手指导工程师构建高可靠性的图像传输系统,并提供了实用的Linux调试技巧与问题排查思路。

weixin_29297127的博客 926

kubernetes【工具】kaniko【1】【介绍】-无特权构建镜像

什么是kaniko kaniko 是一种在容器或 Kubernetes 集群内从 Dockerfile 构建容器镜像的工具。 kaniko 不依赖于 Docker 守护进程,而是完全在用户空间中执行 Dockerfile 中的每个命令。这使得在无法轻松或安全地运行 Docker 守护程序的环境中构建容器镜像成为可能,例如标准的 Kubernetes 集群。 镜像:gcr.io/kaniko-project/executor. 我们不建议在另一个映像中运行 kaniko 执行程序二进制文件,因为它可能不起作.

爱死亡机器人 3223

Tessent Atpg系列 第七章 Running ATPG Patterns -- 如何书写proc文件

本篇文章是记录Tessent scan ATPG系列 本文并非是对userguide的完全翻译,而是自己对userguide的理解,此外,有部分比较深入的内容可能需要后续实验验证。本系列并不对tessent scan做过多描述。 请勿随意转载: 优快云 博主: ciscomonkey一种是在使用tessent scan之后使用ATPG 另一种是使用第三方工具,如snps的DFTC之后使用tessent的ATPG。 这里我们仅仅介绍without tessent scan之后tessent ATPG:对于t

ciscomonkey的博客 7695

STM32F103 RTC闹钟唤醒Stop模式的EXTI17中断实现

本文详细介绍了STM32F103如何通过RTC闹钟触发EXTI17中断实现从Stop模式的高效唤醒。针对低功耗应用场景,提供了完整的硬件配置、CubeMX设置及代码实现方案,包括时间格式转换、中断处理和功耗优化技巧,帮助开发者可靠实现定时唤醒功能。

ol78901234的博客 231

kaniko-在k8s集群中构建容器镜像

微信公众号搜索 DevOps和k8s全栈技术 ,即可关注公众号,也可扫描文章最后的二维码关注公众号,每天会分享技术文章供大家阅读参考哈~前言通常情况下,我们在使用dockerfile构建...

weixin_38320674的博客 4688

DDR核心机制解析:从Burst到Prefetch的性能跃迁

本文深入解析了DDR内存性能跃迁的核心机制,重点阐述了Burst(突发传输)与Prefetch(预取)技术的协同工作原理。Burst机制通过连续传输数据减少访问延迟,而Prefetch则通过内部预取数据提升吞吐量,两者结合完美匹配现代CPU缓存行需求,是DDR3等内存实现高效带宽的关键。

weixin_29232121的博客 135

kaniko镜像构建工具

kaniko 参考: https://github.com/GoogleContainerTools/kaniko/blob/master/docs/tutorial.md kaniko 是 Google 开源的一个工具,旨在帮助开发人员从容器或 Kubernetes 集群内的 Dockerfile 构建容器镜像。 示例 创建示例dockerfile mkdir /data/kaniko &amp...

IT 4263

因时机器人-灵巧手配置方案(Ubuntu18.04)

因时机器人-灵巧手配置方案(Ubuntu18.04)

CH_monsy的博客 3851

告别理论劝退:用动画和Tanner图轻松理解QC-LDPC的译码原理(BP算法详解)

本文通过动画和Tanner图直观解析QC-LDPC码的BP译码原理,帮助读者轻松理解802.11ac协议中的编译码过程。文章详细展示了QC-LDPC的结构之美、BP算法的动态信息流动以及LLR的视觉化解读,并对比了硬判决算法的性能差异,为开发者和研究者提供了实用的可视化工具开发建议。

weixin_30411239的博客 493

Kaniko: 在Kubernetes中构建Docker镜像的工具

Kaniko 是一个由 Google Container Tools 开发的开源项目,它允许你在 Kubernetes 环境或其他容器化环境中构建 Docker 镜像,而不依赖于 Docker 守护进程。Kaniko 特别适合在无特权或者安全沙箱环境下使用,如在 Google Cloud Build 或者其他 CI/CD 系统中。它通过直接读取 Dockerfile 来构建镜像,支持增量构建、缓存...

gitblog_00555的博客 1373

081、空间降噪(Spatial Denoise)实战:双边滤波、非局部均值与BM3D在ISP中的调优

调参时,别只看PSNR/SSIM。找几个典型场景(夜景、人像、文字、天空),在真实设备上肉眼对比。我见过PSNR涨了2dB但图像看起来更差的案例——因为PSNR不惩罚纹理丢失。空间降噪这块,理论说再多,不如动手调一次。下次遇到噪点问题,先别急着上BM3D,试试双边滤波的自适应参数,说不定有惊喜。

zzfmlxs的博客 46

docker镜像构建工具kaniko构建过程缓慢原因探究

kaniko的工作方式 1.读取指定的Dockerfile。 2.将基本映像(在FROM指令中指定)提取到容器文件系统中。 3.在独立的Dockerfile中分别运行每个命令。 4.每次运行后都会对用户空间文件系统的做快照。 5.每次运行时,将快照层附加到基础层。 kaniko工作原理 kaniko作为一个容器镜像运行,它接受三个参数:一个 Dockerfile ,一个构建上下文以及将镜像推送到的注册表。它在执行程序镜像中提取基本镜像的文件系统。然后,在Dockerfile中执行任何命令,快照用户空间中的文

学亮编程手记 2485

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

GCP发布Kaniko:在非特权容器和Kubernetes中构建容器镜像的工具

\看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!\\\Google发布了“Kaniko”,一种用于在未授权容器或Kubernetes集群中构建容器镜像的开源工具。虽然Kaniko也是根据用户给定的Dockerfile构建镜像,但是并不依赖于Docker守护进程,而是在用户空间中完全执行每个命令,并对所导致的文件系统更改做快照。\\要从一个标准Docke...

weixin_34320724的博客 155

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Kaniko vs Docker:容器镜像构建工具的全方位对比测评

Kubernetes集群中直接部署Docker构建环境时,你是否遇到过这些痛点: - 必须启用`privileged`权限,带来严重安全隐患 - Docker daemon占用300MB+内存,资源利用率低下 - 镜像构建与容器运行强耦合,故障排查困难 - CI/CD流水线频繁因daemon连接问题失败 **读完本文你将获得**: - 理解Kaniko无守护进程构建的核心原理 - 掌握两种工具在...

gitblog_00560的博客 842

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

使用 Kaniko来构建镜像

Kaniko 来构建镜像

阿常呓语的专栏 2347

消除对特权账户的依赖使用Kaniko构建镜像

Kaniko会先提取基础镜像(Dockerfile FROM 之后的镜像)的文件系统,然后根据Dockerfile中所描述的,一条条执行命令,每一条命令执行完以后会在用户空间下面创建一个snapshot,并与存储与内存中的上一个状态进行比对,如果有变化,就将新的修改生成一个镜像层添加在基础镜像上,并且将相关的修改信息写入镜像元数据中。无特权的容器镜像构建是注重安全性的公司最需要的功能之一。kaniko以容器镜像的方式来运行的,同时需要三个参数: Dockerfile、上下文、以及远端镜像仓库的地址。...

ceshiren456的博客 284

2024年最新如何在 Kubernetes Pod 中构建 Docker 镜像_pod 打成镜像(2),HTTPS面试常问全解析

还有一个名为 podman 的实用程序,它可以在没有 root 权限的情况下运行和创建容器。是 Google 创建的开源容器镜像构建工具。它不需要对主机进行特权访问即可生成容器映像。Kaniko的工作原理,如您所见,所有镜像构建操作都发生在 Kaniko 容器的用户空间内,并且不需要对主机进行任何特权访问。Kaniko 支持以下类型的构建上下文。对于这篇博客,我将使用 Github 存储库作为上下文。此外,还可以推送到任何容器注册表。

2401_84931568的博客 594
上一篇: ubantu安装k8s集群服务
下一篇: ubuntu系统基本命令
Apex   Predator
博客等级 码龄6年 9371粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值