CLOUD & HYBRID

Kiểm thử container registry: pull storm, cache và integrity

21/8/2026 · 16 phút đọc

Nhiều node Kubernetes pull manifest và blob qua cache tới container registry
Mục lục bài viết 10 phần

Một image pull thành công ở một node không chứng minh registry chịu được rolling deployment hoặc phục hồi cluster. Khi hàng trăm node cùng yêu cầu manifest và blob, bottleneck có thể nằm ở authentication, metadata, storage, cache, egress hoặc chính runtime. Test plan cần đo từng lớp và giữ digest làm bằng chứng toàn vẹn.

ĐỌC NHANH

Bài viết giúp bạn

  • Câu hỏi và phạm vi kiểm thử
  • Topology cùng điều kiện đo
  • Biến số phải khóa
Tùy chỉnh đọc
01

Câu hỏi và phạm vi kiểm thử

#

Registry có phục vụ đúng manifest theo tag/digest, stream đủ blob, xác thực đúng quyền và giữ integrity khi tải tăng không? Client có xử lý retry/rate limit đúng hay khuếch đại sự cố? Cache có giảm tải backend mà không phân phối dữ liệu cũ sai chính sách không?

Phạm vi phải tách pull từ thời gian scheduling, image extraction và container start. Nếu KPI là pod-ready time, vẫn cần log riêng DNS, TLS, token, manifest, layer download, verify, unpack và runtime init để biết chậm ở đâu.

02

Topology cùng điều kiện đo

#

Topology nên có nhiều worker/node pool, registry, auth/token service, object storage hoặc filesystem backend, proxy/cache và collector. Đặt network emulator giữa client–cache và cache–registry để tạo latency, jitter, packet loss hoặc bandwidth cap riêng cho từng đoạn.

Chạy ít nhất ba topology: client trực tiếp registry; client qua pull-through cache; và registry nhiều replica sau load balancer. Thu access log theo request ID, metrics backend/cache, packet capture chọn lọc và log container runtime. Đồng bộ thời gian để ghép một pull với chuỗi token–manifest–blob.

Alt: “Topology kiểm thử container registry với cache, backend và nhiều worker đồng thời”.

Minh họa: Topology cùng điều kiện đo
Minh họa: Topology cùng điều kiện đo
03

Biến số phải khóa

#

Ghi registry/runtime/version, image media type, số layer, kích thước layer, compression, multi-architecture manifest, tag/digest, TLS, authentication, token TTL, connection reuse và HTTP behavior. Khóa storage class, replica, CPU/memory limit, egress và cache capacity/eviction.

Traffic profile cần nêu số node, concurrency mỗi node, image set, tỷ lệ image/layer dùng chung, arrival pattern và retry policy. Cold-cache phải xóa có kiểm soát cả cache registry lẫn cache cục bộ của node; warm-cache phải chứng minh hit bằng metric, không chỉ suy từ lần chạy nhanh hơn.

04

KPI và bằng chứng

#

Lớp · KPI · Bằng chứng Auth · token latency/error · Log auth, HTTP status Manifest · p50/p95/p99, success · Digest, access log Blob · goodput, time-to-first-byte · Byte counter, trace Cache · hit/miss/eviction · Cache metrics/log Registry · request rate, queue, CPU · Telemetry theo replica Client · pull completion, retry · Runtime event/log Integrity · digest mismatch · Verified digest/artifact

Đo cả throughput tổng và fairness theo node. Error taxonomy phải tách 401/403, 404, 429, 5xx, timeout, TLS/DNS và digest mismatch. Một tỷ lệ success chung không cho biết lỗi quyền, quá tải hay dữ liệu hỏng.

05

Ma trận quyết định

#

Kịch bản · Câu hỏi · Pass/fail gợi ý Cold-cache storm · Backend chịu tải đầu kỳ? · Error trong budget; p99 và queue không runaway Warm-cache storm · Cache có giảm backend? · Hit ratio và backend bytes đúng kỳ vọng Shared layers · Dedupe hoạt động? · Không tải lặp blob ngoài policy Tag đổi · Client nhận đúng manifest? · Digest quan sát khớp policy/tag Rate limit · Retry có kiểm soát? · Tôn trọng 429; không synchronized retry Replica loss · Failover còn đúng dữ liệu? · Không partial/corrupt; recovery trong budget Backend chậm · Backpressure? · Queue bounded; không làm auth sụp dây chuyền

Ngưỡng phải gắn với node count, image set và network budget. Không lấy một image nhỏ, đã cache, để kết luận khả năng triển khai toàn cluster.

06

