树叶云kubernetes教程:Kubernetes CNI插件相关错误故障排除

CNI 插件相关错误故障排除

为避免与 CNI 插件相关的错误,请确认您正在使用或升级到经过测试可与您的 Kubernetes 版本一起正常工作的容器运行时。

例如,以下容器运行时正在或已经为 Kubernetes v1.24 准备好:

  • containerd v1.6.4 及更高版本,v1.5.11 及更高版本
  • CRI-O v1.24.0 及更高版本

关于“CNI 版本不兼容”和“无法为沙盒销毁网络”错误

当 CNI 插件尚未升级和/或 CNI 配置版本未在 CNI 配置文件中声明时,在 containerd v1.6.0-v1.6.3 中存在 pod CNI 网络设置和拆除的服务问题。 containerd 团队报告说,“这些问题在 containerd v1.6.4 中得到解决。”

使用 containerd v1.6.0-v1.6.3,如果您不升级 CNI 插件和/或声明 CNI 配置版本,您可能会遇到以下“不兼容的 CNI 版本”或“无法为沙盒销毁网络”的错误情况。

CNI 版本不兼容错误

如果您的 CNI 插件版本与配置中的插件版本不正确匹配,因为配置版本晚于插件版本,则容器日志可能会在 pod 启动时显示类似于以下内容的错误消息:

incompatible CNI versions; config is \"1.0.0\", plugin supports [\"0.1.0\" \"0.2.0\" \"0.3.0\" \"0.3.1\" \"0.4.0\"]"

沙盒错误导致网络破坏失败

如果 CNI 插件配置中缺少插件的版本,则 pod 可能会运行。 但是,停止 pod 会产生类似于以下内容的错误:

ERRO[2022-04-26T00:43:24.518165483Z] StopPodSandbox for "b" failed
error="failed to destroy network for sandbox \"bbc85f891eaf060c5a879e27bba9b6b06450210161dfdecfbb2732959fb6500a\": invalid version \"\": the version is empty"

此错误使 pod 处于未就绪状态,但仍附加网络命名空间。 要从此问题中恢复,请编辑 CNI 配置文件以添加缺少的版本信息。 下一次停止 pod 的尝试应该会成功。

更新 CNI 插件和 CNI 配置文件

如果您使用 containerd v1.6.0-v1.6.3 并遇到“不兼容的 CNI 版本”或“无法为沙盒销毁网络”错误,请考虑更新您的 CNI 插件并编辑 CNI 配置文件。

以下是每个节点的典型步骤的概述:

  1. 安全地排空并封锁节点。
  2. 停止容器运行时和 kubelet 服务后,执行以下升级操作:
    • 如果您正在运行 CNI 插件,请将它们升级到最新版本。
    • 如果您使用的是非 CNI 插件,请将它们替换为 CNI 插件。 使用最新版本的插件。
    • 更新插件配置文件以指定或匹配插件支持的 CNI 规范版本,如以下“容器配置文件示例”部分所示。
    • 对于 ​containerd​,请确保您已安装 CNI 环回插件的最新版本(v1.0.0 或更高版本)。
    • 将节点组件(例如 kubelet)升级到 Kubernetes v1.24
    • 升级到或安装最新版本的容器运行时。
  3. 通过重新启动容器运行时和 kubelet 将节点带回集群。 取消封锁节点(​kubectl uncordon <nodename>​)。

一个示例容器配置文件

以下示例显示了 ​containerd ​运行时 v1.6.x 的配置,它支持最新版本的 CNI 规范 (v1.0.0)。

有关配置系统的更多说明,请参阅您的插件和网络提供商的文档。

在 Kubernetes 上,containerd 运行时将环回接口 ​lo ​作为默认行为添加到 pod。 containerd 运行时通过 CNI 插件 ​loopback ​配置环回接口。 ​loopback ​插件作为具有 cni 名称的 ​containerd ​发布包的一部分分发。 ​containerd ​v1.6.0 及更高版本包括与 CNI v1.0.0 兼容的环回插件以及其他默认 ​CNI ​插件。 loopback 插件的配置由 containerd 内部完成,并设置为使用 CNI v1.0.0。这也意味着当这个更新版本的 ​containerd ​启动时,​loopback ​插件的版本必须是 v1.0.0 或更高版本。

