首页 文章

Traveik on Kubernetes(GCE / GKE)背后的GCE Load Balancer

提问于
浏览
4

我已经在User Guide之后在Kubernetes上实施了Traefik . 这给了我一个入口控制器,我能够在80和8080上创建一个入口和traefik-ingress服务 .

我还设置了一个“gce”入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-ingress
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: "gce"
spec:
  tls:
    - secretName: fasedge-tls
  backend:
    serviceName: traefik-ingress-service
    servicePort: 80

这样做是创建一个GCE负载均衡器,它终止我的TLS并应将所有请求转发到类型为NodePort的traefik-ingress-service .

GCE负载均衡器需要进行 Health 检查 . 默认值为路径“/” . 我以为traefik有一个“/ ping”所以我把 Health 检查改为了 . 但无论我做什么,我都无法通过 Health 检查,因此,我的GCE负载均衡器不 Health ,不会将任何请求转发给traefik .

一些参考文献说要将Traefik lb服务从NodePort更改为LoadBalancer,但除了我的Ingress处理SSL终止之外,它应该与我上面的Ingress完全相同 .

其他人这样做吗?

1 回答

  • 6

    获取运行状况检查以在gce负载均衡器上工作的方法是向traefik容器添加参数 . --ping--ping.entrypoint=http 允许我为 /ping 路径设置gce运行状况检查 .

    apiVersion: apps/v1beta2
    kind: Deployment
    metadata:
      name: traefik-ingress-controller
      namespace: kube-system
      labels:
        app: traefik-ingress-controller
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: traefik-ingress-controller
      template:
        metadata:
          labels:
            app: traefik-ingress-controller
            name: traefik-ingress-controller
        spec:
          serviceAccountName: traefik-ingress-controller
          terminationGracePeriodSeconds: 60
          containers:
            - name: traefik-ingress-controller
              image: "traefik:v1.5.2"
              args:
              - --api
              - --kubernetes
              - --ping
              - --ping.entrypoint=http
    

相关问题