在向kubernetes创建/添加节点时,我们还必须创建一个运河吊舱。
目前,kubernetes并没有等到运河舱准备好后才试图安排吊舱,导致失败(下面的错误)。
Error syncing pod, skipping: failed to "CreatePodSandbox" for "nginx-2883150634-fh5s2_default(385d61d6-6662-11e7-8989-000d3af349de)" with CreatePodSandboxError: "CreatePodSandbox for pod \"nginx-2883150634-fh5s2_default(385d61d6-6662-11e7-8989-000d3af349de)\" failed: rpc error: code = 2 desc = NetworkPlugin cni failed to set up pod \"nginx-2883150634-fh5s2_default\" network: failed to find plugin \"loopback\" in path [/opt/loopback/bin /opt/cni/bin]"一旦运河吊舱启动和运行,简单地删除失败的吊舱将修复这个问题。
我的问题是:在尝试调度节点上的吊舱之前,告诉kubernetes等待网络吊舱准备好的正确方法是什么?
发布于 2017-07-13 00:18:52
这是个常见的问题,所以无论如何我都会贴出答案。
这种行为是正常的,特别是在自托管的k8s集群中。在自托管环境中,所有部署都包括控制平面元素(例如。库贝-阿比塞弗,运河)在同一时间安排。
一旦控制飞机运行,失败的吊舱将最终正常启动。k8s将继续重新启动失败的豆荚,直到它正常出现。
为了使运河首先启动,清单可以与其他控制平面清单一起部署在k8s节点中(例如。库贝-阿皮塞维尔,库贝-控制器-经理)。它通常在/etc/kubernetes/manifests中找到,但是路径是完全任意的。然而,如果运河的准备时间太长,也会出现同样的错误。
https://stackoverflow.com/questions/45062980
复制相似问题