Test plan theo pha

#

Pha functional kiểm tra push/pull theo digest, tag, media type, multi-arch, quyền repository và negative request. Pha baseline chạy một client với cache lạnh/làm nóng, lưu request waterfall. Pha load tăng concurrency từng bậc và giữ đủ lâu để thấy queue/eviction.

Pha storm dùng arrival đồng thời như node recovery hoặc rolling deployment. Pha endurance lặp deploy/pull/garbage collection để phát hiện metadata leak và storage growth. Mỗi pha lưu image digest, config, result, metrics và log theo run ID.

Alt: “Waterfall thời gian pull image theo từng lớp registry và runtime”.

Minh họa: Test plan theo pha
Minh họa: Test plan theo pha
07

Failure injection và phục hồi

#

Gây từng lỗi: một replica registry mất, auth chậm, storage trả 5xx, cache đầy, DNS đổi endpoint, TLS certificate rotation hoặc đường truyền mất gói. Không gây đồng thời ở pha đầu. Quan sát retry budget, load balancing, connection draining và thời gian trở về trạng thái ổn định.

Integrity test dùng artifact vô hại có digest biết trước; làm hỏng bản sao trong lab hoặc chặn một phần response để xác minh client không chấp nhận blob sai. Không sửa image production và không đưa secret thật vào workload test.

08

Runbook thực hành

#
  • [ ] Chốt image set, layer map và digest chuẩn.
  • [ ] Ghi registry/runtime, auth, storage và cache version.
  • [ ] Đo clock, DNS, TLS và network baseline.
  • [ ] Chứng minh trạng thái cold/warm cache trước run.
  • [ ] Tăng node/concurrency theo bậc; giữ một retry policy.
  • [ ] Thu log theo request ID và metrics từng replica.
  • [ ] Kiểm tra 429/5xx, timeout, retry amplification.
  • [ ] Xác minh digest và trạng thái container sau pull.
  • [ ] Xóa dữ liệu test, xác nhận garbage collection policy.
09

Giới hạn kết luận

#

Kết quả phụ thuộc image composition, layer reuse, runtime, cache, storage và đường mạng. Throughput cao với layer lớn không dự báo manifest-heavy workload; warm cache không đại diện disaster recovery khi cache trống.

OCI Distribution Specification mô tả giao diện và hành vi tương thích, không đặt SLA cho một triển khai cụ thể. So sánh sản phẩm chỉ hợp lệ khi dùng cùng image set, cache state, concurrency, auth, network condition và định nghĩa completion.

10

Khái niệm cần nhớ

#
  • Manifest: Metadata mô tả image và các layer theo digest.
  • Blob: Nội dung layer/config được truy xuất theo digest.
  • Digest: Định danh nội dung dùng để xác minh integrity.
  • Pull storm: Nhiều client khởi tạo pull trong cửa sổ ngắn.
  • Cold/warm cache: Cache chưa có/có artifact cần thiết.
  • Goodput: Byte hữu ích hoàn tất trên một đơn vị thời gian.
  • Backpressure: Cơ chế giới hạn nhận thêm việc khi downstream bão hòa.
THUẬT NGỮ NHANH

Khái niệm cần nhớ

DUT / SUT
Thiết bị hoặc toàn bộ hệ thống đang là đối tượng của bài kiểm thử.
Steady state
Giai đoạn tải đã ổn định và đủ điều kiện để lấy số liệu đại diện.
Pass / fail
Kết luận dựa trên ngưỡng đã thống nhất, luôn đi cùng topology, cấu hình và điều kiện đo.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo4 nguồn

Nội dung được biên soạn độc lập, theo hướng vendor-neutral và đối chiếu các tài liệu gốc dưới đây. Tính năng sản phẩm cần được kiểm tra lại theo phiên bản đang sử dụng.

Nguyên tắc biên tập

NetVali ưu tiên nguồn tiêu chuẩn và tài liệu chính thức; phân biệt khuyến nghị triển khai với yêu cầu của tiêu chuẩn; không công bố thông số sản phẩm chưa gắn với phiên bản và điều kiện đo.

Thông số và khả năng sản phẩm có thể thay đổi theo phiên bản. Hãy đối chiếu tài liệu chính thức trước khi xây dựng cấu hình hoặc tiêu chí nghiệm thu.
BẮT ĐẦU TỪ BÀI TOÁN

Cần chuyển kiến thức thành test plan?

Chia sẻ mục tiêu, topology và ràng buộc kỹ thuật. NetVali sẽ cùng bạn xác định bài đo phù hợp.

Trao đổi yêu cầu kỹ thuật