首页 新闻 会员 周边

Cilium 启用 DSR(Direct Server Return) 遇到问题:"cni plugin not initialized"

0
悬赏园豆:30 [待解决问题]

通过下面的命令启用 dsr

helm upgrade cilium cilium/cilium --version 1.11.5 \
  --install \
  --namespace kube-system \
  --set kubeProxyReplacement=strict \
  --set k8sServiceHost=k8s-api \
  --set k8sServicePort=6443 \
  --set ipam.operator.clusterPoolIPv4PodCIDR="192.168.0.0/16" \
  --set bpf.masquerade=true \
  --set loadBalancer.mode=hybrid \
  --set autoDirectNodeRoutes=true \
  --set tunnel=disabled \
  --set ipv4NativeRoutingCIDR="192.168.0.0/16"

部署后 cilium pod 正常运行,但其他 pod 都 CrashLoopBackOff,查看 kubernetes 集群日志发现下面的错误

network is not ready: container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized

请问如何解决?

问题补充:

重启服务器后部分 pod 正常启动,但还有100个左右的 pod 处于 CrashLoopBackOff,现在的错误日志变成

Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "2317003a32c1cc65d58b6dde918b74b493cfc9fc94fd7a833aff0909420dd713": plugin type="cilium-cni" name="cilium" failed (add): Unable to create endpoint: [PUT /endpoint/{id}][429] putEndpointIdTooManyRequests
dudu的主页 dudu | 高人七级 | 园豆:31007
提问于:2022-05-18 11:12
< >
分享
所有回答(1)
0

根据错误日志提示,是 cilium-cni 插件未初始化导致的问题。你可以尝试重启 kubelet 进程,让它重新加载 cilium-cni 插件。

步骤如下:

登录到 Kubernetes 节点。

停止 kubelet 进程。

bash

sudo systemctl stop kubelet
删除 cilium-cni 插件的配置文件。

bash

sudo rm -rf /etc/cni/net.d/cilium-cni.conf
启动 kubelet 进程。

bash

sudo systemctl start kubelet
等待一段时间,让 kubelet 加载 cilium-cni 插件并初始化,然后查看 pod 是否能够正常启动。如果仍然存在问题,可以进一步排查是否有其他插件或配置与 cilium-cni 产生冲突。

Technologyforgood | 园豆:5575 (大侠五级) | 2023-04-10 21:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册