cri-containerd运行时使用私有镜像仓库

介绍

k8s缺省使用docker运行时,但是1.12.x开始支持使用containerd运行时,这样调用路径从原来的kubelet->dockershim->dockerd->containerd->runc-shim->runc 优化为kublet->cri->containerd->runc->shim->runc, 而且cri还是作为containerd的一个插件跑在一个进程空间,看起来是提高了性能,但是如果习惯于在节点用docker命令的话就不要切换了,或者只切换部分节点。
我就是只切换了一个节点作为实验,方法其实很简单,只是修改下kubelet的启动命令就好了,但是如果你是用的私有镜像仓库的话会碰到一些问题,这里我主要目的是记录下cri-containerd使用私有镜像仓库时碰到的问题。

从docker切换到containerd

修改kubelet的启动命令添加如下参数--container-runtime=remote --runtime-request-timeout=15m --container-runtime-endpoint=unix:///run/containerd/containerd.sock

systemctl daemon-reload
systemctl restart kubelet

注意kubelet是通过/run/containerd/containerd.sock和containerd通信的,安装有docker(新一点的版本)的节点都会有个daemon进程,如果是全新没有安装docker的节点,只要先创建配置文件,然后手动或者以服务方式启动containerd进程即可。

containterd config default > /etc/containerd/config.toml, 
/usr/bin/conainerd

正常情况下如果你只是使用官方镜像库,pod就可以调度到这个使用containerd的节点了,但是如开头说的,如果是私有仓库,还有几个问题要解决

cri-containerd使用私有镜像仓库的注意事项

不支持使用plain-http的镜像仓库

现象是调度到该节点的pod都启动失败,kubectl describe pod/xxx 显示的出错信息server gave HTTP response to HTTPS client, 我是用docker registry搭建的简易本地仓库,没有启用tls, 很明显cri-containerd是希望ssl加密传输的,不过containerd本身是支持走明文的&

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值