23 điểm bởi iwanhae 2025-06-16 | 7 bình luận | Chia sẻ qua WhatsApp

Cá nhân tôi khá thích Kubernetes, nhưng nếu phải nói đến một vài điểm còn tiếc thì đó là do mức độ trừu tượng hóa quá tốt nên các yếu tố vật lý thực tế bị che đi, khiến việc kiểm tra trở nên khó khăn.

Ví dụ như

  • Khi một Pod đang gặp sự cố, trạng thái của các Pod khác được triển khai trên cùng node đó ra sao?
  • Các Pod hiện đang được kết nối với Service có đang hoạt động bình thường hết hay không?
  • Mức sử dụng CPU, Memory của node hiện tại là bao nhiêu? Trong đó tỷ trọng của từng Pod là thế nào?
  • Danh sách các PV hiện đang được gắn với node này là gì?

Dĩ nhiên không phải là hoàn toàn không có thông tin; vẫn có cách trực quan hóa từng thứ một thông qua việc kết hợp kubectl với các công cụ giám sát như Prometheus, nhưng thực tế là cũng khá phiền phức.

Để hỗ trợ trong những tình huống như vậy, tôi đã thử làm một bảng điều khiển Kubernetes thời gian thực trên nền web. Không cần cài đặt thêm bất cứ thứ gì, chỉ cần có thể dùng lệnh kubectl proxy là nó sẽ hoạt động theo kiểu theo dõi WATCH mọi tài nguyên của Kubernetes ngay trong trình duyệt web dưới dạng WASM.

7 bình luận

 
xogns556 2025-06-20

Có vẻ như các con số Running / Terminating đang thay đổi không phải theo đơn vị 1 giây mà theo mức 0,00x giây, vậy cơ chế nào khiến chúng liên tục thay đổi như vậy? Có phải nó liên tục gọi vào k8s API không?

Mình muốn dùng thử, nhưng hơi lo không biết liệu nó có tạo ra tải rất lớn lên các Read Request của k8s API hay không nên hỏi thử!

 
iwanhae 2025-06-21

Sử dụng WATCH API của K8s.
https://kubernetes.io/docs/reference/…

Vì chỉ nhận các thay đổi qua protobuf và SSE nên khá hiệu quả, mức tải cũng rất nhỏ. (Mức tải tương đương kubelet gây ra lên kube apiserver)

Tuy nhiên, nếu có nhiều người cùng sử dụng đồng thời thì nên dùng chế độ server hơn là wasm. Vì server sẽ thay mặt nhận các yêu cầu, giữ chúng trong bộ nhớ và cung cấp lại nên tải lên kube apiserver sẽ giảm.

 
taeuk 2025-06-17

Tệp WASM khá lớn, khoảng 90 MB.

 
iwanhae 2025-06-17

Dung lượng đúng là khá lớn, nhưng có vẻ không phải dạng entropy cao. Hiện tại khi tải bằng curl, bản nén gzip chỉ khoảng 14MB. Ngay cả khi thực sự phục vụ WASM, dạo này các thuật toán mã hóa như gzip, zstd, brotoli cũng thường được áp dụng, nên lưu lượng truyền thực tế có lẽ sẽ không cao.

 
kandk 2025-06-18

Tôi cũng tò mò khi binary đó được nén bằng zstd thì sẽ như thế nào.

 
roxie 2025-06-16

Hơi ngoài lề một chút, nhưng tôi tò mò không biết việc chuyển đổi sang WASM và sử dụng nó có diễn ra mượt mà không (bạn có gặp bất tiện gì không)!

 
iwanhae 2025-06-16

Ban đầu tôi cứ làm tạm bằng WASM trước, rồi sau này chỉ gom phần logic dùng chung lại và tách riêng phần code phía Server ra sau, nên cũng không thấy bất tiện gì. Ngược lại, bây giờ dù chỉ sửa code qua loa thì cả Server lẫn WASM đều được áp dụng, nên tôi cũng đang khá hài lòng khi sử dụng. haha