Rancher 系列文章-K3s Traefik MiddleWare 报错-Failed to create middleware keys
概述
书接上回:《Rancher 系列文章-K3S 集群升级》, 我们提到:通过一键脚本升级 K3S 集群有报错。
接下来开始进行 Traefik 报错的分析和修复, 问题是:
- 所有 Traefik 的
IngressRoute
访问报错 404
问题描述
报错如下:
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 配置,确实没有这个参数,如下:
...
containers:
- name: traefik
image: rancher/mirrored-library-traefik:2.5.0
args:
- '--entryPoints.metrics.address=:9100/tcp'
- '--entryPoints.traefik.address=:9000/tcp'
- '--entryPoints.web.address=:8000/tcp'
- '--entryPoints.websecure.address=:8443/tcp'
- '--api.dashboard=true'
- '--ping=true'
- '--metrics.prometheus=true'
- '--metrics.prometheus.entrypoint=metrics'
- '--providers.kubernetescrd'
- '--providers.kubernetesingress'
- >-
--providers.kubernetesingress.ingressendpoint.publishedservice=kube-system/traefik
- '--entrypoints.websecure.http.tls=true'
...
所以,刚开始就计划通过编辑 Helm 的文件把这个参数加上。
编辑 K3s 的 Manifests Helm 文件
️ Reference:
- 自动部署 manifests 和 Helm charts
在/var/lib/rancher/k3s/server/manifests
中找到的任何 Kubernetes 清单将以类似kubectl apply
的方式自动部署到 K3s。以这种方式部署的 manifests 是作为 AddOn 自定义资源来管理的,可以通过运行kubectl get addon -A
来查看。你会发现打包组件的 AddOns,如 CoreDNS、Local-Storage、Traefik 等。AddOns 是由部署控制器自动创建的,并根据它们在 manifests 目录下的文件名命名。
该文件位于:/var/lib/rancher/k3s/server/manifests/traefik.yaml
, 内容如下:
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: traefik-crd
namespace: kube-system
spec:
chart: https://%{KUBERNETES_API}%/static/charts/traefik-crd-10.3.001.tgz
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: traefik
namespace: kube-system
spec:
chart: https://%{KUBERNETES_API}%/static/charts/traefik-10.3.001.tgz
set:
global.systemDefaultRegistry: ""
valuesContent: |-
rbac:
enabled: true
ports:
websecure:
tls:
enabled: true
podAnnotations:
prometheus.io/port: "8082"
prometheus.io/scrape: "true"
providers:
kubernetesIngress:
publishedService:
enabled: true
priorityClassName: "system-cluster-critical"
image:
name: "rancher/mirrored-library-traefik"
tolerations:
- key: "CriticalAddonsOnly"
operator: "Exists"
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoSchedule"
在上面的 yaml 中加入如下配置:
...
providers:
kubernetesCRD:
allowCrossNamespace: true
待其生效后, 确实可以恢复正常, 但是 K3s 会定期将 Manifests 重置为原有配置, 就会导致问题再次出现.
所以问题并没有最终解决.
使用 HelmChartConfig 自定义打包的组件
不过根据官方文档后续的内容, 我们可以通过 使用 HelmChartConfig 自定义打包的组件 的方式覆盖作为 HelmCharts(如 Traefik)部署的打包组件的值.
具体配置如下:
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: traefik
namespace: kube-system
spec:
valuesContent: |-
globalArguments:
- "--providers.kubernetescrd.allowcrossnamespace=true"
生效后, 恢复正常, 并且没有发生回滚.
问题解决.
️ 参考文档
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.
Rancher 系列文章-K3s Traefik MiddleWare 报错-Failed to create middleware keys的更多相关文章
- windows安装anaconda 报错failed to create anacoda menu ?
windows安装anaconda 报错failed to create anacoda menu ? 装了无数次,每次都是 failed to create anacoda menu然后无选择忽略, ...
- MyEclipse打不开jsp文件 报错“Failed to create the part's controls"
本来写好了一套网站html代码,需要移植到myeclipse的jsp页面中,当复制代码完毕后,也是可以运行的并不报错,但一直有弹框提示有空指针,当关闭页面后再次打开就歇菜了,提示 我预感到这可能是my ...
- 解决Eclipse启动报错Failed to create the Java Virtual Machine
电脑:2G内存,WIN7 32位. 启动adt-bundle-windows-x86-20140702\eclipse\eclipse.exe时,报错[Failed to create the Jav ...
- Eclipse及Eclipse为基础的App报错“Failed to create the Java Virtual Machine”的解决办法
由于OracleJDK马上就要收费了,公司要求更换OpenJDK,结果安装后Eclipse及Eclipse为基础的App启动报错:“Failed to create the Java Virtual ...
- 启动Myeclipse报错“Failed to create the Java Virtual Machine”的解决办法
我安装的是Myeclipse 10.7.1.装上好久没用,今天启动突然报错:Failed to create the Java Virtual Machine. 检查Myeclipse安装好使用时好的 ...
- 启动Myeclipse报错“Failed to create the Java Virtual Machine”的解决办法
我安装的是Myeclipse 10.7.1.装上好久没用,今天启动突然报错:Failed to create the Java Virtual Machine. 检查Myeclipse安装好使用时好的 ...
- MyEclipse打开 HTML 报错Failed to create the part's controls
拷贝代码时有时会弹出这个错误,页面仍然可以访问,但是无法编辑很郁闷. MyEclipse默认打开编辑页面是MyEclipse visual html designer 右击html页面选择open ...
- 解决eclipse打开报错:failed to create the java virtual ma
在Eclipse安装目录下找到:eclipse.ini 将如下参数改为: --launcher.XXMaxPermSize 128M ------------------------------- 说 ...
- Myeclipse 启动报错 Failed to create the java Virtual Machine
1.找到Myeclipse的安装目录 2.找到myeclipse.ini文件 3.打开myeclipse文件 你把原来的jvm.dll文件路径配置改成你的jdk安装路径中的jvm.dll路径 即: C ...
- 首次运行tensorflow-gpu 1.0 报错 failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
发现博客: https://blog.csdn.net/u010752600/article/details/79534910 于是找到解决方法. sudo rm -rf ~/.nv/
随机推荐
- springboot 整合 oss
一.阿里云配置 获取 accessKeyIdaccessSecret 创建桶 bucketName 二.demo 1.oss.config import org.springframework.bea ...
- bzoj 4195
并查集水题 离散化之后直接并查集合并,在不等时判断两者是否在同一个集合內即可 注意排序 贴代码: #include <cstdio> #include <cmath> #inc ...
- linux火狐添加flash插件
从官网上 adobe flash player 全版本通用安装 找到 linux 版本的 .gz 包, 复制下载链接 linux命令 su - cd /tmp wget -P /tmp https: ...
- 使用LitJson输出格式化json文件到本地
百度上搜了半天,竟然没有C#使用LitJson格式化输出的例子,全都是Newtonsoft.Json的,最后在litjson的官网找到了方法. 给大家分享一下: https://litjson.net ...
- Cubemx 生成工程代码失败的原因
折腾了好久(躺)翻了很多解答试了试终于捣鼓正常了,就在这里汇总一下看到过的问题 1.文件名.工程名或者工程文件路径/库路径上有中文名 2.Cubemx的版本过高 3.java环境的版本不适配 4.可能 ...
- Jmeter七、jmeter中的参数化
参数化是为了更好的模拟真实的业务场景 CSV data set config组件 1.更容易使用和理解 2.适合大参数量场景 3.设置方便灵活 EOF=end of file 没有找到文件 comma ...
- 面向对象程序设计 第二章 C++简单的程序设计
目录 C++语言的特点 1.兼容C语言 · 它保持了C的简洁.高效和接近汇编语言等特点. · 对C的类型系统进行了改革和扩充. · C++也支持面向过程的程序设计,不是一个纯正的面向对象的语言 2.支 ...
- 微信小程序ECharts通过调用api接口实现图表的数据可视化
小程序ECharts使用接口调入数据 首先附上js文件链接:axios.js 提取码:AxIo 将此放到小程序目录下的utils文件夹下 在已经完成图表的js文件中完成以下修改: ①引用axios.j ...
- 设置mode='out-on'导致路由切换过快路由加载报错 Failed to execute 'insertBefore' on 'Node'
原代码: 解决代码: 原因未知
- 2003031120—廖威—Python数据分析第七周作业—MySQL的安装以及使用
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 这个作业要求链接 https://edu.cnblogs.com/campus/ ...