ภาพรวมของบริการ
- ผู้ใช้ระบบ
etcd - ชื่อ Node เริ่มต้น: สร้างโดยอัตโนมัติ
etcd-<timestamp> - ไฟล์คอนฟิก:
/etc/etcd/etcd.yml - ไดเรกทอรี่ข้อมูล:
/var/lib/etcd - ไฟล์ไบนารี่:
/usr/local/bin/etcd,/usr/local/bin/etcdctlและ/usr/local/bin/etcdutl - ระดับบันทึก:
debug
เครือข่ายและพอร์ต
- Client traffic:
ทราฟิกของลูกค้า:
http://localhost:2379 - การรับส่งข้อมูลระหว่างเพื่อน:
http://localhost:2380 - โดยค่าเริ่มต้นจะเข้าถึงได้เฉพาะในเครื่อง (ผูกกับ localhost)
การจัดการ Systemd
systemctl status etcd # Check status
systemctl restart etcd # Start service
systemctl stop etcd # Stop service
systemctl restart etcd # Restart service
คำสั่งพื้นฐาน
# Check etcd server version
etcd --version
# Check etcdctl client version
etcdctl version
# Check etcdutl version
etcdutl version
# Set a key
etcdctl put mykey "HelloEtcd"
# Get a key
etcdctl get mykey
# List all keys with values
etcdctl get "" --prefix
# List only key names
etcdctl get "" --prefix --keys-only
# Delete a key
etcdctl del mykey
# Check cluster health
etcdctl endpoint health
# List cluster members
etcdctl --endpoints=http://127.0.0.1:2379 member list
# Show cluster leader
etcdctl endpoint status --write-out=table
# Watch a key for changes
etcdctl watch mykey
สำรองข้อมูลและกู้คืน
สำรอง snapshot (บันทึกสถานะปัจจุบันของ etcd ลงไฟล์):
etcdctl snapshot save /root/etcd-backup.db
ตรวจสอบสถานะ snapshot:
etcdutl snapshot status /root/etcd-backup.db -w table
หยุดบริการ etcd เพื่อป้องกันความขัดแย้ง:
systemctl stop etcd
ลบเนื้อหาที่มีอยู่ในไดเรกทอรีข้อมูล:
rm -rf /var/lib/etcd/*
กู้คืน snapshot:
etcdutl snapshot restore /root/etcd-backup.db --data-dir /var/lib/etcd
ตรวจสอบให้แน่ใจว่าสิทธิ์การเข้าถึงถูกต้อง:
chown -R etcd:etcd /var/lib/etcd
เริ่มบริการ etcd อีกครั้ง:
systemctl start etcd
หมายเหตุ
- ค่าเริ่มต้นเป็น single-node cluster เหมาะสำหรับการพัฒนาและทดสอบ
- ตั้งค่า log level เป็น debug
- สำหรับ production ให้เปิดใช้งาน TLS สำหรับการสื่อสารฝั่ง client และ peer
- พิจารณาตั้งค่า multi-node cluster เพื่อให้ระบบพร้อมใช้งานตลอดเวลา
- จำกัดการเข้าถึงพอร์ต 2379 (client) และ 2380 (peer) เฉพาะ host ที่เชื่อถือได้ด้วย firewall rules
- แก้ไข
/etc/etcd/etcd.ymlสำหรับการตั้งค่าขั้นสูง และรีสตาร์ทetcdservice เพื่อให้การเปลี่ยนแปลงมีผล - สำรองข้อมูลทุกครั้งก่อนดำเนินการที่อาจสูญเสียข้อมูล (ลบ/กู้คืน/compact)
- ตรวจสอบให้แน่ใจ
/var/lib/etcdเป็นเจ้าของโดยetcd:etcd; สิทธิ์การเข้าถึงที่ไม่ถูกต้องอาจทำให้ etcd เริ่มไม่ได้หลังจากกู้คืนหรือเปลี่ยนแปลงข้อมูล