有一个工作的k8s集群,其中有两个节点(主节点和工作节点),并使用CRI-O作为容器运行时。我需要(临时)从cri-o切换到docker容器运行时
我试图使用这些命令:Kubectl
这里有一些事情可以帮助你:
- 了解
dockershim
支持从Kubernetes v1.24+
中移除。所以,如果你的Kubernetes版本是其中之一,docker作为运行时will not work
。这是一个很好的资源来理解这个细节。 - 如果你的版本允许使用
docker engine
作为运行时,那么根据文档,你需要安装docker engine
和cri-dockerd
适配器来连接Kubernetes。您可以在链接文档中找到所有这些链接。 - 完成节点的安装和配置后,需要在集群中创建一个
RuntimeClass
对象。你可以使用这个指南。 现在,您需要更新每个pod规范,为其添加 - 理解没有"临时"的;在运行时之间切换。您只需在工作节点上并行地安装、配置和设置所需的所有运行时,然后更新所有pod规范,以便使用所需的
RuntimeClass
在工作节点上调度它们。 - 同样,更改主节点的运行时是没有意义的。主节点pod是Kubernetes系统的静态组件,它们的清单位于
/etc/kubernetes/manifests
目录。它们不通过Kubernetes API
服务器应用。节点上的任何运行时更改都不会影响这些pod,除非删除集群并重新创建这些pod。非常不鼓励来操作这些清单,因为任何错误都不会显示在任何地方,并且组件将简单地"不工作"。(因此,静态豆荚)。
runtimeClass
参数,以便在指定节点上调度。底线;运行时更改仅对工作节点有意义。请勿尝试更改主节点运行时。