如何在RHEL 8/CentOS 8上安装ettd

时间:2020-02-23 14:30:39  来源:igfitidea点击:

本教程将解释如何在RHEL/CentOS 8上安装etcd。
ettd是一种简单,可靠,快速安全的开源键值商店。
它使用RAFT共识算法来管理高度可用的复制日志。
这里共享的安装不适用于生产环境,因为它位于单个节点(一个成员etcd)上。

注意:这是一个单个节点群集设置,适用于三个节点群集,请参阅下面的教程。

Ubuntu/debian/centos上的设置etcd集群

在Rhel/CentOS 8上安装ettd

被写入,etcd被分发为二进制包,但从源的安装也可用。
在本教程中,我们将下载预先构建的二进制包。

确保RHEL/CentOS 8服务器上安装了Vim和Wget。

sudo dnf -y install curl vim

第1步:下载etcd二进制文件

在继续获取最新版本标记之前,请检查"版本"页面上的最新版本。

export RELEASE="3.3.13"
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

移动 etcdetcdctl二进制文件到 /usr/local/bin目录。

sudo mv etcd etcdctl /usr/local/bin

确认版本。

$etcd --version
etcd Version: 3.3.13
Git SHA: 98d3084
Go Version: go1.10.8
Go OS/Arch: linux/amd64

第2步:配置etcd systemd服务

我们将使用SystemD来管理ETPD服务。
首先,为etTD创建数据目录。

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和START ETCD服务

为etTD创建新的Systemd服务文件。

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

在CentOS/RHEL系统上重新加载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

检查服务状态以确认运行。

[Hyman@theitroad ~]# 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!

该服务将在localhost地址端口启动 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上的ETCD安装。

$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