

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.
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@serverDi chuyển các file nhị phân vào thư mục thực thi:
mv etcd etcdctl /usr/local/bin/ mkdir -p /etc/etcd /var/lib/etcd
chmod 700 /var/lib/etcdCopy 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/ systemctl daemon-reload
systemctl enable etcd
systemctl start etcdSau 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 danh sách các member:
etcdctl member listVí dụ kết quả:
6702b0a34e2cfd39, started, controller, http://127.0.0.1:2380, http://127.0.0.1:2379, falseTạ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.
Để 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.
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.
