无法将Windows节点加入Linux Kubernetes群集:“容器运行时未运行”[已关闭]

pu82cl6c  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(1)|浏览(120)

**已关闭。**此问题为not about programming or software development。目前不接受答案。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site相关,您可以留下评论,说明在何处可以找到此问题的答案。
18天前关闭。
Improve this question
我有一个Kubernetes集群,其中有一个主Linux节点,安装了kubeadm和Calico网络插件。
我想加入Windows节点,所以我安装了Windows Server 2019,并在Windows服务器上遵循Calico's docs
在我完成并根据文档验证了所有服务(CalicoNode、CalicoFelix、kubelet和kube-proxy)都在运行之后,我运行了kubeadm join命令并收到以下错误:

C:\Users\Administrator>kubeadm join 10.0.6.223:6443 --token <REDACTED> --discovery-token-ca-cert-hash sha256:<REDACTED>
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR CRI]: container runtime is not running: output: time="2022-11-02T16:17:51+02:00" level=fatal msg="unable to determine runtime API version: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing open //./pipe/containerd-containerd: The system cannot find the file specified.\""
, error: exit status 1
        [ERROR FileAvailable-C:-etc-kubernetes-pki-ca.crt]: C:/etc/kubernetes/pki/ca.crt already exists
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

该错误指示容器运行时未运行,但Docker Desktop已安装并正在运行(Windows模式),我还安装了crictl for Windows并将其添加到C:\Windows\System32,但在运行时出现相同的错误。

j7dteeu8

j7dteeu81#

从错误的输出来看,kubelet似乎使用的是containerd,而不是docker运行时,所以当它找不到正在运行的服务时,它会失败。您是否查看过Microsoft的文档,了解如何在Windows Server上启用containerd?https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=containerd#windows-server-1

相关问题