以下 bash 命令生成示例 CNI 配置。在这里,配置版本的 1.0.0 值分配给 ​cniVersion ​字段,以供 ​containerd ​调用 CNI 桥接插件时使用。

cat << EOF | tee /etc/cni/net.d/10-containerd-net.conflist
{
 "cniVersion": "1.0.0",
 "name": "containerd-net",
 "plugins": [
   {
     "type": "bridge",
     "bridge": "cni0",
     "isGateway": true,
     "ipMasq": true,
     "promiscMode": true,
     "ipam": {
       "type": "host-local",
       "ranges": [
         [{
           "subnet": "10.88.0.0/16"
         }],
         [{
           "subnet": "2001:db8:4860::/64"
         }]
       ],
       "routes": [
         { "dst": "0.0.0.0/0" },
         { "dst": "::/0" }
       ]
     }
   },
   {
     "type": "portmap",
     "capabilities": {"portMappings": true}
   }
 ]
}
EOF

使用基于您的用例和网络寻址计划的 IP 地址范围更新前面示例中的 IP 地址范围。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/166492.html<

(0)
运维的头像运维
上一篇2025-03-20 13:50
下一篇 2025-03-20 13:52

相关推荐

  • HostSailor荷兰服务器怎么样?荷兰服务器租用推荐

    2026 年 HostSailor 荷兰服务器凭借超低延迟、合规的 GDPR 数据保护及极具竞争力的价格,是欧洲站群、跨境电商及 AI 算力部署的首选方案,在 2026 年的全球云计算版图中,荷兰阿姆斯特丹依然是连接欧亚非的绝对枢纽,HostSailor 作为深耕该区域的头部服务商,其核心优势在于不仅提供了物理……

    2026-05-02
    0
  • hosteonsVPS测评,实测体验好吗?hosteonsVPS怎么样

    Hosteons VPS 在 2026 年是否值得入手?结论是:对于追求极致性价比且业务主要面向东南亚或北美市场的中小开发者,其低价方案具备显著优势,但需警惕其高端线路的波动性,建议优先选择其位于新加坡或洛杉矶的入门级节点进行部署,在 2026 年云计算市场高度内卷的背景下,Hosteons 作为老牌 VPS……

    2026-05-02
    0
  • tragicservers是什么,tragicservers租用多少钱

    2026 年选择 tragicservers 的核心结论是:其凭借针对高并发游戏场景优化的独立节点架构与动态带宽调度技术,在低延迟稳定性与性价比之间取得了最佳平衡,尤其适合需要 24 小时不间断运行的竞技类项目,2026 年 tragicservers 性能深度解析与行业定位随着 2026 年云计算架构的进一步……

    2026-05-02
    0
  • 瑞典荷兰hosthatchVPS测评,hosthatchVPS怎么样?hosthatchVPS测评

    在 2026 年,若追求极致性价比与欧洲低延迟,瑞典 HostHatch VPS 是建站首选,而荷兰节点则在数据隐私与抗 DDoS 能力上略胜一筹,具体选择需结合业务落地地域与合规需求,HostHatch 2026 核心架构与性能实测随着 2026 年全球数据中心向绿色能源与 NVMe 全闪存架构转型,Host……

    2026-05-02
    0
  • CloudCone VPS测评,2美元/月性能如何?CloudCone VPS测评怎么样

    CloudCone 2 美元/月 VPS 实测结论:该方案在 2026 年仍具备极高的性价比,适合个人开发者搭建轻量级应用或学习 Linux 环境,但受限于共享带宽与 I/O 性能,不建议用于高并发生产环境或大型数据库服务,在 2026 年的 VPS 市场中,CloudCone 依然以其极低的入门门槛占据着特定……

    2026-05-02
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注