確實,k8s的時代,ingress負載用traefik比nginx方便啊

參考文檔:前端

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

相關文章
相關標籤/搜索