同期システムとデータストアとしてetcdを使用するアプリケーションを実行しているpod/serviceがあります。私はポッド内でetcdを実行して、すべてのレプリカが一貫したクラスタを形成するようにしたい。つまり、レプリカ#1のアプリケーションはlocalhost:4001/v2/keys/my_key
に "foo"を書き込むことができ、次にレプリカ#2はlocalhost:4001/v2/keys/my_key
を読み込み、結果として "foo"を得ることができます。ポッドレプリカ間でetcdクラスタを実行する方法は?
ポッドレプリカは個別にアドレス指定できないため、これをどのように行うことができるかは不明です。私は理論的には、クラスタポートを公開する "etcd"サービスを作成することができましたが、すべての要求はすべてのレプリカにラウンドロビンされ、個々のetcdノードはお互いを見つけることができませんでした。
私はこの問題に正しい方法で近づいていますか?
あなたは 'apiVersion:etcd.coreos.com/v1beta1'と' kind:Cluster'を使っていますが、etcd-operatorの例では 'apiVersion:etcd.database.coreos.com/v1beta2'と' kind:EtcdCluster'を使っています。違いは何ですか? https://github.com/coreos/etcd-operator/blob/master/example/example-etcd-cluster.yaml – akauppi