2016-10-31 30 views
8

Tôi đang chạy một triển khai MySQL trên Kubernetes tuy nhiên có vẻ như không gian được phân bổ của tôi là không đủ, ban đầu tôi đã thêm một khối lượng liên tục là 50GB và bây giờ tôi muốn mở rộng đến 100GB.Có thể thay đổi kích thước Âm lượng không đổi?

Tôi đã thấy xác nhận quyền sở hữu khối lượng liên tục là không thay đổi sau khi tạo, nhưng tôi có thể bằng cách nào đó thay đổi kích thước khối lượng liên tục và sau đó tạo lại xác nhận quyền sở hữu của mình?

Trả lời

9

Không, Kubernetes chưa hỗ trợ thay đổi kích thước âm lượng tự động.

Thay đổi kích thước đĩa là một quy trình hoàn toàn thủ công tại thời điểm này.

Giả sử bạn đã tạo đối tượng Kubernetes PV với dung lượng đã cho và PV được liên kết với PVC, sau đó gắn/gắn vào nút để sử dụng bởi nhóm. Nếu bạn tăng kích thước âm lượng, các nhóm sẽ tiếp tục có thể sử dụng đĩa mà không có vấn đề, tuy nhiên chúng sẽ không có quyền truy cập vào không gian bổ sung.

Để bật không gian bổ sung trên ổ đĩa, bạn phải thay đổi kích thước phân vùng theo cách thủ công. Bạn có thể làm điều đó bằng cách làm theo các hướng dẫn here. Bạn sẽ phải xóa các pods tham chiếu đến volume trước, chờ cho nó tách ra, hơn là đính kèm/mount volume vào một số cá thể VM mà bạn có quyền truy cập và chạy qua các bước cần thiết để thay đổi kích thước của nó.

Sự cố đã mở #35941 để theo dõi yêu cầu tính năng.

+0

nhưng 'dai dẳng khối lượng claim' và' persisten volume' đã xác định kích thước, tôi nên tạo những người không xác định một kích thước? điều đó có thể không? Cảm ơn bạn đã trả lời loại – perrohunter

+2

Một PV/PVC được sử dụng để phát hiện bộ nhớ. Một PVC được tạo ra với các yêu cầu tối thiểu mà bạn muốn lưu trữ, nó sẽ liên kết với một PV (không ràng buộc) có sẵn đáp ứng các yêu cầu tối thiểu đó. Đối tượng PV là một "đại diện" của lưu trữ thực. Nó đòi hỏi khả năng được xác định. Khi PVC/PV bị ràng buộc, công suất trong hoặc không thực sự quan trọng, vì PVC được hoàn thành. Khi PVC được tham chiếu bởi một nhóm, pod chỉ sử dụng thông tin trong đối tượng PV cần thiết để gắn khối lượng đó (nó bỏ qua các giá trị dung lượng). –

+0

@SaadAli không có cách nào để hạn chế dung lượng lưu trữ được cung cấp cho ứng dụng? – Jonathan

1

Về PVC/PV 'thay đổi kích thước', điều đó vẫn không được hỗ trợ trong k8s, mặc dù tôi tin rằng nó có khả năng có thể đến trong 1,9

Có thể để đạt được kết quả cuối cùng bằng cách giao dịch với PVC/PV và (ví dụ) GCE PD mặc dù ..

Ví dụ: tôi đã triển khai gitlab, với PVC và PV được cấp phép động thông qua tài nguyên StorageClass. Dưới đây là các bước tôi chạy qua:

  1. Hãy chụp của PD (miễn là bạn quan tâm đến dữ liệu)
  2. Đảm bảo ReclaimPolicy của PV là "Giữ lại", bản vá nếu cần thiết như trình bày chi tiết ở đây: https://kubernetes.io/docs/tasks/administer-cluster/change-pv-reclaim-policy/
  3. kubectl describe pv <name-of-pv> (hữu ích khi tạo PV manifest sau)
  4. Xóa việc triển khai/pod (có thể là không cần thiết, nhưng có vẻ sạch hơn)
  5. Xóa PVC và PV
  6. Đảm bảo PD được công nhận là không được sử dụng bởi bất kỳ thứ gì (ví dụ: trang google console, trang tính toán/đĩa)
  7. Đổi kích thước PD với nhà cung cấp đám mây (ví dụ: GCE, điều này thực sự có thể được thực hiện ở giai đoạn trước, ngay cả khi đĩa được sử dụng)
  8. Tạo k8s PersistentVolume manifest (this trước đây đã được thực hiện động thông qua việc sử dụng tài nguyên StorageClass). Trong specist PersistentVolume yaml, tôi đã định nghĩa "gcePersistentDisk: pdName: <name-of-pd>", cùng với các chi tiết khác mà tôi đã nắm lấy ở bước 3. đảm bảo bạn cập nhật spec.capacity.lưu trữ dung lượng mới mà bạn muốn PV có(mặc dù không cần thiết và không có hiệu lực ở đây, bạn có thể muốn cập nhật dung lượng/giá trị lưu trữ trong bản kê PVC của bạn, cho hậu thế)
  9. kubectl apply (hoặc tương đương) để tạo lại các triển khai/pod, PVC và PV

lưu ý: một số bước có thể không cần thiết, chẳng hạn như xóa một số tài nguyên triển khai/pod .. hiện tại, mặc dù cá nhân tôi muốn xóa chúng, Tôi biết ReclaimPolicy là Retain, và tôi có một bản chụp.

0

Vâng, nó có thể được, sau khi phiên bản 1.8

4

Có thể trong Kubernetes 1.9 (alpha trong 1.8) đối với một số loại khối lượng: gcePersistentDisk, awsElasticBlockStore, Cinder, GlusterFS, rbd

Nó đòi hỏi phải tạo điều kiện cho PersistentVolumeClaimResize các lớp nhập và lưu trữ nhập học có trường allowVolumeExpansion được đặt thành true.

Xem tài liệu chính thức tại https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims

Các vấn đề liên quan