本篇是单节点部署,简单使用,后面文章会有高可用集群部署。
`简介`
ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。etcd内部采用raft协议作为一致性算法,基于Go语言实现。
比较流行也是源于在Kubernetes中的应用。Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。
`特点`
简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
安全:支持SSL证书验证
快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
可靠:采用raft算法,实现分布式系统数据的可用性和一致性。
1、启动容器
bs start etcd
2、进入容器安装服务
#进入容器
bs login etcd
#下载安装包
wget https://github.com/coreos/etcd/releases/download/v3.1.5/etcd-v3.1.5-linux-amd64.tar.gz
#安装服务
tar xvf etcd-v3.1.5-linux-amd64.tar.gz
mv etcd-v3.1.5-linux-amd64 etcd
3、etcd是服务端,etcdctl是运维人员操作的控制端
cp -p etcd etcdctl /usr/local/bin/
4、配置环境变量
vim /etc/profile
export ETCDCTL_API=3
#刷新环境变量
source /etc/profile
说明:在文件最后加入变量,此配置是etcd的API版本,因为etcd默认使用V2版本,我们需要V3版本的API。
5、查看版本信息
root@etcd:~/etcd# etcd --version
etcd Version: 3.1.5
Git SHA: 20490ca
Go Version: go1.7.5
Go OS/Arch: linux/amd64
6、创建etcd配置文件和数据目录
mkdir -p /var/lib/etcd/
7、配置文件
cat <<EOF | tee /etc/etcd.conf
#节点名称
ETCD_NAME=$(hostname -s)
#数据存放位置
ETCD_DATA_DIR=/var/lib/etcd/
EOF
8、创建开机启动文件
vim /etc/systemd/system/etcd.service
#文件内容
[Unit]
Description=Etcd Server
Documentation=https://github.com/coreos/etcd
After=network.target
[Service]
User=root
Type=notify
#这个文件特别关键,etcd使用的环境变量都需要通过环境变量文件读取
EnvironmentFile=-/etc/etcd.conf
ExecStart=/usr/local/bin/etcd
Restart=on-failure
RestartSec=10s
LimitNOFILE=40000
[Install]
WantedBy=multi-user.target
9、启动
systemctl daemon-reload && systemctl enable etcd && systemctl start etcd
10、查看启动
root@etcd:~/etcd# ps -aux |grep etcd
root 117 0.4 0.4 10512616 8548 ? Ssl 03:59 0:00 /usr/local/bin/etcd
root 129 0.0 0.0 3296 716 ? S+ 03:59 0:00 grep --color=auto etcd
root@etcd:~/etcd# netstat -antp |grep 2379
tcp 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 117/etcd
tcp 0 0 127.0.0.1:55604 127.0.0.1:2379 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:2379 127.0.0.1:55598 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:2379 127.0.0.1:55604 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:2379 127.0.0.1:55602 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:2379 127.0.0.1:55608 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:55606 127.0.0.1:2379 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:55598 127.0.0.1:2379 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:2379 127.0.0.1:55606 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:2379 127.0.0.1:55600 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:55602 127.0.0.1:2379 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:55608 127.0.0.1:2379 ESTABLISHED 117/etcd
tcp 0 0 127.0.0.1:55600 127.0.0.1:2379 ESTABLISHED 117/etcd
说明:启动默认端口是2379
11、测试
root@etcd:~/etcd# etcdctl put name "etcd"
OK
root@etcd:~/etcd# etcdctl get name
name
etcd
root@etcd:~/etcd# etcdctl del name
1