更新时间:2023-01-09 15:49:47浏览次数:412+次
本文介绍在Ubuntu 22.04系统上安装和配置etcd的方法,这是单节点群集设置,不适用于三节点群集。Etcd是一个用Go编写的简单、可靠、快速和安全的开源密钥值存储,它使用Raft共识算法来管理高度可用的复制日志。
在Ubuntu 22.04上安装etcd
Etcd作为二进制包分发,但您可以从源代码构建它。在本文中,我们将下载一个预先构建的二进制包。
在继续获取最新版本标签之前,请检查预构建的版本二进制文件,项目地址在https://github.com/etcd-io/etcd/releases。在Ubuntu系统上安装curl和wget软件包:
sudo apt update
sudo apt install vim wget curl
在Ubuntu上下载etcd的最新版本:
export RELEASE=$(curl -s https://api.github.com/repos/etcd-io/etcd/releases/latest|grep tag_name | cut -d '"' -f 4)
wget https://github.com/etcd-io/etcd/releases/download/${RELEASE}/etcd-${RELEASE}-linux-amd64.tar.gz
提取下载的存档文件:
tar xvf etcd-${RELEASE}-linux-amd64.tar.gz
更改为新文件目录:
cd etcd-${RELEASE}-linux-amd64
将etcd和etcdctl二进制文件移动到/usr/local/bin目录:
sudo mv etcd etcdctl etcdutl /usr/local/bin
确认版本:
$ etcd --version
etcd Version: 3.5.6
$ etcdctl version
$ etcdutl version
创建Etcd配置文件和数据目录:
sudo mkdir -p /var/lib/etcd/
sudo mkdir /etc/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
在Ubuntu上重新加载systemd服务并启动etcd:
sudo systemctl daemon-reload
sudo systemctl start etcd.service
启用服务以在系统启动时启动:
$ sudo systemctl enable etcd.service
Created symlink /etc/systemd/system/multi-user.target.wants/etcd.service → /etc/systemd/system/etcd.service.
检查服务状态:
$ systemctl status etcd.service
etcd.service - etcd key-value store
Loaded: loaded (/etc/systemd/system/etcd.service; enabled; vendor preset: enabled)
Active: active (running)
服务将在本地主机地址端口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=5fbf3d068d6c491eb687a7a427fc2263 peerURLs=http://localhost:2380 clientURLs=http://localhost:2379 isLeader=true
检查运行状况:
$ etcdctl endpoint health
127.0.0.1:2379 is healthy: successfully committed proposal: took = 1.871483ms
至此,安装etcd完成。