简介
Kube.NETes 从 v1.20 开始弃用 Docker,并推荐用户切换到基于容器运行时接口(CRI)的容器引擎,如 contAInerd、cri-o 等 。相关配置中调整为如下内容
目前使用的环境中使用了 Kubernetes v1.22.3,containerd 1.4.3,containerd 在配置私服配置上与直接使用 docker 有一定区别 。
今天简单聊一下如何配置私服,默认使用 dockerhub 官方镜像 registry:v2 和 harbor 配置的私服为 http,未做配置时 k8s 拉镜像时会以 https 协议访问 。
假定已创建好的私服地址为 http://10.211.55.2:5000,进行如下修改
编辑 worker 节点上
/etc/containerd/config.toml,查找plugins."io.containerd.grpc.v1.cri".registry.mirrors配置
[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,使配置生效【harbor等 k8s 使用 containerd 运行时配置 http 私服】
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格式的镜像地址方式:
$. 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 用户角色 权限的划分
- 有人说退休金也分三六九等,差距很大,对此你怎么看呢?
- 新冠变异株EG.5在佛山等地流行 专家称普通人每年会感染1~3次
- 高铁能吃自己带的泡面吗 高铁二等座能吃泡面吗
- 如何升级到头等舱座位 如何升级到头等舱
- 七夕限定“鹤归栖松”特效曝光,细数必买的3个理由,你还等啥
- 曝道具剑、OST歌词等多方面抄袭,《秦时明月》称《七时吉祥》剧方未获任何授权,后者道具人员道歉
- 庄达菲资源力压李庚希?原来第五代京圈公主,也要分个三六九等!
- 微软SAP甲骨文等全球软件巨头如何拥抱生成式AI?
- 生抽的质量等级有什么区别 生抽的介绍