2017-11-03 3 views
1

Ich habe 2 Cluster in Azure für 2 verschiedene Availability Zones ausgeführt und möchte die etcd-Masters nach https://kubernetes.io/docs/admin/high-availability/#replicated-api-servers clustern.Kubernetes High-Availability Masters

Ich habe das Discovery Token für 3 Master erstellt. Wenn ich versuche, Container zu initialisieren, schlägt es fehl:

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. 

Beide Cluster wurden von Acs-Engine in verschiedenen AZ erstellt. Ist das ein Problem mit 2 verschiedenen Clustern? Wenn ja, wie kann ich HA in diesem Szenario tun? Ich versuche das, weil die Föderation noch nicht bereit für die Produktion ist.

Ich bin total darauf eingesperrt.

Ich würde wirklich einige Hilfe zu diesem Thema schätzen.

Danke.

Antwort

0

Hoch verfügbare Setups für Kubernetes-Master gehen davon aus, dass Sie mehrere Master innerhalb desselben Clusters betreiben (normalerweise 3, damit Sie ein Voting-Quorum haben können). Ihre aktuelle Konfiguration besteht aus 2 separaten 1-Master-Clustern.

Wenn Sie mehrere Cluster haben, sollten Sie sich Cluster Federation ansehen, obwohl ich wetten würde, dass dies nicht das ist, was Sie wollen, da Sie im Allgemeinen auch Cluster mit jeweils drei Master-Setups haben.

Wenn Sie es sich nicht leisten können, Ihre bestehenden Cluster zu zerstören und sie bereits im HA-Modus zu booten, empfehle ich Ihnen diese hervorragende guide for migrating from single to multiple master setups sowie die Verwendung von kops für diese Art von Operationen.

+0

Vielen Dank für das Betrachten. Ich muss all dies auf MS Azure durchführen, also ist das einzige Werkzeug, das ich habe, eine Acs-Engine. Ich sehe, dass Kops offiziell für AWS ist, was heute nicht mein Szenario ist. Jetzt stell dir vor, ich kann die Anzahl der Masterknoten noch erhöhen. Auf der anderen Seite läuft mein 2 k8s Cluster auf 2 verschiedenen AZ. Wie kann ich einen überregionalen Cluster-Master erreichen und alle synchronisieren? Dies ist eine Produktionsbereitstellung, für die Federation noch nicht bereit ist, weder für MS Azure. Glaubst du, dass es möglich ist? Weißt du, warum Discovery-Service meinen anderen Master nicht in einer anderen Zone erkennt? Tks! –

+0

Ist das die einzige Möglichkeit, die Anzahl der Instanzen pro Cluster zu erhöhen, um das Quorum von etcd-Knoten zu erhöhen? –

+0

Das Backend, das von API-Servern verwendet wird, ist usw.d. Daher müssen die etcd-Knoten in einem Cluster selbst und nicht als 2 eigenständige Knoten konfiguriert werden. – vascop

Verwandte Themen