Schritt 2 – Konfiguration des etcd-Clusters

In diesem Schritt konfigurieren und starten Sie den etcd-Dienst auf Datenbankserver 1, Datenbankserver 2 und dem dedizierten etcd-Server, um Hochverfügbarkeit zu ermöglichen. Sie konfigurieren und starten den etcd-Dienst auf jedem etcd-Server. Anschließend überprüfen Sie den Cluster-Zustand, indem Sie ein Test-Schlüssel-Wert-Paar speichern und abrufen sowie den Status aller Knoten mit etcdctl-Befehlen prüfen..

Konfigurieren und starten Sie den etcd-Dienst auf Datenbankserver 1, Datenbankserver 2 und dem dedizierten etcd-Server:

  1. Bearbeiten Sie die Datei C:\PES\etcd\etcd.yaml. Ändern Sie die Felder name und data-dir auf die folgenden Werte:
    'etcd-1' und etcd-1.etcd für Database Server 1
    'etcd-2' und etcd-2.etcd für Database Server 2
    'etcd-3' und etcd-3.etcd für den dedizierten etcd Server
  2. Setzen Sie die Felder initial-advertise-peer-urls und advertise-client-urls auf

    http://<IP of local server>:2380

    und

    http://<IP of local server>:2379

  3. Setzen Sie das Feld initial-cluster auf
    "etcd-1=http://<IP of Database Server 1>:2380,etcd-2=http://<IP of Database Server 2>:2380,etcd-3=http://<IP of Dedicated etcd Server>:2380", listing all servers that are part of the etcd cluster
    Zum Beispiel, unter der Annahme der folgenden IP-Adressen:
    192.168.178.88 für Database Server 1,
    192.168.178.89 für Database Server 2,
    192.168.178.90 für Dedicated etcd Server
    Die Datei C:\PES\etcd\etcd.yaml für Database Server 2 würde wie folgt aussehen:
    name: 'etcd-2'
    data-dir: etcd-2.etcd
    heartbeat-interval: 100
    election-timeout: 1000
    listen-peer-urls: http://0.0.0.0:2380
    listen-client-urls: http://0.0.0.0:2379
    initial-advertise-peer-urls: http://192.168.178.89:2380
    advertise-client-urls: http://192.168.178.89:2379
    initial-cluster: etcd-1=http://192.168.178.88:2380,etcd-2=http://192.168.178.89:2380,etcd-3=http://192.168.178.90:2380
    initial-cluster-token: 'etcd-cluster'
    initial-cluster-state: 'new'
    enable-v2: true
  4. Starten Sie den etcd-Cluster:
    • Beenden Sie den etcd service auf der Registerkarte Dienste des Task-Managers auf allen Computern, falls er bereits läuft.
    • Löschen Sie das Verzeichnis C:\PES\etcd\patroni-<etcd Server-Nummer>.etcd auf allen Computern.
    • Starten Sie den etcd-Dienst auf allen Computern nacheinander über die Registerkarte Dienste im Task-Manager.
  5. Überprüfen Sie die Verfügbarkeit des etcd-Clusters, indem Sie mit dem put-Befehl ein Test-Schlüssel-Wert-Paar speichern und anschließend abrufen:
    C:\PES\etcd>etcdctl.exe put testKey testVal
    OK
    auf einem der Rechner und den get-Befehl auf allen etcd-Rechnern:
    C:\PES\etcd>etcdctl.exe get testKey
    testKey
    testVal

    Der get-Befehl sollte auf allen Computern testValue zurückgeben, wie oben gezeigt. Dies zeigt an, dass alle drei etcd nodes korrekt miteinander kommunizieren. Zusätzlich kann der Status für den gesamten etcd-Cluster bzw. alle etcd-Knote abgefragt werden:

C:\PES\etcd>etcdctl endpoint status --cluster -w=table

+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|        ENDPOINT            |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| http://192.168.178.88:2379 |  5664a8f05990a10 |  3.5.21 |   98 kB |     false |      false |         2 |        286 |                286 |        |
| http://192.168.178.89:2379 | d2fe156a4f8f92ae |  3.5.21 |   98 kB |     false |      false |         2 |        286 |                286 |        |
| http://192.168.178.90:2379 | dd30186661e66c2c |  3.5.21 |   98 kB |      true |      false |         2 |        286 |                286 |        |
+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
Der Gesundheitszustand jedes einzelnen Knotens kann auch separat abgefragt werden:
C:\PES\etcd>etcdctl.exe endpoint health
127.0.0.1:2379 is healthy: successfully committed proposal: took = 4.7686ms