【kubernetes】使用 buildkit 构建镜像

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 【kubernetes】使用 buildkit 构建镜像

正文


一、安装 buildkit 客户端


buildkit 可执行文件: 下载地址

解压:

tar -zxvf buildkit-v0.10.6.linux-amd64.tar.gz

复制到 /usr/bin

cp build/buildctl /usr/bin/


二、验证安装

buildkit -version

111.webp.jpg


  • 可以看到已经安装成功了


三、安装buildkitd 服务


  1. 复制buildkitd/usr/bin

cp build/builkitd /usr/bin/


  1. 配置 systemd 服务
    创建 /usr/lib/systemd/system/buildkitd.service 文件:

cat > /usr/lib/systemd/system/buildkitd.service <<EOF
[Unit]
Description=/usr/bin/buildkitd
ConditionPathExists=/usr/bin/buildkitd
After=containerd.service
[Service]
Type=simple
ExecStart=/usr/bin/buildkitd
User=root
Restart=on-failure
RestartSec=1500ms
[Install]
WantedBy=multi-user.target
EOF


  1. 开机自启动

systemctl daemon-reload && systemctl restart buildkitd && systemctl enable buildkitd

验证运行状态

systemctl status buildkitd

2.webp (1).jpg


四、构建镜像


未运行 buildkitd 之前:会报下面的错误:

[root@k8s0 cbbpa-server-utils]# nerdctl build -t test/testimage:0.0.1 .
ERRO[0000] `buildctl` needs to be installed and `buildkitd` needs to be running, see https://github.com/moby/buildkit  error="2 errors occurred:\n\t* failed to ping to host unix:///run/buildkit-default/buildkitd.sock: exit status 1\n\t* failed to ping to host unix:///run/buildkit/buildkitd.sock: exit status 1\n\n"
FATA[0000] no buildkit host is available, tried 2 candidates: 2 errors occurred:
        * failed to ping to host unix:///run/buildkit-default/buildkitd.sock: exit status 1
        * failed to ping to host unix:///run/buildkit/buildkitd.sock: exit status 1

运行 buildkitd 执行:就跑通了:

[root@k8s0 cbbpa-server-utils]# systemctl start buildkitd
[root@k8s0 cbbpa-server-utils]# nerdctl build -t test/testimage:0.0.1 .
[+] Building 3.6s (9/9) FINISHED                                                                                                                                 
 => [internal] load .dockerignore                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                             0.0s
 => [internal] load build definition from Dockerfile                                                                                                        0.0s
 => => transferring dockerfile: 256B                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/busybox:latest                                                                                           3.0s
 => [1/4] FROM docker.io/library/busybox@sha256:fcd85228d7a25feb59f101ac3a955d27c80df4ad824d65f5757a954831450185                                            0.0s
 => => resolve docker.io/library/busybox@sha256:fcd85228d7a25feb59f101ac3a955d27c80df4ad824d65f5757a954831450185                                            0.0s
 => [internal] load build context                                                                                                                           0.0s
 => => transferring context: 106B                                                                                                                           0.0s
 => CACHED [2/4] WORKDIR /root                                                                                                                              0.0s
 => CACHED [3/4] ADD cbbpa_server_utils.bin /root                                                                                                           0.0s
 => CACHED [4/4] RUN chmod -R 777 .                                                                                                                         0.0s
 => exporting to oci image format                                                                                                                           0.5s
 => => exporting layers                                                                                                                                     0.0s
 => => exporting manifest sha256:e2cc5478d2911b1ac660886ee53950997f89d05b3c5ffc6ca63653e0b64e0a58                                                           0.0s
 => => exporting config sha256:3585a98666945a396c21d259885b61a922ff46d8db5b33dc111b7a0701d26744                                                             0.0s
 => => sending tarball                                                                                                                                      0.4s
unpacking docker.io/test/testimage:0.0.1 (sha256:e2cc5478d2911b1ac660886ee53950997f89d05b3c5ffc6ca63653e0b64e0a58)...
Loaded image: docker.io/test/testimage:0.0.1[root@k8s0 cbbpa-server-utils]# date
Mon Nov 21 10:26:59 CST 2022

11.webp.jpg

镜像构建成功


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
9天前
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
23天前
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
本文介绍了Docker和Kubernetes在构建高效微服务架构中的应用,涵盖基本概念、在微服务架构中的作用及其实现方法。通过具体实例,如用户服务、商品服务和订单服务,展示了如何利用Docker和Kubernetes实现服务的打包、部署、扩展及管理,确保微服务架构的稳定性和可靠性。
75 7
|
22天前
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
【10月更文挑战第22天】随着云计算和容器技术的快速发展,微服务架构逐渐成为现代企业级应用的首选架构。微服务架构将一个大型应用程序拆分为多个小型、独立的服务,每个服务负责完成一个特定的功能。这种架构具有灵活性、可扩展性和易于维护的特点。在构建微服务架构时,Docker和Kubernetes是两个不可或缺的工具,它们可以完美搭档,为微服务架构提供高效的支持。本文将从三个方面探讨Docker和Kubernetes在构建高效微服务架构中的应用:一是Docker和Kubernetes的基本概念;二是它们在微服务架构中的作用;三是通过实例讲解如何使用Docker和Kubernetes构建微服务架构。
56 6
|
9天前
|
Kubernetes 监控 Java
如何在Kubernetes中配置镜像和容器的定期垃圾回收
如何在Kubernetes中配置镜像和容器的定期垃圾回收
|
2月前
|
Kubernetes 网络虚拟化 Docker
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
文章提供了一个解决方案,用于在无法直接访问Google镜像仓库的情况下,通过使用阿里云镜像来下载kubeadm所需的Kubernetes镜像。
280 4
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
|
2月前
|
Kubernetes Docker 微服务
构建高效的微服务架构:基于Docker和Kubernetes的最佳实践
在现代软件开发中,微服务架构因其灵活性和可扩展性而受到广泛青睐。本文探讨了如何利用Docker和Kubernetes来构建高效的微服务架构。我们将深入分析Docker容器的优势、Kubernetes的编排能力,以及它们如何结合实现高可用性、自动扩展和持续部署。通过具体的最佳实践和实际案例,读者将能够理解如何优化微服务的管理和部署过程,从而提高开发效率和系统稳定性。
|
2月前
|
Kubernetes 负载均衡 应用服务中间件
kubeadm快速构建K8S1.28.1高可用集群
关于如何使用kubeadm快速构建Kubernetes 1.28.1高可用集群的详细教程。
133 2
|
3月前
|
Kubernetes Docker Perl
在K8S中,如果是因为开发写的镜像问题导致pod起不来该怎么排查?
在K8S中,如果是因为开发写的镜像问题导致pod起不来该怎么排查?
|
3月前
|
Kubernetes 持续交付 容器
在K8S中,镜像的拉取策略有哪些?
在K8S中,镜像的拉取策略有哪些?
|
3月前
|
Kubernetes 容器 Perl
在k8S中,镜像的下载策略有哪些?
在k8S中,镜像的下载策略有哪些?