首页 > 代码库 > 确实,k8s的时代,ingress负载用traefik比nginx方便啊

确实,k8s的时代,ingress负载用traefik比nginx方便啊

参考文档:

https://mritd.me/2016/12/06/try-traefik-on-kubernetes/#13ingress

由于微服务架构以及 Docker 技术和 kubernetes 编排工具最近几年才开始逐渐流行,所以一开始的反向代理服务器比如 nginx、apache 并未提供其支持,毕竟他们也不是先知;所以才会出现 Ingress Controller 这种东西来做 kubernetes 和前端负载均衡器如 nginx 之间做衔接;即 Ingress Controller 的存在就是为了能跟 kubernetes 交互,又能写 nginx 配置,还能 reload 它,这是一种折中方案;而最近开始出现的 traefik 天生就是提供了对 kubernetes 的支持,也就是说 traefik 本身就能跟 kubernetes API 交互,感知后端变化,因此可以得知: 在使用 traefik 时,Ingress Controller 已经无卵用了!

技术分享

 

apiVersion: extensions/v1beta1kind: DaemonSetmetadata:  name: traefik-ingress-lb  namespace: kube-system  labels:    k8s-app: traefik-ingress-lbspec:  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/v1beta1kind: Ingressmetadata:  name: traefik-ingress  namespace: kube-systemspec:  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

技术分享技术分享

确实,k8s的时代,ingress负载用traefik比nginx方便啊