【问题标题】:How do I run traefik behind Kubernetes on Google Container Engine?如何在 Google Container Engine 上的 Kubernetes 后面运行 traefik?
【发布时间】:2016-12-01 01:56:41
【问题描述】:

所以我在 Kubernetes 上“运行”了 Traefik:

apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: '{"kind":"Service","apiVersion":"v1","metadata":{"name":"traefik","namespace":"kube-system","creationTimestamp":null,"labels":{"k8s-app":"traefik-ingress-lb"}},"spec":{"ports":[{"name":"http","port":80,"targetPort":80},{"name":"https","port":443,"targetPort":443}],"selector":{"k8s-app":"traefik-ingress-lb"},"type":"LoadBalancer"},"status":{"loadBalancer":{}}}'
  creationTimestamp: 2016-11-30T23:15:49Z
  labels:
    k8s-app: traefik-ingress-lb
  name: traefik
  namespace: kube-system
  resourceVersion: "9672"
  selfLink: /api/v1/namespaces/kube-system/services/traefik
  uid: ee07b957-b752-11e6-88fa-42010af00083
spec:
  clusterIP: 10.11.251.200
  ports:
  - name: http
    nodePort: 30297
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    nodePort: 30247
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    k8s-app: traefik-ingress-lb
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: # IP THAT IS ALLOCATED BY k8s BUT NOT ASSIGNED
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
    kubectl.kubernetes.io/last-applied-configuration: '###'
creationTimestamp: 2016-11-30T22:59:07Z
  generation: 2
  labels:
    k8s-app: traefik-ingress-lb
  name: traefik-ingress-controller
  namespace: kube-system
  resourceVersion: "23438"
  selfLink: /apis/extensions/v1beta1/namespaces/kube-system/deployments/traefik-ingress-controller
  uid: 9919ff46-b750-11e6-88fa-42010af00083
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: traefik-ingress-lb
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s-app: traefik-ingress-lb
        name: traefik-ingress-lb
        version: v1.1
    spec:
      containers:
      - args:
        - --web
        - --kubernetes
        - --configFile=/etc/config/traefik.toml
        - --logLevel=DEBUG
        image: gcr.io/myproject/traefik
        imagePullPolicy: Always
        name: traefik-ingress-lb
        ports:
        - containerPort: 80
          hostPort: 80
          protocol: TCP
        - containerPort: 8080
          protocol: TCP
        resources:
          limits:
            cpu: 200m
            memory: 30Mi
          requests:
            cpu: 100m
            memory: 20Mi
        terminationMessagePath: /dev/termination-log
        volumeMounts:
        - mountPath: /etc/config
          name: config-volume
        - mountPath: /etc/traefik
          name: traefik-volume
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      securityContext: {}
      terminationGracePeriodSeconds: 60
      volumes:
      - configMap:
          defaultMode: 420
          name: traefik-config
        name: config-volume
      - emptyDir: {}
        name: traefik-volume
status:
  observedGeneration: 2
  replicas: 1
  unavailableReplicas: 1
  updatedReplicas: 1

我的问题是Kubernetes分配的外部IP实际上并没有转发给Traefik;事实上,分配的 IP 甚至没有出现在我的 Google Cloud Platform 控制台中。如何让 Traefik 在 Google Container Engine 上使用负载均衡器?

【问题讨论】:

    标签: kubernetes devops google-kubernetes-engine


    【解决方案1】:

    如果你这样做

    kubectl describe svc/traefik

    endpoints 是否与以下 IP 匹配:

    kubectl get po -lk8s-app=traefik-ingress-lb -o wide

    当你命中 LB IP 时会发生什么?它是无限期加载,还是您获得不同的服务?

    【讨论】:

      【解决方案2】:

      Traefik 有一个新的分支,据说可以修复一些 kubernetes 问题。然而,我进一步阅读和谈论了 Traefik,并发现了一些(最近的)潜在不稳定的建议。虽然这在新软件中是可以预料的,但我决定切换到 NGINX 来处理我的反向代理。它运行得非常好,所以我将继续解决这个问题。

      【讨论】:

        猜你喜欢
        • 2017-03-26
        • 2016-06-01
        • 1970-01-01
        • 2018-01-09
        • 1970-01-01
        • 2017-09-07
        • 1970-01-01
        • 2017-10-05
        • 2018-12-25
        相关资源
        最近更新 更多