ETCD - Управление: различия между версиями
Материал из support.qbpro.ru
Vix (обсуждение | вклад) Нет описания правки |
Vix (обсуждение | вклад) Нет описания правки |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 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 cluster-health | ||
etcdctl --user root endpoint health | |||
.. | .. | ||
etcdctl member list | etcdctl member list | ||
Строка 24: | Строка 44: | ||
* Удаление namespace (с авторизацией): | * Удаление namespace (с авторизацией): | ||
etcdctl --username root rm --recursive mynamespace | 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"