ลด 50% ทุกแพ็กเกจ เวลาจำกัด เริ่มต้นที่ $2.48/mo
etcd

etcd

etcd คือ Distributed Key-Value Store ที่เป็นแกนหลักของ Kubernetes, Consul และ CoreOS ออกแบบมาเพื่อรองรับ Consensus ที่เชื่อถือได้ระหว่างเครื่องต่าง ๆ ผ่าน Raft Protocol เป็น open-source เขียนด้วย Go และเป็นตัวเลือกมาตรฐานสำหรับ Service Discovery และ Distributed Configuration

เวอร์ชัน

v3.6.9

ระบบปฏิบัติการ

Ubuntu Server 24.04 LTS เซิร์ฟเวอร์

ขั้นต่ำของ RAM

1 GB

ประเภท IP

IPV4,IPV6

ภาพรวมของบริการ

  • ผู้ใช้ระบบ 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 สำหรับการตั้งค่าขั้นสูง และรีสตาร์ท etcd service เพื่อให้การเปลี่ยนแปลงมีผล
  • สำรองข้อมูลทุกครั้งก่อนดำเนินการที่อาจสูญเสียข้อมูล (ลบ/กู้คืน/compact)
  • ตรวจสอบให้แน่ใจ /var/lib/etcd เป็นเจ้าของโดย etcd:etcd; สิทธิ์การเข้าถึงที่ไม่ถูกต้องอาจทำให้ etcd เริ่มไม่ได้หลังจากกู้คืนหรือเปลี่ยนแปลงข้อมูล

เพิ่มเติมใน Database Tools

แอปพลิเคชันที่เกี่ยวข้อง

ติดตั้ง etcd เดี๋ยวนี้ เริ่มต้นที่ $2.48/เดือน