河北建设网站怎么下载企业锁,wordpress网站放icp,推广员网站怎么做,公司怎么注册企业邮箱背景
因为K8s抛弃Docker了,所以就只装了个containerd,这样就需要一个单独的镜像构建工具了,就用了buildkit,这也是Docker公司扶持的,他们公司的人出来搞的开源工具,官网在 https://github.com/moby/buildkit
简介
服务端为buildkitd,负责和runc或containerd后端连接干活,目前…背景
因为K8s抛弃Docker了,所以就只装了个containerd,这样就需要一个单独的镜像构建工具了,就用了buildkit,这也是Docker公司扶持的,他们公司的人出来搞的开源工具,官网在 https://github.com/moby/buildkit
简介
服务端为buildkitd,负责和runc或containerd后端连接干活,目前只支持这两个后端客户端为buildctl,负责解析镜像构建文件Dockerfile,并向服务端发出构建指令,所以客户端可以和服务端不在一台机器上,也不需要root权限之类服务端默认使用runc后端,但是建议使用containerd后端,这样构建出的镜像就会存在containerd的buildkit名字空间下
下载和安装
官网没看到源, 所以只能用绿色包了 Releases · moby/buildkit 去官网下载一个最新的包 buildkit-v0.16.0.linux-amd64.tar.gz ,解压后得到一个bin目录 把这个bin目录放到 $PATH 里去
启动buildkitd服务 buildkitd默认运行在前台的,如果需要后面加一个 用参数启动 使用 --oci-workerfalse --containerd-workertrue 参数,可以让buildkitd服务使用containerd后端
buildkitd --oci-workerfalse --containerd-workertrue 使用配置文件启动
创建配置文件
mkdir -p /etc/buildkit/
vim /etc/buildkit/buildkitd.toml[worker][worker.oci]enabled false#platforms [linux/amd64][worker.containerd]address /run/containerd/containerd.sockenabled trueplatforms [linux/amd64]namespace k8s.iogc true# gckeepstorage sets storage limit for default gc profile, in MB.gckeepstorage 9000[grpc]address [tcp://0.0.0.0:1234]uid 0gid 0debug false[registry][registry.registry.opsxlab.cn]http trueinsecure false 说明 [worker] 这是配置文件的主要部分定义了与工作者worker相关的配置。在容器化环境中工作者是执行容器操作的实体。 [worker.oci] enabled false: 表示不启用 OCIOpen Container Initiative模式。OCI 是容器的标准化规范但在这个配置中OCI 被禁用了。platforms [linux/amd64]: 这个行被注释掉表明未指定目标平台。通常这个选项用于指定容器运行的架构平台比如 linux/amd6464位Linux系统。 [worker.containerd] address /run/containerd/containerd.sock: 指定了 containerd 的 Unix 套接字地址用于与 containerd 运行时通信。enabled true: 表示启用了 containerd 模式这个配置将容器任务交给 containerd 处理。platforms [linux/amd64]: 这是运行容器的目标平台这里指定的是 linux/amd64表示运行在 64 位 Linux 系统上。namespace k8s.io: 这个选项设置 containerd 使用的命名空间为 k8s.io表明这个 containerd 实例是为 Kubernetes 服务的。gc true: 启用了垃圾回收GC。垃圾回收会自动删除不再需要的镜像或容器。 》- gckeepstorage 9000: 设置了默认的垃圾回收存储限制为 9000 MB约 9GB。当存储空间达到这个限制时垃圾回收会启动清理不再需要的数据。 [grpc] 这是 gRPC 的相关配置用于定义 gRPC 服务的行为。 address [tcp://0.0.0.0:1234]: 指定 gRPC 服务监听的地址和端口这里是 0.0.0.0:1234表示该服务在主机的所有网络接口上监听 1234 端口。uid 0: 设置了 gRPC 服务运行时的用户 ID这里是 0表示服务以 root 用户身份运行。gid 0: 设置了 gRPC 服务运行时的用户组 ID这里是 0也表示服务以 root 用户组身份运行。debug false: 表示未启用调试模式。如果设置为 true则会输出更多的调试信息。 [registry] 这是容器镜像仓库的相关配置定义了如何与指定的镜像仓库交互。 [registry.“registry.opsxlab.cn”] 这是一个指定的私有镜像仓库 registry.opsxlab.cn 的配置。 http true: 允许使用 HTTP 连接而非 HTTPS。通常情况下镜像仓库使用 HTTPS 来确保数据传输安全但这里允许通过不安全的 HTTP 进行通信。insecure false: 表示虽然允许使用 HTTP但仍然要求一些安全措施这意味着该配置未完全允许不安全的镜像拉取操作。如果设置为 true则可能完全忽略安全检查。 参考项目 https://gitcode.com/gh_mirrors/bu/buildkit/overview
用此配置启动服务
buildkitd --config /etc/buildkit/buildkitd.toml 把buildkitd配置成系统服务
参考 https://github.com/moby/buildkit/tree/master/examples/systemd/system
增加服务配置文件
vim /usr/lib/systemd/system/buildkitd.service[Unit]
DescriptionBuildKitd
ConditionPathExists/opt/buildkit/buildkitd
Aftercontainerd.service[Service]
Typesimple
ExecStart/opt/buildkit/buildkitd
Userroot
Restarton-failure
RestartSec1500ms[Install]
WantedBymulti-user.target说明我的buildkitd目录在/opt/buildkit下面根据实际情况修改 开机自启动
systemctl daemon-reload systemctl restart buildkitd systemctl enable buildkitd验证运行状态
systemctl status buildkitd构建镜像 buildctl --addr tcp://10.0.11.66:1234 build --frontenddockerfile.v0 --local context. --local dockerfile. --output typeimage,nameregistry.opsxlab.cn/rd-mgt/ruoyi-admin:0.0.1说明 --addr:表示buildkitd的服务端地址 --frontend可以使用网关做前端,未做其他尝试,这里直接使用dockerfile.0 --local context 指向当前目录,这是Dockerfile执行构建时的路径上下文,比如在从目录中拷贝文件到镜像里 --local dockerfile指向当前目录,表示Dockerfile在此目录 --output 的 name 表示构建的镜像名称 构建完成后镜像会存在本地containerd的buildkit名字空间或配置文件指定的名字空间下 可以参考https://gitcode.com/gh_mirrors/bu/buildkit/overview