Kubernetes 中的一个 Traefik Pod 失败并显示错误:'command traefik error: field not found, node: redirect'

Con*_*agh 4 kubernetes traefik

我在 Kubernetes 集群上运行 Traefik 来管理 Ingress,它已经运行了很长时间。我最近实现了Cluster-Autoscaling,它工作正常,除了在一个节点(由 Autoscaler 新创建的)上 Traefik 不会启动。它位于 CrashLoopBackoff 中,当我登录 Pod 时,我得到:[date] [time] command traefik error: field not found, node: redirect. 谷歌没有找到相关结果,错误本身也不是很清楚,所以我不知道去哪里找。我最好的猜测是它与Traefik 的配置文件中配置的RedirectRegex中间件有关:

    [entryPoints.http.redirect]
    regex = "^http://(.+)(:80)?/(.*)"
    replacement = "https://$1/$3"
Run Code Online (Sandbox Code Playgroud)

Traefik 实际上仍然有效——我仍然可以从浏览器中的 URL 访问我的所有应用程序,即使是那些在带有死 Traefik Pod 的节点上的应用程序。其他节点上的其他 Traefik Pod 仍然运行良好,并且节点(至少在理论上)是相同的。

Con*_*agh 5

经过进一步的谷歌搜索,我在 Reddit 上找到了这个。结果 Traefik 几天前更新到 v2.0,它不向后兼容。只有这个 pod 有问题,因为它是唯一一个被拉取了新 (v2.0) 镜像(是最近创建的唯一节点)。我恢复到 v1.7,直到我有时间正确修复它。已将 Daemonset 更新为使用 v1.7,然后杀死 Pod,以便可以从旧映像重新创建它。