Bộ điều khiển Persistent Volume của Kubernetes
Tổng quan
- Bộ điều khiển đồng bộ hóa PersistentVolume (PV) và PersistentVolumeClaim (PVC) của Kubernetes
- Quản lý các “con trỏ” hai chiều giữa PVC và PV để ngăn mất dữ liệu
- Hoạt động ở chế độ khả dụng cao, đồng thời hỗ trợ trường hợp PVC yêu cầu một PV cụ thể hoặc PV được dành trước cho một PVC cụ thể
Chức năng chính
- Đồng bộ định kỳ trạng thái của PVC và PV
- Nếu PVC không yêu cầu một PV cụ thể, tìm PV phù hợp nhất và thực hiện bind
- Nếu PVC yêu cầu một PV cụ thể, kiểm tra PV đó có tồn tại và có đáp ứng các điều kiện hay không rồi mới bind
- Nếu PVC đã được bind, kiểm tra trạng thái và chỉnh sửa khi cần
Cách hoạt động
- Khi PVC được tạo hoặc cập nhật, gọi phương thức
syncClaim
- Nếu PVC chưa được bind, gọi phương thức
syncUnboundClaim
- Nếu PVC đã được bind, gọi phương thức
syncBoundClaim
- Khi PV được tạo hoặc cập nhật, gọi phương thức
syncVolume
Các phương thức chính
syncClaim
- Gọi
syncUnboundClaim hoặc syncBoundClaim tùy theo trạng thái của PVC
syncUnboundClaim
- Nếu PVC không yêu cầu một PV cụ thể, tìm PV phù hợp nhất và thử bind
- Nếu PVC yêu cầu một PV cụ thể, kiểm tra PV đó có tồn tại và có đáp ứng các điều kiện hay không rồi mới bind
syncBoundClaim
- Nếu PVC đã được bind, kiểm tra trạng thái và chỉnh sửa khi cần
syncVolume
- Thực hiện hành động phù hợp tùy theo trạng thái của PV
- Nếu PV chưa được sử dụng, cập nhật trạng thái thành "Available"
- Nếu PV được bind với một PVC cụ thể, kiểm tra trạng thái của PVC đó và chỉnh sửa khi cần
Tóm tắt của GN⁺
- Tài liệu này cung cấp phần giải thích chi tiết về bộ điều khiển Persistent Volume của Kubernetes
- Giúp hiểu logic bind giữa Persistent Volume và Persistent Volume Claim
- Đề cập đến cách hoạt động trong chế độ khả dụng cao và cách xử lý nhiều tình huống ngoại lệ khác nhau
- Là tài liệu hữu ích cho các nhà phát triển quan tâm đến quản lý lưu trữ trong Kubernetes
- Một số dự án khác cung cấp chức năng tương tự gồm có OpenEBS, Rook
1 bình luận
Ý kiến Hacker News
Phần mềm của Space Shuttle rất ổn định và hầu như không có lỗi
Mã khá thông thường và được viết bằng Go nên có phần dài dòng
Codebase ở công ty mới được tổ chức rất tốt nên việc khám phá khá thú vị
Thành tích an toàn của Space Shuttle không tốt nên hiện không còn được vận hành nữa
Nếu dùng structural pattern matching thì có thể đơn giản hóa các khối
if/elseMã không tệ và đang tuân theo một quy tắc duy nhất
Cung cấp liên kết đến cuộc thảo luận năm 2018
Viết Kubernetes CSI driver là một trải nghiệm thú vị
Việc mỗi câu lệnh
ifđều cóelseđược xem là một thực hành an toànChia sẻ cách liên kết đến một phạm vi dòng cụ thể trong file GitHub