【问题标题】:Kubernetes NetworkPlugin cni failed to set up podKubernetes NetworkPlugin cni 设置 pod 失败
【发布时间】:2019-12-29 20:31:41
【问题描述】:

关于我使用的以下描述 pod 的日志,我的 pod 由于“FailedCreatePodSandBox”而陷入挂起状态

有一些要点: -我使用印花布作为 CNI。 - 这个日志重复多次,我只是把这个作为样本过去。 - ip 192.168.90.152 属于 ingress,129 属于 k8s 的监控 NS 中的分蘖,我不知道为什么 k8s 会尝试将其绑定到另一个 pod。

我在谷歌上搜索了这个问题,但我在这里一无所获。

  Warning  FailedCreatePodSandBox  2m56s                   kubelet, worker-dev  Failed create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "2abca59b55efb476723ec9c4402ede6e3a6ee9aed67ecd19c3ef5c7719ae51f1" network for pod "service-stg-8d9d68475-2h4b8": NetworkPlugin cni failed to set up pod "service-stg-8d9d68475-2h4b8_stg" network: error adding host side routes for interface: cali670b0a20d66, error: route (Ifindex: 10688, Dst: 192.168.90.152/32, Scope: 253) already exists for an interface other than 'cali670b0a20d66'
  Warning  FailedCreatePodSandBox  2m53s                   kubelet, worker-dev  Failed create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "ec155fd442c0ea09b282a13c4399ae25b97d5c3786f90f1a045449b52ced4cb7" network for pod "service-stg-8d9d68475-2h4b8": NetworkPlugin cni failed to set up pod "service-stg-8d9d68475-2h4b8_stg" network: error adding host side routes for interface: cali670b0a20d66, error: route (Ifindex: 10691, Dst: 192.168.90.129/32, Scope: 253) already exists for an interface other than 'cali670b0a20d66'

有人可以帮忙解决这个问题吗?

【问题讨论】:

  • 你是如何安装 calico - 作为 ds 的?
  • @bimal-vasan 是 ds,一个在我的工人身上,一个在主人身上。
  • 您使用哪个版本的 Calico?

标签: kubernetes project-calico calico cni


【解决方案1】:

根据 CNI 网络插件的设计和 Kubernetes 网络 model,Calico 定义了特殊的 IP 池 CIDR CALICO_IPV4POOL_CIDR 以确定哪些 IP 范围可用于跨 k8s 集群分配 pod IP 地址。

当您在特定的 K8s 节点上启动新 Pod 时,Calico 插件将执行以下操作:

  • 检查该节点上是否存在Pod;
  • 从定义的IPAM 中为此 Pod 分配 IP 地址 范围;
  • 在节点的主机上创建一个虚拟接口和适当的 路由规则,以便在 Pod 和 Pod 之间桥接网络流量 容器;
  • 在 K8s API 服务器中注册 Pod IP。

您可以在相关节点上获取有关Calico虚拟接口的数据,即:

$ ip link | grep cali

 cali80d3ff89956@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP mode DEFAULT group default 
 calie58f9d521fb@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP mode DEFAULT group default

为了估计当前的问题,可以考虑查询 Calico install-cni Pod 的容器日志,获取某个 Pod service-stg-8d9d68475-2h4b8 的数据,搜索已有的虚拟接口映射:

kubectl logs $(kubectl get po -l k8s-app=calico-node -o jsonpath='{.items[0].metadata.name}' -n kube-system) -c calico-node -n kube-system| grep service-stg-8d9d68475-2h4b8_stg

【讨论】:

    猜你喜欢
    • 2017-11-02
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2019-06-03
    相关资源
    最近更新 更多