Rancher 系列文章-K3s Traefik MiddleWare 报错-Failed to create middlewa

[复制链接]
发表于 2023-4-4 14:15:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
概述

书接上回:《Rancher 系列文章-K3S 集群升级》, 我们提到:通过一键脚本升级 K3S 集群有报错。
接下来开始进行 Traefik 报错的分析和修复, 问题是:

  • 所有 Traefik 的 IngressRoute 访问报错 404
问题描述

报错如下:
  1. time="2022-05-05T09:51:21Z" level=error msg="Failed to create middleware keys: middleware kube-system/hsts-header is not in the IngressRoute namespace cert-manager" namespace=cert-manager providerName=kubernetescrd ingress=grafana
复制代码
即无法跨 NameSpace 调用 Traefik MiddleWare.
解决过程

首先根据官方文档说明:Kubernetes IngressRoute & Traefik CRD - Traefik
可以配置 allowCrossNamespace 参数,该参数默认为 false, 如果该参数设置为true, IngressRoutes 可以引用其他 NameSpace 中的资源。
基本上断定根因就是这个了。查看 K3s v1.22.5+k3s2 的 Traefik 配置,确实没有这个参数,如下:
  1. ...
  2. containers:
  3.   - name: traefik
  4.     image: rancher/mirrored-library-traefik:2.5.0
  5.     args:
  6.       - '--entryPoints.metrics.address=:9100/tcp'
  7.       - '--entryPoints.traefik.address=:9000/tcp'
  8.       - '--entryPoints.web.address=:8000/tcp'
  9.       - '--entryPoints.websecure.address=:8443/tcp'
  10.       - '--api.dashboard=true'
  11.       - '--ping=true'
  12.       - '--metrics.prometheus=true'
  13.       - '--metrics.prometheus.entrypoint=metrics'
  14.       - '--providers.kubernetescrd'
  15.       - '--providers.kubernetesingress'
  16.       - >-
  17.         --providers.kubernetesingress.ingressendpoint.publishedservice=kube-system/traefik
  18.       - '--entrypoints.websecure.http.tls=true'
  19. ...      
复制代码
所以,刚开始就计划通过编辑 Helm 的文件把这个参数加上。
编辑 K3s 的 Manifests Helm 文件

<blockquote>
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表