Lộ trình
Cloud Native Computing FoundationAssociateTuần 4: Tối ưu & vận hànhBài 25 / 30

Ngày 25: Backup & Restore etcd

Thời lượng: 45 phút
Mục tiêu: 2 nhiệm vụ chính
Tiến độ lộ trình
ckangày 25
hoàn thành25 / 30 bài
Bối cảnh bài học

Thiết kế quy trình backup/restore etcd có kiểm chứng: endpoint và TLS đúng, snapshot integrity, restore vào data-dir cô lập, reconfigure API server và validate cluster state.

đọc hiểuthực hànhcheckpoint
Bài giảng hôm nay

Học hiểu, rồi mới thực hành

Thiết kế quy trình backup/restore etcd có kiểm chứng: endpoint và TLS đúng, snapshot integrity, restore vào data-dir cô lập, reconfigure API server và validate cluster state.

Bắt đầu đọc bài giảng

Nhiệm vụ bài học hôm nay

  • Thực hành etcdctl snapshot save/restore
  • Học quy trình khôi phục cluster từ snapshot
Instructor walkthrough

Bài giảng chi tiết: từ bài toán đến bằng chứng

Scenario xuyên suốt

Có file snapshot chưa chắc có backup dùng được. Sai endpoint/certificate có thể backup nhầm cluster; restore đè data-dir đang chạy có thể làm mất state hoặc khiến control plane không khởi động. Bài học chuyển etcd snapshot thành recovery runbook có RPO/RTO, isolation và proof.

01Đọc bài toán

Xác định actor, workload, constraint và trạng thái cuối cần đạt.

02Vẽ luồng / boundary

Chỉ ra request, dependency, identity và failure domain trước khi chọn công cụ.

03Chọn và thực hành

Thay đổi nhỏ nhất trong lab cô lập; command nào cũng phải nói rõ nó kiểm tra điều gì.

04Kiểm chứng / recovery

Đối chiếu trạng thái thực tế, tạo một failure variant và ghi cách hoàn tác.

Cách nối lý thuyết với thực tế
  • etcd lưu cluster state; snapshot phải gắn với đúng endpoint, revision/time, credential/TLS và metadata owner để tránh backup nhầm.
  • etcdctl version/API mode, `ETCDCTL_API`, CA/cert/key và endpoint phải tương thích; command thành công không đủ nếu không kiểm tra snapshot status.
  • Restore cần data-dir mới/cô lập, ownership/permissions đúng và sequence control-plane rõ; không restore trực tiếp lên data-dir production đang phục vụ.
  • Sau restore, API server/static Pod/certificates và etcd endpoint phải trỏ đúng data-dir; cluster object verification cần kiểm tra cả object cũ, marker và system health.

Backup có thể restore

Trước snapshot: xác nhận cluster identity, endpoint, TLS files, version/API, health và marker. Sau snapshot: kiểm tra status/size/revision/time/checksum, owner/permissions, encryption/retention và nơi lưu. Snapshot sai cluster hoặc không đọc được khi restore không phải backup đạt chuẩn.

Restore isolation

Restore vào data-dir/test control plane cô lập, không overwrite data-dir đang chạy. Kiểm tra permissions/ownership, static Pod/API server configuration, certificate paths và endpoint. Sau recovery phải chứng minh API ready, object marker đúng, nodes/system Pods healthy và workload state phù hợp; ghi rollback nếu gate fail.

Bài tập

Tạo marker, snapshot, thay đổi marker, restore lab và so sánh state. Viết runbook có RPO/RTO, commands, expected output, failure modes của TLS/permission/version, approval và cleanup snapshot/data-dir.

Terminal reference

Command list và cách dùng

Chạy từng lệnh theo đúng thứ tự. Trước các lệnh có thể tạo hoặc thay đổi tài nguyên, hãy kiểm tra profile, account và region.

Commands · read-only checkpoints
export ETCDCTL_API=3
etcdctl endpoint health --endpoints=https://127.0.0.1:2379 --cacert=CA.crt --cert=client.crt --key=client.key
etcdctl snapshot save /var/backups/etcd-snapshot.db --endpoints=https://127.0.0.1:2379 --cacert=CA.crt --cert=client.crt --key=client.key
etcdutl snapshot status /var/backups/etcd-snapshot.db --write-out=table
etcdutl snapshot restore /var/backups/etcd-snapshot.db --data-dir=/var/lib/etcd-restore-lab
kubectl get --raw=/readyz?verbose
kubectl get ns,cm -A -o wide
Hands-on lab

Thực hành theo scenario

  1. Viết runbook với source endpoint, cluster identity, RPO/RTO, owner, maintenance window, backup location/encryption/retention và rollback. Xác nhận context/host trước mọi lệnh.
  2. Trên lab control plane cô lập, kiểm tra etcd endpoint/cert paths, versions và health; chạy snapshot save vào đường dẫn riêng rồi dùng `etcdutl snapshot status` hoặc công cụ tương thích để kiểm tra revision/size/metadata.
  3. Tạo marker ConfigMap/namespace lab, snapshot, thay đổi marker, rồi restore vào data-dir mới hoặc test control plane cô lập. Không dừng/overwrite etcd production và không coi file copy là restore test.
  4. Khởi động test etcd/API server theo runbook, kiểm tra endpoint/TLS, API readiness, marker trước/sau snapshot, nodes/system Pods và workload; ghi failure nếu cert/permission/version sai.
  5. Bảo vệ snapshot như dữ liệu nhạy cảm, kiểm tra checksum/ownership/permissions, cleanup test data-dir và snapshot theo retention policy; không đưa cert/key/secret vào log hoặc repository.
Evidence checkpoint

Kiểm chứng kết quả

Không coi lệnh chạy thành công là đủ. Hãy đối chiếu output với trạng thái mong đợi:

  • Đúng endpoint/cluster identity/API/TLS và có preflight evidence.
  • Snapshot có status/metadata/integrity và retention/permission policy.
  • Restore dùng data-dir cô lập, không overwrite production.
  • API/control-plane sau restore healthy và object marker đúng expected state.
  • Runbook có RPO/RTO, rollback, owner và cleanup sensitive artifact.
Transfer to exam / production

Bẫy thường gặp và trade-off

CKA backup task thường mất điểm do sai `ETCDCTL_API`, endpoint hoặc cert path. Save snapshot xong phải kiểm tra status; restore phải dùng data-dir/sequence chính xác và verify API object sau đó.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Sau `etcdctl snapshot save` command exit 0, bằng chứng nào còn cần trước khi coi backup đạt?

Kết thúc bài

Checklist trước khi sang Ngày 2