GKE on Prem安装static/whereabouts IPAM CNI插件后bin文件缺失问题咨询
GKE On Prem IPAM CNI插件问题排查与说明
GKE On Prem(Anthos 本地集群)官方支持搭配Multus CNI使用Whereabouts、Static类型的IPAM插件,你遇到的二进制文件未出现在指定目录的问题由DaemonSet挂载配置错误导致。
配置错误点
- 路径映射逻辑错误:你将主机路径
/home/ubuntu/opt/cni/bin挂载到了Whereabouts容器的/host/home/ubuntu/opt/cni/bin路径,同时指定了CNI_BIN_DIR为该容器内路径,因此二进制文件只会被写入主机的/home/ubuntu/opt/cni/bin目录,不会出现在你检查的/opt/cni/bin目录下。 - 不符合GKE On Prem默认CNI规范:GKE On Prem默认的CNI二进制存放路径为
/opt/cni/bin,你自定义到普通用户家目录的配置会导致kubelet无法识别到新增的IPAM插件,直接导致Multus调用IPAM失败。
修正后的配置参考
你可以将DaemonSet的对应字段修改为以下内容:
env: - name: CNI_BIN_DIR value: "/host/opt/cni/bin" # 容器内挂载的主机CNI bin路径 - name: WHEREABOUTS_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace # 中间资源、安全上下文等其他配置保持不变 volumeMounts: - name: cnibin mountPath: /host/opt/cni/bin # 对应容器内挂载路径 - name: cni-net-dir mountPath: /host/etc/cni/net.d volumes: - name: cnibin hostPath: path: /opt/cni/bin # 主机实际CNI bin路径 type: Directory - name: cni-net-dir hostPath: path: /etc/cni/net.d type: Directory
后续检查项
- 修正配置后重新应用DaemonSet,等待Pod重建完成后执行
kubectl logs -n kube-system <whereabouts-pod名称>查看运行日志,确认没有复制二进制的报错。 - 登录节点检查
/opt/cni/bin目录下是否存在whereabouts二进制文件。 - 若需使用Static IPAM插件,该插件属于containernetworking/plugins官方二进制包,需要单独部署到节点的
/opt/cni/bin目录下,可采用同Whereabouts一致的DaemonSet方式批量分发。
内容的提问来源于stack exchange,提问作者user3295247
相关产品推荐
相关产品推荐

