etcd 单节点部署和开启用户名密码方式认证功能

我的安装环境为:CentOS Linux release 7.5.1804,使用root权限安装,具体的安装步骤如下:

1、通过yum search etcd看看是否有etcd的源或是否已经添加源成功,如没有源则进入步骤2,如已有源,则执行步骤3

2、安装epel源(此处以epel-release-latest-7.noarch.rpm源为例)

 

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

3、安装etcd

yum install etcd

4、安装完成后如果不需要认证则不用修改任何配置,直接启动即可

启动:systemctl start etcd.service

停止:systemctl stop etcd.service

重启:systemctl restart etcd.service

状态查看:systemctl status etcd.service

 

补充知识:

1、配置文件路径/etc/etcd/etcd.conf,默认配置内容如下,单节点部署且不需要认证的则不需要改动任何配置:

#[Member]
#ETCD_CORS=""
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#ETCD_WAL_DIR=""
#ETCD_LISTEN_PEER_URLS="http://localhost:2380"
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"
#ETCD_MAX_SNAPSHOTS="5"
#ETCD_MAX_WALS="5"
ETCD_NAME="default"
#ETCD_SNAPSHOT_COUNT="100000"
#ETCD_HEARTBEAT_INTERVAL="100"
#ETCD_ELECTION_TIMEOUT="1000"
#ETCD_QUOTA_BACKEND_BYTES="0"
#ETCD_MAX_REQUEST_BYTES="1572864"
#ETCD_GRPC_KEEPALIVE_MIN_TIME="5s"
#ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s"
#ETCD_GRPC_KEEPALIVE_TIMEOUT="20s"
#
#[Clustering]
#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_FALLBACK="proxy"
#ETCD_DISCOVERY_PROXY=""
#ETCD_DISCOVERY_SRV=""
#ETCD_INITIAL_CLUSTER="default=http://localhost:2380"
#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
#ETCD_INITIAL_CLUSTER_STATE="new"
#ETCD_STRICT_RECONFIG_CHECK="true"
#ETCD_ENABLE_V2="true"
#
#[Proxy]
#ETCD_PROXY="off"
#ETCD_PROXY_FAILURE_WAIT="5000"
#ETCD_PROXY_REFRESH_INTERVAL="30000"
#ETCD_PROXY_DIAL_TIMEOUT="1000"
#ETCD_PROXY_WRITE_TIMEOUT="5000"
#ETCD_PROXY_READ_TIMEOUT="0"
#
#[Security]
#ETCD_CERT_FILE=""
#ETCD_KEY_FILE=""
#ETCD_CLIENT_CERT_AUTH="false"
#ETCD_TRUSTED_CA_FILE=""
#ETCD_AUTO_TLS="false"
#ETCD_PEER_CERT_FILE=""
#ETCD_PEER_KEY_FILE=""
#ETCD_PEER_CLIENT_CERT_AUTH="false"
#ETCD_PEER_TRUSTED_CA_FILE=""
#ETCD_PEER_AUTO_TLS="false"
#
#[Logging]
#ETCD_DEBUG="false"
#ETCD_LOG_PACKAGE_LEVELS=""
#ETCD_LOG_OUTPUT="default"
#
#[Unsafe]
#ETCD_FORCE_NEW_CLUSTER="false"
#
#[Version]
#ETCD_VERSION="false"
#ETCD_AUTO_COMPACTION_RETENTION="0"
#
#[Profiling]
#ETCD_ENABLE_PPROF="false"
#ETCD_METRICS="basic"
#
#[Auth]
#ETCD_AUTH_TOKEN="simple"

2、启动文件所在路径为:/usr/lib/systemd/system/etcd.service,内容为(不需要做修改):

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
User=etcd
# set GOMAXPROCS to number of processors
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\""
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

 =======注意:使用命令的方式开启认证或增加用户是临时性的,关闭当前ssh连接或重启机器再次通过ssh连接到机器上时需要重新设置==========

3、开启用户名和密码验证功能

根据当前我的系统centos7.5,yum安装的etcd版本为(etcdctl -v):etcdctl version: 3.3.11,API version: 2

所以开启认证使用的命令为:(我第一个创建和使用的root权限)

1、添加root,创建root后,root默认有root最高权限

etcdctl --endpoints=http://127.0.0.1:2379 user add root  会提示输入密码

2、开启认证
etcdctl --endpoints=http://127.0.0.1:2379 auth enable

 3、如果想要使用如下的获取key的命令需要使用3.x版本的api(我yum安装后,api是版本2比较旧,和3版本的还是有很大的不同)

执行etcd命令时,如提示类似如下的参数错误:flag provided but not defined: -user

解决办法:

首先执行命令: export ETCDCTL_API=3   升级api版本

随后就可以可以执行获取etcd中指定键值的命令:etcdctl --user=root:root get  键值

或所有键值的命令:etcdctl --user=root:root get --from-key ""

或其他的获取命令

 

posted @ 2020-06-09 13:14  天地一体  阅读(5431)  评论(0编辑  收藏  举报