參考文檔:前端
https://mritd.me/2016/12/06/try-traefik-on-kubernetes/#13ingressnginx
因爲微服務架構以及 Docker 技術和 kubernetes 編排工具最近幾年纔開始逐漸流行,因此一開始的反向代理服務器好比 nginx、apache 並未提供其支持,畢竟他們也不是先知;因此纔會出現 Ingress Controller 這種東西來作 kubernetes 和前端負載均衡器如 nginx 之間作銜接;即 Ingress Controller 的存在就是爲了能跟 kubernetes 交互,又能寫 nginx 配置,還能 reload 它,這是一種折中方案;而最近開始出現的 traefik 天生就是提供了對 kubernetes 的支持,也就是說 traefik 自己就能跟 kubernetes API 交互,感知後端變化,所以可以得知: 在使用 traefik 時,Ingress Controller 已經無卵用了!web
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: traefik-ingress-lb
namespace: kube-system
labels:
k8s-app: traefik-ingress-lb
spec:
template:
metadata:
labels:
k8s-app: traefik-ingress-lb
name: traefik-ingress-lb
spec:
terminationGracePeriodSeconds: 60
hostNetwork: true
restartPolicy: Always
containers:
- image: traefik:latest
imagePullPolicy: IfNotPresent
name: traefik-ingress-lb
resources:
limits:
cpu: 200m
memory: 30Mi
requests:
cpu: 100m
memory: 20Mi
ports:
- name: http
containerPort: 80
hostPort: 80
- name: admin
containerPort: 8580
args:
- --web
- --web.address=:8580
- --kubernetes
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-ingress
namespace: kube-system
spec:
rules:
- host: cnxxx.cn
http:
paths:
- path: /
backend:
serviceName: tomcat-dm
servicePort: 8087
- host: cx.cn
http:
paths:
- path: /
backend:
serviceName: nginx-dm
servicePort: 8088