基于docker的etcd单节点的安装及使用

本文详细介绍了如何在单节点上部署和配置ETCD,从安装到运行、设置环境变量,以及基本操作如创建、读写和删除键值对。适合初学者快速上手ETCD在Kubernetes中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇是单节点部署,简单使用,后面文章会有高可用集群部署。

`简介`
ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。etcd内部采用raft协议作为一致性算法,基于Go语言实现。
比较流行也是源于在Kubernetes中的应用。Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。
`特点`
简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
安全:支持SSL证书验证
快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
可靠:采用raft算法,实现分布式系统数据的可用性和一致性。

1、启动容器

bs start etcd

启动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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值