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: {}
すべてが正常に動作しますが、私は持っていないドッキングウィンドウ-構成で私の頭はK8sとGCEの周りに完成しました。助けてくれてありがとう!
組み込みのPod Labels/Service Label Queriesとサービス検出のエンドポイントではなく、領事/登録者を好む理由を説明できますか? Kubernetesは、デプロイメントの検出と負荷分散のための統合された方法を提供するという点で、Composeとは異なります。 –
私のアプリケーションの中で、私はconsul apiを使用して、通信しなければならない他のアプリケーションのホストとポートを照会します。私はK8sがetcdを使用していることを知っていますが、まだ使用していません。 – Tino
k8であなたは直接etcdと話をしません。あなたはサービスAPIを持っています(ただし、DNSを使って抽象化されています)。プラグインも可能なので、Linkerdやその他のものを使うことができます。領事にもk8sコントローラが必要です(登録者が必要ないので) –