Thứ Hai, 30/03/2026, 17:00 (GMT+0)

[Part 4] Khởi tạo ETCD Cluster trong Series Xây Dựng K8s Cluster

Quay lại Trang chủ Blog
Trên trang này

Sau khi hoàn tất việc thiết lập PKI, TLS và các cấu hình xác thực ở Part 3, cluster đã có đầy đủ nền tảng về security và identity. Đây là điều kiện tiên quyết để các thành phần trong Kubernetes có thể giao tiếp một cách an toàn.

Tuy nhiên, một hệ thống chỉ “an toàn” là chưa đủ. Kubernetes cần một nơi để lưu trữ và duy trì toàn bộ trạng thái vận hành của cluster: từ cấu hình, metadata cho đến trạng thái thực tế của các resource. Đó chính là vai trò của etcd.

Trong kiến trúc Kubernetes, etcd hoạt động như một single source of truth. Mọi thay đổi trong cluster đều được ghi nhận tại đây. Nếu etcd không sẵn sàng, control plane sẽ không có dữ liệu để vận hành.

Vì vậy, trước khi triển khai control plane, cần khởi tạo etcd làm nền tảng lưu trữ cho toàn bộ hệ thống.

Copy các binary và file cấu hình lên server 

Trước khi khởi tạo etcd, cần đưa các binary và file cấu hình cần thiết lên node server  

scp \

  downloads/controller/etcd \

  downloads/client/etcdctl \

  units/etcd.service \

Kết nối vào node server để thực hiện các bước tiếp theo: 

ssh root@server

Cài đặt etcd binaries

Di chuyển các file nhị phân vào thư mục thực thi:

  mv etcd etcdctl /usr/local/bin/

Cấu hình etcd server

Tạo thư mục cấu hình và dữ liệu:

  mkdir -p /etc/etcd /var/lib/etcd

  chmod 700 /var/lib/etcd

Copy các certificate cần thiết: 

cp ca.crt kube-api-server.key kube-api-server.crt /etc/etcd/

Mỗi member trong etcd cluster cần một tên duy nhất. Trong hướng dẫn này, tên etcd được đặt trùng với hostname của node để đơn giản hóa việc quản lý.

Cấu hình systemd service

mv etcd.service /etc/systemd/system/

Khởi động etcd 

  systemctl daemon-reload

  systemctl enable etcd

  systemctl start etcd

Sau khi khởi động, etcd sẽ bắt đầu lắng nghe và sẵn sàng xử lý các request từ các thành phần trong cluster.

Kiểm tra etcd cluster

Kiểm tra danh sách các member: 

etcdctl member list

Ví dụ kết quả:

6702b0a34e2cfd39, started, controller, http://127.0.0.1:2380, http://127.0.0.1:2379, false

Tại thời điểm này, etcd đã sẵn sàng và có thể được sử dụng làm backend lưu trữ cho control plane. 

Quan sát dữ liệu trong etcd

Để hiểu rõ hơn vai trò của etcd, có thể truy vấn trực tiếp dữ liệu bằng etcdctl:

ETCDCTL_API=3 etcdctl \

--endpoints=https://127.0.0.1:2379 \

--cacert=/etc/etcd/ca.crt \

--cert=/etc/etcd/kube-api-server.crt \

--key=/etc/etcd/kube-api-server.key \

get / --prefix --keys-only 

Lệnh trên liệt kê toàn bộ key đang được lưu trong etcd. Khi control plane được triển khai ở phần tiếp theo, các đối tượng Kubernetes như Pod, Service, ConfigMap… sẽ được lưu dưới dạng key-value tại đây. Điều này cho thấy etcd không chỉ là một database, mà là nơi phản ánh toàn bộ trạng thái thực tế của cluster.

Lưu ý

Trong môi trường production, etcd thường được triển khai dưới dạng cluster nhiều node để đảm bảo tính sẵn sàng cao và tránh single point of failure. Ngoài ra, việc backup dữ liệu etcd định kỳ là bắt buộc, do toàn bộ trạng thái cluster phụ thuộc vào hệ thống này.

Ở phần này, etcd đã được khởi tạo và sẵn sàng đóng vai trò lưu trữ trạng thái cho Kubernetes cluster. Trong phần tiếp theo, chúng ta sẽ triển khai Kubernetes control plane và bắt đầu sử dụng etcd để quản lý toàn bộ hoạt động của hệ thống.

#CloudWave Radar
#CloudWave Radar
Sovereign Cloud không chỉ là đặt máy chủ trong nước. Với bối cảnh pháp lý dữ liệu mới tại Việt Nam, đây đang trở thành bài toán hạ tầng quan trọng cho doanh nghiệp Việt và doanh nghiệp nước ngoài hoạt động tại Việt Nam
Sovereign Cloud - Đám mây chủ quyền là gì? Và vì sao doanh nghiệp hoạt động tại Việt Nam nên quan tâm từ bây giờ?
Tiếp tục đọc