文章目录
环境介绍
部署traefik
使用的是traefik-10.1.1.tgz
这个chart
。
traefik
的版本是2.4.13
,最早是2.4.11
。
traefik-2.4.13
升级至traefik-2.5.2
报错
升级后,打开webui
,发现所有的route
都不见了。看日志,有如下错误。
E0906 11:53:39.576836 1 reflector.go:138] pkg/mod/k8s.io/client-go@v0.21.0/tools/cache/reflector.go:167: Failed to watch *v1alpha1.MiddlewareTCP: failed to list *v1alpha1.MiddlewareTCP: middlewaretcps.traefik.containo.us is forbidden: User "system:serviceaccount:hy:ingress-traefik-hy" cannot list resource "middlewaretcps" in API group "traefik.containo.us" in the namespace "hy"
下载新的traefik chart
包
# helm pull traefik/traefik
# tar xf traefik-10.3.2.tgz
cluserrole
中添加middlewaretcps
新版本的chart
中的clusterrole
中是有middlewaretcps
这个的。
如下
- apiGroups:
- traefik.containo.us
resources:
- ingressroutes
- ingressroutetcps
- ingressrouteudps
- middlewares
- middlewaretcps # 新增了这一项
- tlsoptions
- tlsstores
- traefikservices
- serverstransports
verbs:
- get
- list
- watch
报错找不到middlewaretcps
E0906 12:48:40.619419 1 reflector.go:138] pkg/mod/k8s.io/client-go@v0.21.0/tools/cache/reflector.go:167: Failed to watch *v1alpha1.MiddlewareTCP: failed to list *v1alpha1.MiddlewareTCP: the server could not find the requested resource (get middlewaretcps.traefik.containo.us)
创建middlewaretcps
的crd
[root@nano-kvm-11 crds]# k apply -f middlewarestcp.yaml
customresourcedefinition.apiextensions.k8s.io/middlewaretcps.traefik.containo.us created
解决这两个问题之后,dashboard
上就显示正常了。
总结
2.5.x
相比2.4.x
增加了middlewaretcps
资源,所以需要事先把这些资源和相关权限创建好,否则就会报错。
这次操作也没有查看文档,因为是测试环境,所以才会直接操作。
不过文档中也没有提到这一块https://doc.traefik.io/traefik/migration/v2/
。
而且在traefik-helm-chart
中也没有看到相关的说明https://github.com/traefik/traefik-helm-chart
。