2017-11-03 10 views
1

2つの異なるアベイラビリティゾーンで2つのクラスタがAzureで実行されていますので、https://kubernetes.io/docs/admin/high-availability/#replicated-api-serversの後にetcdマスターをクラスタリングしたいと思います。Kubernetes高可用性マスター

私は3つのマスターのための発見トークンを作成しました。私がinit etcdコンテナにしようとすると失敗します:

2017-10-27 20:28:17.554393 I | etcdmain: etcd Version: 3.0.17 
2017-10-27 20:28:17.554435 I | etcdmain: Git SHA: cc198e2 
2017-10-27 20:28:17.554441 I | etcdmain: Go Version: go1.6.4 
2017-10-27 20:28:17.554444 I | etcdmain: Go OS/Arch: linux/amd64 
2017-10-27 20:28:17.554448 I | etcdmain: setting maximum number of CPUs to 2, total number of available CPUs is 2 
2017-10-27 20:28:17.554511 N | etcdmain: the server is already initialized as member before, starting as etcd member... 
2017-10-27 20:28:17.554570 I | etcdmain: listening for peers on http://127.0.0.1:2380 
2017-10-27 20:28:17.554594 I | etcdmain: listening for client requests on 127.0.0.1:4001 
2017-10-27 20:28:17.868368 I | etcdmain: stopping listening for client requests on 127.0.0.1:4001 
2017-10-27 20:28:17.868395 I | etcdmain: stopping listening for peers on http://127.0.0.1:2380 
2017-10-27 20:28:17.868403 E | etcdmain: member "node-1" has previously registered with discovery service token (https://discovery.etcd.io/457f96956adb17ca0cc372e77b4e1420). 
2017-10-27 20:28:17.868408 E | etcdmain: But etcd could not find valid cluster configuration in the given data dir (/var/etcd/data). 
2017-10-27 20:28:17.868411 I | etcdmain: Please check the given data dir path if the previous bootstrap succeeded 
2017-10-27 20:28:17.868462 I | etcdmain: or use a new discovery token if the previous bootstrap failed. 

両方のクラスタは、異なるAZのacs-engineによって作成されました。それは2つの異なるクラスタを持つことに関連する問題ですか?もしそうなら、このシナリオではどのようにHAを行うことができますか?私は連邦準備制度がまだ生産の準備ができていないので、それを試しています。

私は完全にロックされています。

私は本当にこれについていくつかの助けに感謝します。

ありがとうございました。

答えて

0

Kubernetesマスタの高度な設定では、同じクラスタ内に複数(通常は3つの投票クォーラムを持つことができるため)のマスタを実行していることが前提です。現在のセットアップは、2つの独立した1マスタークラスターで構成されています。

複数のクラスタがある場合、通常は3つのマスターセットアップを持つフェデレーションクラスタを持つので、これはあなたが望むものではないと思いますが、Cluster Federationを参照してください。

既存のクラスタを破壊してHAモードで起動することができない場合は、このタイプの操作にkopsを使用することを考慮して、この優れたguide for migrating from single to multiple master setupsを提案します。

+0

ありがとうございました。私はMS Azureでこれをすべて実行しなければならないので、私が持っている唯一のツールはacs-engineです。私は今日の私のシナリオではないAWSのためにkopsが公式だと思う。マスターノードの数を増やすことができます。一方、私の2 k8sクラスタは、2つの異なるAZで動作します。どのようにしてリージョン間のクラスタマスターに到達し、すべて同期させることができますか?これは実稼働環境の展開であり、Federationはまだ準備が整っておらず、MS Azureのための準備もできていません。あなたはその可能性を信じますか?ディスカバリーサービスが別のゾーンで他のマスターを認識できない理由を知っていますか? Tks! –

+0

etcdノードのクォーラムを増やすためにインスタンスのクラスタごとの数を増やさなければならないのは、それが唯一の方法ですか? –

+0

APIサーバーが使用するバックエンドはetcdなので、etcdノードは2つのスタンドアロンノードではなく、クラスター自体で構成する必要があります。 – vascop

関連する問題