Налаштування локального кластера
Для тестування та розробки найшвидший і найпростіший спосіб — налаштувати локальний кластер. Для розгортання в операційному середовищі зверніться до розділу кластеризація.
Локальний автономний кластер
Запуск кластера
Виконайте наступне, щоб розгорнути кластер etcd як автономний кластер:
$ ./etcd
...
Якщо бінарний файл etcd не присутній у поточній робочій теці, він може знаходитися або в $GOPATH/bin/etcd, або в /usr/local/bin/etcd. Виконайте команду відповідно.
Запущений член etcd слухає на localhost:2379 для клієнтських запитів.
Взаємодія з кластером
Використовуйте etcdctl для взаємодії з запущеним кластером:
Збережіть приклад пари ключ-значення в кластері:
$ ./etcdctl put foo bar OKЯкщо надруковано OK, збереження пари ключ-значення успішне.
Отримайте значення
foo:$ ./etcdctl get foo barЯкщо повертається
bar, взаємодія з кластером etcd працює як очікується.
Локальний кластер з кількома членами
Запуск кластера
Procfile у корені git-репозиторію etcd надається для легкого налаштування локального кластера з кількома членами. Щоб запустити кластер з кількома членами, перейдіть до кореня дерева вихідного коду etcd і виконайте наступне:
Встановіть
goremanдля керування застосунками на основі Procfile:$ go install github.com/mattn/goreman@latestЗапустіть кластер за допомогою
goreman, використовуючи стандартний Procfile etcd:$ goreman -f Procfile startЧлени починають працювати. Вони слухають на
localhost:2379,localhost:22379таlocalhost:32379відповідно для клієнтських запитів.
Взаємодія з кластером
Використовуйте etcdctl для взаємодії з запущеним кластером:
Надрукуйте список членів:
$ etcdctl --write-out=table --endpoints=localhost:2379 member listСписок членів etcd відображається наступним чином:
+------------------+---------+--------+------------------------+------------------------+ | ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | +------------------+---------+--------+------------------------+------------------------+ | 8211f1d0f64f3269 | started | infra1 | http://127.0.0.1:2380 | http://127.0.0.1:2379 | | 91bc3c398fb3c146 | started | infra2 | http://127.0.0.1:22380 | http://127.0.0.1:22379 | | fd422379fda50e48 | started | infra3 | http://127.0.0.1:32380 | http://127.0.0.1:32379 | +------------------+---------+--------+------------------------+------------------------+Збережіть приклад пари ключ-значення в кластері:
$ etcdctl put foo bar OKЯкщо надруковано OK, збереження пари ключ-значення успішне.
Тестування відмовостійкості
Щоб перевірити відмовостійкість etcd, зупиніть одного з членів і спробуйте отримати ключ.
Визначте імʼя процесу члена, якого потрібно зупинити.
Procfileмістить властивості кластера з кількома членами. Наприклад, розглянемо члена з імʼям процесуetcd2.Зупиніть члена:
# kill etcd2 $ goreman run stop etcd2Збережіть ключ:
$ etcdctl put key hello OKОтримайте ключ, збережений на попередньому кроці:
$ etcdctl get key helloОтримайте ключ від зупиненого члена:
$ etcdctl --endpoints=localhost:22379 get keyКоманда повинна відобразити помилку, викликану збоєм зʼєднання:
2017/06/18 23:07:35 grpc: Conn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 127.0.0.1:22379: getsockopt: connection refused"; Reconnecting to "localhost:22379" Error: grpc: timed out trying to connectПерезапустіть зупиненого члена:
$ goreman run restart etcd2Отримайте ключ від перезапущеного члена:
$ etcdctl --endpoints=localhost:22379 get key helloПерезапуск члена відновлює зʼєднання.
etcdctlтепер зможе успішно отримати ключ. Щоб дізнатися більше про взаємодію з etcd, прочитайте розділ взаємодія з etcd.
Відгук
Чи це було корисним?
Раді чути! Будь ласка, повідомте нам, як ми можемо зробити краще.
Дуже шкода це чути. Будь ласка, повідомте нам, як ми можемо зробити краще.