下载
wget https://github.com/etcd-io/etcd/releases/download/3.3.12/etcd-3.3.12-linux-amd64.tar.gz
提取下载的存档文件:
tar xvf etcd-3.3.12-linux-amd64.tar.gz
切换到新文件目录:
cd etcd-3.3.12-linux-amd64
将etcd和etcdctl二进制文件移动到/usr/local/bin目录:
sudo mv etcd etcdctl /usr/local/bin
确认版本,运行etcd --version命令:
$ etcd --version
etcd Version: 3.3.12
Git SHA: d57e8b8
Go Version: go1.10.8
Go OS/Arch: linux/amd64
从以上输出信息上看,安装etcd 3.3.12版本已经成功。
二、配置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服务。
为etcd创建一个新的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
然后重新加载systemd服务:
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
三、测试Etcd安装的方法
通过写入etcd来测试CentOS/RHEL 8上的etcd安装:
$ etcdctl set /message "Hello World"
Hello World
读取消息的值:
$ 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
至此,经过以上操作,在RHEL/CentOS 8系统上安装Etcd并配置成功了。