关于kubernetes和docker版本的一些总结
前言
在开始细讲之前先总结一下:
1、使用v1.24及以后的版本,推荐使用符合CRI标准的容器运行时,如果非要使用docker作为容器运行时,可以通过安装cri-dockerd这个插件来支持。
2、kubernetes从v1.22版本开始移除docker的cgroup驱动程序的自动检测和匹配,也就是说如果你还要使用cgroup需要自己进行配置。
3、查看kubernetes兼容的docker版本可以通过kubernetes的变更日志查看kubernetes/CHANGELOG/README.md at master · kubernetes/kubernetes · GitHub
怎样选择kubernetes和docker版本
大家可以通过下面的链接去github上查看kubernetes的变更日志
kubernetes/CHANGELOG/README.md at master · kubernetes/kubernetes · GitHub
可以全局搜一下,有时候他会展示在Action required里面,有时候会展示在Changed里面。
从Action required中可以看到它推荐v1.9.1,但是v1.8.3和v1.10也是经过验证可用的。
从Changed中可以看到他从v20.10.12+不兼容变更为v20.10.17不兼容。
kubernetes针对docker的一些变更
1、kubernetes从v1.20版本开始将要弃用docker作为底层容器运行时。
2、kubernetes从v1.22版本开始移除docker的cgroup驱动程序的自动检测和匹配,也就是说如果你还要使用cgroup需要自己进行配置。也就是说从v1.22版本开始将默认使用cgroup v2。想要了解v1和v2有什么区别可以看看这篇文章cgroup V1和V2的原理和区别-阿里云开发者社区
3、kubernetes从v1.24版本开始移除dockershim,也就是从v1.24版本开始就不支持docker作为底层容器运行时,只能使用其他符合CRI标准的容器运行时,比如containerd、CRI-O。
为什么Kubernetes(K8S)弃用Docker:深度解析与未来展望-腾讯云开发者社区-腾讯云
4、但是为什么1.24版本以后的版本还会写支持那些docker版本或者有些博客虽然使用的是v1.24版本以后的kubernetes,但是还使用docker作为底层容器运行时,这是因为虽然kubernetes取消了内置dockershim,但是可以使用cri-dockerd这个插件来支持docker作为底层容器运行时。跟之前的区别就是从内置dockershim变为外置dockershim。
GitHub - Mirantis/cri-dockerd: dockerd as a compliant Container Runtime Interface for Kubernetes
docker版本号的变化
大家肯定好奇docker的版本号为什么从1.x->突然变成了17.x->,这是因为Docker Engine在2017年被分为Docker CE(社区版)和Docker EE(企业版),所以版本号进行了改编
Docker介绍和docker重大版本变更历史_docker版本-CSDN博客