让 Consul 和 Registrator 在 Kubernetes 中工作

Getting Consul and Registrator to work in Kubernetes

我正在尝试在 GCE 和 K8s 中使用 ConsulRegistrator。除“Registrator”外,一切正常。

这是我的部署:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  creationTimestamp: null
  name: consul
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        service: consul
    spec:
      restartPolicy: Always
      containers:
        - name: consul
          image: eu.gcr.io/xxx/consul
          ports:
          - containerPort: 8300
            protocol: TCP
          - containerPort: 8400
            protocol: TCP
          - containerPort: 8500
            protocol: TCP
          - containerPort: 53
            protocol: UDP
          env:
            - name: MY_POD_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
          args:
            - -server
            - -bootstrap
            - -advertise=$(MY_POD_IP)

        - name: registrator
          args:
            - -internal
            - -ip=$(MY_POD_IP)
            - consul://localhost:8500
          env:
            - name: MY_POD_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
          image: eu.gcr.io/xxx/registrator
          volumeMounts:
            - mountPath: /tmp/docker.sock
              name: registrator-claim0
      volumes:
        - name: registrator-claim0 
          persistentVolumeClaim:
            claimName: registrator-claim0
status: {}

这是日志输出: 领事: 登记员:

在 docker-compose 中一切正常,但我还没有完全了解 K8s 和 GCE。感谢您的帮助!

我已经切换到 Linkerd,它与 k8s 配合得很好。