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 ""

或其他的獲取命令

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM