k8s1.17安装traefik1.7.6没有问题,k8s1.19安装traefik1.7.30出现问题:
1、通过ingress访问域名访问服务报错404,经过排查发现服务没有问题,查看k8s文档发现,ingress需要指定ingressclass(确定ingress contraller,不指定也行,创建一个默认的)
[root@k8s-master aws]# kubectl --kubeconfig config get ing -n prod
NAME CLASS HOSTS
aws-ingress-example traefik-lb phpmyadmin.*.*.org 80 8h
在这里就发现ingress多了一个字段class,于是查看文档
创建一个默认的ingressclass
PS:不创建默认的也行,在ingress中通过IngressClassName声明,默认ingressclass新建而不指定的ingress就会使用默认ingressclass
[root@k8s-master aws]# cat ingressClassName.yaml
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: traefik-lb
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
spec:
controller: traefik.io/ingress-controller
# parameters:
# apiGroup: k8s.example.com
# kind: IngressParameters
# name: traefik-lb
2、然后还是404
a、配置问题
b、启动参数问题
c、版本兼容问题
[root@k8s-master aws]# kubectl --kubeconfig config get svc -n kube-system traefik-ingress-service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
traefik-ingress-service NodePort 10.100.14.28 <none> 80:30480/TCP,443:30443/TCP,8080:31752/TCP 7d18h
查看traefik的日志,只有启动的几行日志,没有有用信息,猜测:
主要怀疑第一第二原因,查看traefik.toml配置和官网对比,没有发现什么问题
直接访问traefik管理端口8080:31752,也是404,基本就是确定就是启动参数问题,对比官方文档发现启动参数不一致
总结:因为版本变化,启动参数不一致影响问题
个人感悟:还是短炼啊