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,基本就是确定就是启动参数问题,对比官方文档发现启动参数不一致

总结:因为版本变化,启动参数不一致影响问题
个人感悟:还是短炼啊

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