Hướng dẫn cài ETCD cluster

 Hướng dẫn ETCD Cluster trên 3 máy (node)

Giới thiệu về etcd

etcd là một kho lưu trữ giá trị-khóa phân tán, đáng tin cậy, được sử dụng để lưu trữ dữ liệu quan trọng của các hệ thống phân tán. Nó đặc biệt hữu ích cho việc quản lý cấu hình, phát hiện dịch vụ và điều phối các ứng dụng phân tán. etcd được viết bằng Go và sử dụng thuật toán đồng thuận Raft để đảm bảo tính nhất quán và khả dụng cao.

 Giới thiệu về etcd cluster 

Một etcd cluster bao gồm nhiều nút etcd hoạt động cùng nhau để cung cấp tính sẵn sàng và khả năng chịu lỗi cao. Dữ liệu được sao chép trên tất cả các nút trong cluster, đảm bảo rằng nếu một nút gặp sự cố, các nút khác vẫn có thể tiếp tục hoạt động. etcd cluster sử dụng thuật toán Raft để đạt được sự đồng thuận về trạng thái của dữ liệu, đảm bảo rằng tất cả các nút đều có cùng một bản sao dữ liệu.

Mô tả hệ thống định dựng như sau:

  • Máy1: 192.168.218.129
  • Máy2: 192.168.218.85
  • Máy3: 192.168.218.86
  • OS: 8

1. Cài đặt etcd trên cả 3 máy chủ

Cập nhật hệ thống và etcd:

sudo dnf install -y etcd

2. Cấu hình etcd trên từng máy chủ

Chỉnh sửa file cấu hình /etc/systemd/system/etcd.service trên từng máy chủ

[Unit]
Description="ETCD Service"
Documentation=https://github.com/etcd-io/etcd
After=network.target

[Service]
Type=notify
User=etcd
Group=etcd
ProtectSystem=full
ProtectHome=read-only
PrivateTmp=yes
PrivateDevices=yes
SecureBits=keep-caps
AmbientCapabilities=CAP_IPC_LOCK
NoNewPrivileges=yes
EnvironmentFile=/etc/etcd/etcd.conf
ExecStart=/usr/local/bin/etcd --snapshot-count=500000
Restart=always
RestartSec=10s
LimitNOFILE=40000

[Install]
WantedBy=multi-user.target

Sau khi lưu file, chạy lệnh sau để cập nhật:

systemctl daemon-reload

Chỉnh sửa file cấu hình /etc/etcd/etcd.conf trên từng máy chủ

Xem tiếp:   Cài đặt kms server trên linux để kích hoạt bản quyền windows, office

Mỗi máy cần chỉnh sửa hostname và địa chỉ IP tương ứng.

Máy 1 (192.168.218.129)

ETCD_NAME="node1"
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.218.129:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.218.129:2379,http://127.0.0.1:2379"

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.218.129:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.218.129:2379"

ETCD_INITIAL_CLUSTER="node1=http://192.168.218.129:2380,node2=http://192.168.218.85:2380,node3=http://192.168.218.86:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

Máy 2 (192.168.218.85)

ETCD_NAME="node2"
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.218.85:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.218.85:2379,http://127.0.0.1:2379"

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.218.85:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.218.85:2379"

ETCD_INITIAL_CLUSTER="node1=http://192.168.218.129:2380,node2=http://192.168.218.85:2380,node3=http://192.168.218.86:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

Máy 3 (192.168.218.86)

ETCD_NAME="node3"
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.218.86:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.218.86:2379,http://127.0.0.1:2379"

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.218.86:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.218.86:2379"

ETCD_INITIAL_CLUSTER="node1=http://192.168.218.129:2380,node2=http://192.168.218.85:2380,node3=http://192.168.218.86:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

3. Cấu hình Firewall (nếu bật firewalld)

sudo firewall-cmd --add-port=2379/tcp --permanent
sudo firewall-cmd --add-port=2380/tcp --permanent
sudo firewall-cmd --reload

4. Khởi động etcd trên cả 3 máy chủ

sudo systemctl daemon-reload
sudo systemctl enable --now etcd
sudo systemctl status etcd

5. Kiểm tra cluster

Xem trạng thái cluster

Chạy lệnh sau trên một trong các máy:

etcdctl --endpoints="http://192.168.218.129:2379,http://192.168.218.85:2379,http://192.168.218.86:2379" member list

Thêm một key để kiểm tra

etcdctl --endpoints="http://192.168.218.129:2379" put foo "hello etcd"

Lấy lại giá trị của key

etcdctl --endpoints="http://192.168.218.86:2379" get foo

Nếu lệnh trên trả về “hello etcd”, tức là cluster đã hoạt động tốt.

Cấu hình này giúp bạn có một etcd cluster 3 nodes chạy trên Rocky Linux 8, đảm bảo high availability và có thể sử dụng làm backend cho các ứng dụng như Apache APISIX. 🚀

 

Related Posts

Check Also

login_mysql

Hướng dẫn cài Mysql 5.6 trên Ubuntu 20.04

Nếu đang sử dụng Ubuntu 20.x mà cần  cài MySql 5.6 để sử dụng thì …