gpt4 book ai didi

kubernetes - 等待运河 pods ,然后在新节点上安排 pods

转载 作者:行者123 更新时间:2023-12-02 12:22:26 27 4
gpt4 key购买 nike

在为Kubernetes创建/添加节点时,我们还必须创建Canal pod。

当前,kubernetes在尝试调度Pod之前不会等待Canal Pod准备就绪,从而导致失败(错误如下)

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]"

运河 pods 正常运行后,只需删除出现故障的 pods 即可解决此问题。

我的问题是:在尝试在节点上调度Pod之前,告诉kubernetes等待网络Pod准备就绪的正确方法是什么?
  • 我是否应将节点仅允许Canal污染,一旦准备就绪就取消污染?
  • 一旦运河准备好了,我应该脚本化删除失败的 pods 吗?
  • 是否有消除该问题的配置或方法?
  • 最佳答案

    这是常见问题,因此我还是会发布答案。

    这种行为是正常的,尤其是在自托管的k8s集群中。在自托管环境中,所有部署(包括控制平面元素)(例如kube-apiserver,运河)都在同一时间进行调度。

    一旦控制平面运行,出现故障的Pod最终应正确启动。 k8s将继续重新启动失败的Pod,直到其正确启动为止。

    为了使Canal首先启动,可以将 list 与其他控制平面 list (例如kube-apiserver,kube-controller-manager)一起部署在k8s节点中。通常在/etc/kubernetes/manifests中找到,但是路径是完全任意的。但是,如果运河准备的时间太长,则会出现相同的错误。

    关于kubernetes - 等待运河 pods ,然后在新节点上安排 pods ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062980/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com