ETCD - Управление: различия между версиями

Материал из support.qbpro.ru
Нет описания правки
Нет описания правки
 
(не показано 18 промежуточных версий этого же участника)
Строка 1: Строка 1:
* Создать пользователя root:
==Базовые команды==
* Создать пользователя root (для разных уровней создается root в 2х API):
1. '''export ETCDCTL_API=2'''
  etcdctl user add root
  etcdctl user add root
etcdctl user grant root --roles root
или
ETCDCTL_API=2 etcdctl user add root
ETCDCTL_API=2 etcdctl user grant root --roles root
2. '''export ETCDCTL_API=3'''
etcdctl user add root
etcdctl user grant-role root root
или
ETCDCTL_API=3 etcdctl user add root
ETCDCTL_API=3 etcdctl user grant-role root root
<br>
* Задать пароль пользователю root:
* Задать пароль пользователю root:
  etcdctl user passwd root
  etcdctl user passwd root
* Дать другому пользователю права root:
* Дать другому пользователю права root:
  etcdctl user grant user1 --roles root
  etcdctl user grant user1 --roles root
Строка 12: Строка 28:
* Добавить клиента (хост) в кластер:
* Добавить клиента (хост) в кластер:
  etcdctl member add newhost http://newhost.net:2380
  etcdctl member add newhost http://newhost.net:2380
или
ETCDCTL_API=3 etcdctl member add myhost --peer-urls=http://myhost.net:2380
<br>
* Сделать бакап кластера:
* Сделать бакап кластера:
  etcdctl backup --data-dir /var/lib/etcd/default --backup-dir /backup/bak-etcd.db
  etcdctl backup --data-dir /var/lib/etcd/default --backup-dir /backup/bak-etcd.db
* Проверить состояние кластера:
etcdctl cluster-health
etcdctl --user root endpoint health
..
etcdctl member list
..
curl http://localhost:2379/v2/keys/'namespace'/'claster_name'/members/ | jq
* Рекурсивный просмотр по namespace:
etcdctl ls --recursive
* Удаление namespace (с авторизацией):
etcdctl --username root rm --recursive mynamespace
* Запрос текущего wal_segments (с авторизацией):
etcdctl --username root get /mynamespace/clastername/initialize
* Для того чтобы переназначить Leader, необходимо сначала переключиться в API=3 и потом выполнить команду выбора:
export ETCDCTL_API=3
etcdctl move-leader id-of-the-node-you-want-to-be-the-leader # в конце ID будущего Leader
или
etcdctl --user root move-leader (ID)
* Проверить состояние участников
etcdctl --cluster=true endpoint health
==ОШИБКИ & РЕШЕНИЯ==
* При просмотре в '''ETCDCTL_API=2''' member list - выдает: '''unexpected status code 404'''
**'''Причина:''' в последней версии '''etcd''' (3.4.* и выше), по умолчанию '''API-2''' выключен.
**'''Решение:''' в /etc/default/etcd, добавить:
#[Member]
...
'''ETCD_ENABLE_V2="true"'''
** и перезапустить etcd.
** !~ Аналогично можно указать и для поддержки API3: '''ETCD_ENABLE_V3="true"'''
==ПОЛЕЗНОЕ==
* [https://russianblogs.com/article/41951650812/ Руководство для начинающих ETCD]
* [https://dotsandbrackets.com/quick-intro-etcd-ru/ Краткое введение в etcd]
* [https://etcd.io/docs/v3.5/op-guide/configuration/#clustering ETCD DOCS]

Текущая версия от 19:59, 14 мая 2024

Базовые команды

  • Создать пользователя root (для разных уровней создается root в 2х API):

1. export ETCDCTL_API=2

etcdctl user add root
etcdctl user grant root --roles root

или

ETCDCTL_API=2 etcdctl user add root
ETCDCTL_API=2 etcdctl user grant root --roles root

2. export ETCDCTL_API=3

etcdctl user add root
etcdctl user grant-role root root

или

ETCDCTL_API=3 etcdctl user add root
ETCDCTL_API=3 etcdctl user grant-role root root


  • Задать пароль пользователю root:
etcdctl user passwd root
  • Дать другому пользователю права root:
etcdctl user grant user1 --roles root
  • Запросить данные пользователя (с авторизацией):
etcdctl --username root user get root
  • Удалить из кластера (пример с авторизацией):
etcdctl --username root member remove c7ca032d5e048ee1

  • Добавить клиента (хост) в кластер:
etcdctl member add newhost http://newhost.net:2380

или

ETCDCTL_API=3 etcdctl member add myhost --peer-urls=http://myhost.net:2380


  • Сделать бакап кластера:
etcdctl backup --data-dir /var/lib/etcd/default --backup-dir /backup/bak-etcd.db
  • Проверить состояние кластера:
etcdctl cluster-health
etcdctl --user root endpoint health
..
etcdctl member list
..
curl http://localhost:2379/v2/keys/'namespace'/'claster_name'/members/ | jq
  • Рекурсивный просмотр по namespace:
etcdctl ls --recursive
  • Удаление namespace (с авторизацией):
etcdctl --username root rm --recursive mynamespace
  • Запрос текущего wal_segments (с авторизацией):
etcdctl --username root get /mynamespace/clastername/initialize
  • Для того чтобы переназначить Leader, необходимо сначала переключиться в API=3 и потом выполнить команду выбора:
export ETCDCTL_API=3
etcdctl move-leader id-of-the-node-you-want-to-be-the-leader # в конце ID будущего Leader
или
etcdctl --user root move-leader (ID)
  • Проверить состояние участников
etcdctl --cluster=true endpoint health

ОШИБКИ & РЕШЕНИЯ

  • При просмотре в ETCDCTL_API=2 member list - выдает: unexpected status code 404
    • Причина: в последней версии etcd (3.4.* и выше), по умолчанию API-2 выключен.
    • Решение: в /etc/default/etcd, добавить:
#[Member]
...
ETCD_ENABLE_V2="true"
    • и перезапустить etcd.
    • !~ Аналогично можно указать и для поддержки API3: ETCD_ENABLE_V3="true"

ПОЛЕЗНОЕ