取决于你运行集群的方式,节点所使用的容器运行时可能是事先配置好的, 也可能需要你来配置。如果你在使用托管的 Kubernetes 服务, 可能存在特定于厂商的方法来检查节点上配置的容器运行时。 本页描述的方法应该在能够执行 kubectl
的场合下都可以工作。
安装并配置 kubectl
。参见安装工具 节了解详情。
使用 kubectl
来读取并显示节点信息:
kubectl get nodes -o wide
输出如下面所示。CONTAINER-RUNTIME
列给出容器运行时及其版本。
对于 Docker Engine,输出类似于:
NAME STATUS VERSION CONTAINER-RUNTIME
node-1 Ready v1.16.15 docker://19.3.1
node-2 Ready v1.16.15 docker://19.3.1
node-3 Ready v1.16.15 docker://19.3.1
如果你的容器运行时显示为 Docker Engine,你仍然可能不会被 1.24 中 dockershim 的移除所影响。 通过检查运行时端点,可以查看你是否在使用 dockershim。 如果你没有使用 dockershim,你就不会被影响。 看下是否是使用的 dockershim,如何是 dockershim 则会受到在 Kubernetes 1.24 中移除 dockershim 的影响。 反之则不会受到影响。
对于 containerd,输出类似于这样:
# For containerd
NAME STATUS VERSION CONTAINER-RUNTIME
node-1 Ready v1.19.6 containerd://1.4.1
node-2 Ready v1.19.6 containerd://1.4.1
node-3 Ready v1.19.6 containerd://1.4.1
容器运行时使用 Unix Socket 与 kubelet 通信,这一通信使用基于 gRPC 框架的 CRI 协议。kubelet 扮演客户端,运行时扮演服务器端。 在某些情况下,你可能想知道你的节点使用的是哪个 socket。 如若集群是 Kubernetes 1.24 及以后的版本, 或许你想知道当前运行时是否是使用 dockershim 的 Docker Engine。
Note: 如果你的节点在通过
cri-dockerd
使用 Docker Engine, 那么集群不会受到 Kubernetes 移除 dockershim 的影响。
可以通过检查 kubelet 的参数得知当前使用的是哪个 socket。
tr 0 " " < /proc/"$(pgrep kubelet)"/cmdline
如有节点上没有 tr
或者 pgrep
,就需要手动检查 kubelet 的启动命令
--container-runtime
和 --container-runtime-endpoint
标志。container-runtime
标志值不是 remote
,则你在通过 dockershim 套接字使用 Docker Engine。 或者如果集群使用的 Docker engine 和 dockershim socket,则输出结果中 --container-runtime
不是 remote
,--container-runtime-endpoint
参数,查看套接字名称即可得知当前使用的运行时。 如若套接字 unix:///run/containerd/containerd.sock
是 containerd 的端点。如果你通过 dockershim 来使用 Docker Engine,可在 迁移到不同的运行时 找到更多信息。或者,如果你想在 Kubernetes v1.24 及以后的版本仍使用 Docker Engine, 可以安装 CRI 兼容的适配器实现,如 cri-dockerd
。
在开始之前你必须拥有一个Kubernetes的集群,同时你的Kubernetes集群必须带有kubectl命令行工具。建议在至少有两个节点的集群上...
CommonJS 规范Asynchronous Module DefinitionCommon Module DefinitionCMD 模块定义规范Universal Module DefinitionECMAScript...
本指南建立在以下几个假设基础之上:你正在使用的是默认的构建输出路径(dist)。这个路径可以通过build.outDir更改,在...
首先,请确保用一个条件语句守护所有 HMR API 的使用,这样代码就可以在生产环境中被 tree-shaking 优化:if (import.meta.hot) ...
类型签名:async function createServer(inlineConfig?: InlineConfig): PromiseViteDevServer使用示例:const { createServer }...