本文介绍在RHEL/CentOS 8操作系统上安装和配置etcd 3.3.12的方法,它使用Go编写,etcd作为二进制包分发,但可以从源代码安装,我们将下载etcd 3.3.12二进制包然后进行安装。在安装前需要安装vim和wget,运行sudo dnf -y install curl vim命令即可,参考在RHEL 8/CentOS 8系统上安装和配置VIM文本编辑器一文。
一、下载及安装Etcd
目前要安装的版本是etcd 3.3.12,Etcd下载地址,先在系统终端中下载:
在继续获取最新版本标记之前,请检查版本页面上的最新版本。
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
检查服务状态以确认它正在运行,运行systemctl status etcd命令:
该服务将在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
三、测试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并配置成功了。
相关主题