如何使用crictl创建沙箱

问题描述 投票:1回答:1

我正在关注Run a pod sandbox链接以使用crictl创建一个沙箱。我收到了以下错误

root@cri-master:~# crictl runs sandbox-config.json
FATA[0000] run pod sandbox failed: rpc error: code = Unknown desc =failed to setup network for sandbox     "3ad790c715c817d22e6f6df95bf612dbc0ceaf05d2d94f94e62aa4b57234ea57": pods "nginx-sandbox" not found 

请有人告诉我这里做错了什么

kubernetes
1个回答
1
投票

所以我在cri-containerd github问题中发布了同样的问题,我得到了这个答案。这解释了一切

Unable to create sandbox

IIRC,calico daemonset watch apiserver获取pod的列表,并根据pod规范应用网络配置。我认为这是问题所在。

如果您自己使用crictl create沙盒,则apiserver上不会有相应的pod,因此calico会报告该错误。

实际上,我们不建议用户在Kubernetes节点上运行crictl runscrictl create,这些命令只适用于某些特殊的调试案例。这也是我们使命令难以使用的原因(用户需要准备配置文件来创建沙箱/容器)。

事实上,即使您能够创建沙箱,kubelet最终也会停止并删除它,因为它没有在apiserver上看到相应的pod。

如果您只想尝试crictl,则错误是由上述原因引起的。 如果您只想尝试创建一个pod,请改用kubectl。 :)

© www.soinside.com 2019 - 2024. All rights reserved.