2017-02-05 5 views
0

RegistratorをGCE & K8sで使用しようとしています。 `Registrator 'を除いてすべてが正常に起動します。ここで領事と登録者がKubernetesで働くようにする

は私の展開です:ここでは

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: {} 

は、ログ出力です: 領事: enter image description here レジ: enter image description here

すべてが正常に動作しますが、私は持っていないドッキングウィンドウ-構成で私の頭はK8sとGCEの周りに完成しました。助けてくれてありがとう!

+0

組み込みのPod Labels/Service Label Queriesとサービス検出のエンドポイントではなく、領事/登録者を好む理由を説明できますか? Kubernetesは、デプロイメントの検出と負荷分散のための統合された方法を提供するという点で、Composeとは異なります。 –

+0

私のアプリケーションの中で、私はconsul apiを使用して、通信しなければならない他のアプリケーションのホストとポートを照会します。私はK8sがetcdを使用していることを知っていますが、まだ使用していません。 – Tino

+0

k8であなたは直接etcdと話をしません。あなたはサービスAPIを持っています(ただし、DNSを使って抽象化されています)。プラグインも可能なので、Linkerdやその他のものを使うことができます。領事にもk8sコントローラが必要です(登録者が必要ないので) –

答えて

1

k8sと一緒にうまく動作するLinkerdに切り替えました。

+0

甘い、あなたの経験を書き留める時間があれば、ブログ記事をリンクしてください:D –

関連する問題