17/09/2026 · VietTechies · Biên tập

Kubernetes v1.37 giới thiệu hai khả năng bảo mật lưu trữ ở cấp Alpha: tùy chọn bind mount cho volume của container và chế độ quyền có thể cấu hình cho volume emptyDir. Được dự án Kubernetes công bố ngày 16/9/2026, các tính năng này cung cấp cơ chế tích hợp để kiểm soát những hạn chế trước đây thường phải xử lý bằng workaround như init container.
Cờ bảo mật trên bind mount
Trường bindMountOptions mới có thể áp dụng các cờ Linux noexec, nosuid và nodev cho các volume được mount bên trong container. Theo thứ tự, các cờ này ngăn thực thi trực tiếp tệp nhị phân từ filesystem đã mount, ngăn các bit set-user-ID và set-group-ID phát huy tác dụng, đồng thời không cho các tệp thiết bị đặc biệt được diễn giải như thiết bị.
Cơ chế này hoạt động ở một lớp khác với trường mountOptions hiện có của PersistentVolume. Tùy chọn của PersistentVolume được CSI driver áp dụng ở lớp lưu trữ, còn bindMountOptions kiểm soát bind mount mà runtime tạo cho container. Tính năng hỗ trợ emptyDir, PersistentVolumes, CSI volumes, projected volumes, ConfigMaps và Secrets, nhưng không hỗ trợ image volumes.
Cấu hình quyền cho emptyDir
Trước đây, Kubernetes luôn tạo thư mục emptyDir với mode 0777. Kubernetes v1.37 bổ sung trường mode để giới hạn quyền truy cập hoặc bật sticky bit của Unix. Chẳng hạn, đặt 01777 cho phép nhiều bên cùng ghi nhưng chỉ chủ sở hữu tệp hoặc root được xóa và đổi tên tệp. Mode như 0750 có thể giới hạn quyền truy cập chỉ cho chủ sở hữu và nhóm.
Thiết lập này áp dụng cho các loại emptyDir lưu trên đĩa, Memory và HugePages. Tuy nhiên, cấu hình fsGroup ở cấp pod sẽ ghi đè chế độ quyền được chỉ định cho emptyDir.
Feature gate và hỗ trợ từ runtime
Quản trị viên phải bật các feature gate VolumeBindMountOptions và EmptyDirVolumeMode trên cả API server lẫn kubelet. Bind mount options cũng yêu cầu container runtime hỗ trợ trường CRI mount_options và công bố khả năng đó qua runtimeFeatures. Scheduler sử dụng các tính năng được node khai báo để tránh đặt workload lên node không tương thích; nếu pod vẫn được đưa đến một node không hỗ trợ, kubelet sẽ từ chối pod.
Giới hạn Alpha chỉ dành cho Linux
Cả hai khả năng đều dành riêng cho Linux và không có tác dụng trên node Windows. Khi các trường này bị bỏ qua, hành vi hiện tại vẫn được giữ nguyên, bao gồm mode mặc định 0777 của emptyDir. Trong thời gian các thành phần chạy lệch phiên bản, API server đã bật gate có thể chấp nhận mode của emptyDir, trong khi kubelet chưa bật gate sẽ bỏ qua trường này và quay về quyền 0777.
Ảnh minh họa do AI tạo.
Nguồn: Kubernetes v1.37: Hardening Container Storage with Bind Mount Options and EmptyDir Permissions
