【问题标题】:using network plugins "cni": cni config unintialized; Skipping pod使用网络插件“cni”:cni 配置未初始化;跳舱
【发布时间】:2017-03-02 07:02:29
【问题描述】:

我使用 kubeadm init 创建了 集群。

我在/var/log/messages 中收到错误消息。

Oct 20 10:09:52 aws08 kubelet: I1020 10:09:52.015921    7116
docker_manager.go:1787] DNS ResolvConfPath exists:
/var/lib/docker/containers/717adf7a8481637ac20a9ba103d8f97635a88bf05f18bd4299f0d164e48f2920/resolv.conf.
Will attempt to add ndots option: options ndots:5 Oct 20 10:09:52
aws08 kubelet: I1020 10:09:52.015963    7116 docker_manager.go:2121]
Calling network plugin cni to setup pod for
kube-dns-2247936740-cjij4_kube-system(3b296413-96aa-11e6-8c40-02fff663a168)
Oct 20 10:09:52 aws08 kubelet: E1020 10:09:52.015982    7116
docker_manager.go:2127] Failed to setup network for pod
"kube-dns-2247936740-cjij4_kube-system(3b296413-96aa-11e6-8c40-02fff663a168)"
using network plugins "cni": cni config unintialized; Skipping pod Oct
20 10:09:52 aws08 kubelet: I1020 10:09:52.018824    7116
docker_manager.go:1492] Killing container
"717adf7a8481637ac20a9ba103d8f97635a88bf05f18bd4299f0d164e48f2920
kube-system/kube-dns-2247936740-cjij4" with 30 second grace period

DNS pod 失败:

kube-system   kube-dns-2247936740-j5rtc        0/3       ContainerCreating   21         1h

如果我禁用了CNI,则 DNS pod 正在运行。但是 DNS 的问题仍然存在。

禁用cni的方法是注释/etc/systemd/system/kubelet.service.d/10-kubeadm.conf中的KUBELET_NETWORK_ARGS这一行,然后重启kubelet服务

[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
# Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
Environment="KUBELET_DNS_ARGS=--cluster-dns=100.64.0.10 --cluster-domain=cluster.local"
Environment="KUBELET_EXTRA_ARGS=--v=4"
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_EXTRA_ARGS

接着是:

sudo systemctl 重启 kubelet

【问题讨论】:

  • 遇到同样的问题
  • 它在 ec2 上。不确定是否相关。

标签: kubernetes kubeadm kubernetes kubeadm cni


【解决方案1】:

我猜你忘了setup the pod network

来自文档:

在您尝试将任何应用程序部署到您的集群之前以及在kube-dns 启动之前,必须执行此操作。另请注意,kubeadm 仅支持基于 CNI 的网络,因此基于 kubenet 的网络将不起作用。

您可以使用以下命令安装 pod 网络插件:

kubectl apply -f <add-on.yaml>

例子:

kubectl create -f https://git.io/weave-kube

安装Weave Net 插件。

完成此操作后,您可能需要重新创建 kube-dns pod。

【讨论】:

    【解决方案2】:

    cni 初始化应该在 kubelet 初始化期间完成。所以尝试重启 kubelet 服务,确保 cni 配置可以正确解析。

    【讨论】:

      猜你喜欢
      • 2019-03-11
      • 2020-05-31
      • 2018-08-13
      • 2021-04-06
      • 2017-11-01
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      相关资源
      最近更新 更多