内容纲要
概要描述
runc 版本影响范围:>= 1.0.0-rc93, <= 1.1.11,修复版本:1.1.12
详细说明
- 升级 runc 或者 docker-runc
实际上就是用新的二进制 runc 文件,更新替换旧的二进制 runc 文件;
PS:
- 如果 docker 版本是 docker 20.x.x ,则是 runc
- 如果 docker 版本是 docker 17.x.x ,则是 docker-runc
解决方案
升级 runc/docker-runc,从 1.0.3 升级至 1.1.12
1、下载 runc
2、查看当前 runc 版本
docker-runc -v
或者 runc -v
3、升级
- 升级 runc
将下载好的 runc.amd64 文件上传到服务器;
# 给予可执行权限
chmod +x runc.amd64
# 备份原有的runc
mv /usr/bin/runc /usr/bin/runc.bak-old
# 拷贝更新后的runc
mv ./runc.amd64 /usr/bin/runc
- 升级 docker-runc
将下载好的 runc.amd64 文件上传到服务器;
# 给予可执行权限
chmod +x runc.amd64
# 备份原有的runc
mv /usr/bin/docker-runc /usr/bin/docker-runc.bak-old
# 拷贝更新后的runc
mv ./runc.amd64 /usr/bin/docker-runc
验证
- 验证版本
升级后,可以通过运行runc -v 或者 docker-runc -v 命令查看 runc 的版本号。
- 重启 pod 验证功能
升级 runc 组件不会重启业务 Pod。所以不会影响运行中的服务。
只有主动重启容器,使用新版本的 runc 重新创建容器后,新的 runc 才会在业务容器中生效。
所以建议是更新 runc 之后,手动重启一下集群中所有服务;
如果不方便立即重启,可以后续等业务空闲时间,操作重启。
回退
回退方案直接将备份的 二进制文件 mv 回去即可;
# 回退原有的runc
mv /usr/bin/runc.bak-old /usr/bin/runc
# 回退原有的docker-runc
mv /usr/bin/docker-runc.bak-old /usr/bin/docker-runc