🐰 Как установить etcd на RHEL / CentOS 8 |

🐰 Как установить etcd на RHEL / CentOS 8

Мануал

В этом руководстве объясняется, как установить etcd на RHEL / CentOS 8. Etcd – это простое, надежное, быстрое и безопасное хранилище ключей с открытым исходным кодом, написанное на Go.

Оно использует алгоритм консенсуса Raft для управления реплицируемым журналом высокой доступности.

Общая установка не предназначена для использования в производственных средах, так как она находится на одном узле (один член и т. д.).

Установите etcd на RHEL / CentOS 8

Будучи написанным на Go, etcd распространяется в виде бинарного пакета, но также возможна установка из исходного кода.

В этом руководстве мы собираемся скачать готовый двоичный пакет.

Убедитесь, что на вашем сервере RHEL / CentOS 8 установлены vim и wget.

sudo dnf -y install curl vim

Шаг 1: Скачайте двоичный файл Etcd

Проверьте последнюю версию на странице релизов, прежде чем продолжить, чтобы получить последний тег выпуска

export RELEASE="3.3.12"
wget https://github.com/etcd-io/etcd/releases/download/v${RELEASE}/etcd-v${RELEASE}-linux-amd64.tar.gz

Распакуйте скачанный архивный файл.

tar xvf etcd-v${RELEASE}-linux-amd64.tar.gz

Перейдите в новый каталог

cd etcd-v${RELEASE}-linux-amd64

Переместите двоичные файлы etcd и etcdctl в каталог /usr/local/bin.

sudo mv etcd etcdctl /usr/local/bin

Подтвердите версию.

$ etcd --version
etcd Version: 3.3.12
Git SHA: d57e8b8
Go Version: go1.10.8
Go OS/Arch: linux/amd64

Шаг 2: Настройте службу Etcd Systemd

Мы собираемся использовать systemd для управления сервисом etcd.

Сначала создайте каталог данных для etcd.

sudo mkdir -p /var/lib/etcd/
sudo mkdir /etc/etcd

Создайте системного пользователя etcd

sudo groupadd --system etcd
sudo useradd -s /sbin/nologin --system -g etcd etcd

Установите владельцем каталога /var/lib/etcd/ пользователя etcd.

sudo chown -R etcd:etcd /var/lib/etcd/

Настройте Systemd и запустите службу etcd

Создайте новый файл службы systemd для etcd.

 sudo vim /etc/systemd/system/etcd.service

Вставьте содержимое в файл.

[Unit]
Description=etcd key-value store
Documentation=https://github.com/etcd-io/etcd
After=network.target

[Service]
User=etcd
Type=notify
Environment=ETCD_DATA_DIR=/var/lib/etcd
Environment=ETCD_NAME=%m
ExecStart=/usr/local/bin/etcd
Restart=always
RestartSec=10s
LimitNOFILE=40000

[Install]
WantedBy=multi-user.target

Перезагрузите сервис systemd и запустите etcd

sudo systemctl  daemon-reload
sudo systemctl  start etcd.service

Если у вас SELinux работает в принудительном режиме, то сгенерируйте модуль локальной политики, чтобы разрешить доступ к каталогам данных.

sudo ausearch -c '(etcd)' --raw | audit2allow -M my-etcd

Чтобы сделать этот пакет политики активным, выполните:

sudo semodule -X 300 -i my-etcd.pp
sudo restorecon -Rv /usr/local/bin/etcd

Перезапустите службу etcd.

sudo systemctl restart etcd

Проверьте статус службы, чтобы подтвердить, что она работает.

]# systemctl status etcd
 ● etcd.service - etcd key-value store
    Loaded: loaded (/etc/systemd/system/etcd.service; disabled; vendor preset: disabled)
    Active: active (running) since Fri 2019-03-22 22:38:07 EAT; 36s ago
      Docs: https://github.com/etcd-io/etcd
  Main PID: 1938 (etcd)
     Tasks: 10 (limit: 11510)
    Memory: 3.7M
    CGroup: /system.slice/etcd.service
            └─1938 /usr/local/bin/etcd
 Mar 22 22:38:05 rhel8.local etcd[1938]: enabled capabilities for version 3.3
 Mar 22 22:38:07 rhel8.local etcd[1938]: 8e9e05c52164694d is starting a new election at term 2
 Mar 22 22:38:07 rhel8.local etcd[1938]: 8e9e05c52164694d became candidate at term 3
 Mar 22 22:38:07 rhel8.local etcd[1938]: 8e9e05c52164694d received MsgVoteResp from 8e9e05c52164694d at term 3
 Mar 22 22:38:07 rhel8.local etcd[1938]: 8e9e05c52164694d became leader at term 3
 Mar 22 22:38:07 rhel8.local etcd[1938]: raft.node: 8e9e05c52164694d elected leader 8e9e05c52164694d at term 3
 Mar 22 22:38:07 rhel8.local etcd[1938]: published {Name:992462394b1c4f2e80e7e2fd978f04f8 ClientURLs:[http://localhost:2379]} to cluster cdf818194e3a8c>
 Mar 22 22:38:07 rhel8.local etcd[1938]: ready to serve client requests
 Mar 22 22:38:07 rhel8.local systemd[1]: Started etcd key-value store.
 Mar 22 22:38:07 rhel8.local etcd[1938]: serving insecure client requests on 127.0.0.1:2379, this is strongly discouraged!

Служба запустится на локальном хосте на порту 2379

$ ss -tunelp | grep 2379
tcp   LISTEN 0 128 127.0.0.1:2379 0.0.0.0:*  uid:998 ino:72981 sk:45c <-> 

$ etcdctl member list
8e9e05c52164694d: name=992462394b1c4f2e80e7e2fd978f04f8 peerURLs=http://localhost:2380 clientURLs=http://localhost:2379 isLeader=true

Шаг 3: Проверка установки Etcd

Проверьте вашу установку etcd на CentOS / RHEL 8:

$ etcdctl set /message "Hello World"
Hello World

Прочитайте значение message

$ etcdctl get /message
Hello World

Создайте каталог

$ etcdctl mkdir /myservice
$ etcdctl set /myservice/container1 localhost:8080
localhost:8080
$ etcdctl ls /myservice
/myservice/container1

Чтобы посмотреть каталог на наличие изменений, используйте:

$ etcdctl watch --recursive /myservice

Чтобы удалить ключ, выполните:

$ etcdctl rm /message
PrevNode.Value: Hello World

$ etcdctl rm /myservice/container1
PrevNode.Value: localhost:8080

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Максим

    Забыли добавить в статью содержимое etcd.service
    “Вставьте содержимое в файл.”
    А дальше сразу про перегрузку systemd

    Ответить
    1. cryptoparty автор

      Спасибо огромное, поправили!

      Ответить