簡介
etcd內部採用raft協議作為一致性算法,採用Go語言實現。
etcd是用於分佈式系統中最關鍵數據的分佈式可靠鍵值存儲,特點:
- 簡單:安裝配置簡單,使用也很簡單
- 安全:支持TLS證書驗證
- 快速:根據官方提供的benchmark數據,單實例支持每秒10, 000次寫入
- 可靠:採用raft算法,實現分佈式系統數據的可用性和一致性
etcd項目地址:https://github.com/etcd-io/etcd/
使用yum安裝
在CentOS上就對應的軟件包
<code>yum -y install etcd
/<code>
目前罪行版本是3.3的版本。
啟動服務和開機啟動服務
<code>systemctl start etcd
systemctl enable etcd
/<code>
二進制安裝
在官方release頁面可以找到對應的安裝腳本,只需要稍微修改一下即可
<code>ETCD_VER=v3.4.4
# choose either URL
MIRROR_URL=https://mirrors.huaweicloud.com/etcd/
DOWNLOAD_URL=${MIRROR_URL}
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
mv /tmp/etcd-download-test /usr/local/etcd
/usr/local/etcd/etcd --version
/usr/local/etcd/etcdctl version
/<code>
啟動測試
<code># start a local etcd server
/usr/local/etcd/etcd
# write,read to etcd
/usr/local/etcd/etcdctl --endpoints=localhost:2379 put foo bar
/usr/local/etcd/etcdctl --endpoints=localhost:2379 get foo
/<code>
docker部署
最方便的就是使用docker進行部署的,適合用於測試
<code>docker pull quay.io/coreos/etcd
docker run -d -p 2379:2379 -p 2380:2380 --name etcd quay.io/coreos/etcd
/<code>
測試
<code>docker exec etcd /bin/sh -c "/usr/local/bin/etcd --version"
docker exec etcd /bin/sh -c "export ETCDCTL_API=3 ; /usr/local/bin/etcdctl version"
docker exec etcd /bin/sh -c "export ETCDCTL_API=3 ; /usr/local/bin/etcdctl endpoint health"
docker exec etcd /bin/sh -c "export ETCDCTL_API=3 ; /usr/local/bin/etcdctl put foo bar"
docker exec etcd /bin/sh -c "export ETCDCTL_API=3 ; /usr/local/bin/etcdctl get foo"
/<code>
閱讀更多 linux運維菜 的文章