ljzsdut
GitHubToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeBack to homepage

2 Traefik使用方式

使用规划

1、acme自动申请通配符证书*.dev.rencaiyoujia.com*.test.rencaiyoujia.com;生产环境使用自购证书 *.rencaiyoujia.com

2、默认全部开启https访问,http自动跳转https。有特例:只允许http访问。

简单示例

使用ingress-nginx服务发现

参考文档:https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/#routing-configuration

静态配置

启用ingress服务发现

--providers.kubernetesingress
--entrypoints.websecure.http.tls #可选,对websecure这个entrypoint上的所有ingress启用tls

ingress配置

annotations:
  kubernetes.io/ingress.class: traefik
  traefik.ingress.kubernetes.io/router.entrypoints: websecure
  traefik.ingress.kubernetes.io/router.tls: "true"  #可选,对该ingress启用tls

说明:

1、基于ingress的方式,也是可以使用crd或file方式中定义的middlewares。例如添加注解:

traefik.ingress.kubernetes.io/router.middlewares: auth@file,prefix@kubernetescrd,cb@file

2、nginx-ingress controller是根据ingress.spec.tls来判断是否启用tls,而与nginx不同的是,traefik不会使用,需要明确指定是否启用。启用方式如上面的针对entrypoint全局启用和针对ingress启用。

3、基于第2条,如果从nginx转到traefik,不启用tls,直接是兼容的;如果要启用tls,则需要添加traefik.ingress.kubernetes.io/router.tls: “true"注解即可(或添加静态配置--entrypoints.websecure.http.tls)。

使用crd做为服务发现【推荐】

kubectl create secret generic traefik-alidns-secret --from-literal=ALICLOUD_ACCESS_KEY=LTAI4FzFCet4Crbr5EP7JWso --from-literal=ALICLOUD_SECRET_KEY=gTmAhSip0BXl59kwkqZ31IlhpkG3I6 --from-literal=ALICLOUD_REGION_ID=cn-beijing -n kube-system