k8s 使用 containerd 运行时配置 http 私服

简介

Kubernetes 从 v1.20 开始弃用 Docker,并推荐用户切换到基于容器运行时接口(CRI)的容器引擎,如 containerd、cri-o 等。

目前使用的环境中使用了 Kubernetes v1.22.3,containerd 1.4.3,containerd 在配置私服配置上与直接使用 docker 有一定区别。

今天简单聊一下如何配置私服,默认使用 dockerhub 官方镜像 registry:v2harbor 配置的私服为 http,未做配置时 k8s 拉镜像时会以 https 协议访问。

假定已创建好的私服地址为 http://10.211.55.2:5000,进行如下修改

编辑 worker 节点上 /etc/containerd/config.toml,查找plugins."io.containerd.grpc.v1.cri".registry.mirrors配置

相关配置中调整为如下内容

bash 复制代码
[plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.auths]
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
        [plugins."io.containerd.grpc.v1.cri".registry.configs."k8s-harbor:10001".tls]
          insecure_skip_verify = true
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s-harbor:10001"]
          endpoint = ["http://k8s-harbor:10001"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://registry.cn-hangzhou.aliyuncs.com"]

参考 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."10.211.55.2:5000"] 行添加私服配置,使用该配置可以直接配置相关 endpoint 为 http 地址。

重启 containerd,使配置生效

bash 复制代码
systemctl restart containerd

这时候,使用 crictl pull 命令就可以获取 http 协议私服上的镜像了。

但是使用ctr命令还是不行,原因:

ctr does not read the /etc/containerd/config.toml config file, this config is used by cri, which means kubectl or crictl would use it.

ctr命令拉取http格式的镜像地址方式:

bash 复制代码
$. ctr image pull --plain-http <image>
# eg: 
$. ctr i pull --plain-http k8s-harbor:10001/my-project/spring-boot-k8s:0.0.1-SNAPSHOT

k8s 使用 containerd 运行时配置 http 私服 - 简书

相关推荐
风落无尘7 小时前
Stable Diffusion WebUI & ComfyUI 完整安装教程:官方部署+一键整合包+Docker容器化(2026最新)
docker·容器·stable diffusion
CodeMartain12 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器
牛奶咖啡1313 小时前
k8s容器编排技术实践——使用containerd作为容器运行时部署k8s集群
kubernetes·k8s的安装部署·开启系统的ipvs支持·安装containerd·containerd配置加速器·安装k8s的工具·安装calico网络插件
万里侯13 小时前
云原生数据备份与恢复:保障数据安全的最佳实践
微服务·容器·k8s
llrraa201013 小时前
配置docker国内镜像源
运维·docker·容器
2301_7807896614 小时前
手游遇到攻击为什么要用SDK游戏盾手游遇到攻击为什么要用 SDK 游戏盾?
安全·web安全·游戏·架构·kubernetes·ddos
珂玥c15 小时前
k8s集群ingress碎碎念
云原生·容器·kubernetes
佳杰云星16 小时前
如何给大模型集群选“大脑”?智算调度与管理平台 10 维选型指南(附选型评分表)
人工智能·kubernetes·大模型·云计算·gpu·算力调度·智算中心
yqcoder17 小时前
数据的“包装方式”:深入解析 HTTP Content-Type
网络·网络协议·http
比特森林探险记17 小时前
context 在 gRPC / Gin / K8s 中的实战
容器·kubernetes·gin