Điểm:2

Cách giới hạn dung lượng ổ đĩa gốc cho nhóm

lá cờ gb

Tôi đã triển khai nhóm trên một nút có dung lượng 100gb. Tôi chỉ muốn một nhóm có dung lượng đĩa gốc 50gb.

Vì vậy, tôi có cấu hình như vậy trong triển khai.yaml:

         tài nguyên:
            yêu cầu:
              lưu trữ tạm thời: "50G"
            Hạn mức:
              lưu trữ tạm thời: "70G"

Nhưng khi tôi kiểm tra vùng chứa (chỉ có 1 vùng chứa trong nhóm) tôi thấy tất cả dung lượng ổ đĩa trên nút đã được phân bổ cho nhóm. Đọc từ đây, Tôi đã nghĩ lưu trữ phù du kiểm soát dung lượng ổ đĩa được phân bổ cho nhóm.

# df -h
Kích thước hệ thống tệp được sử dụng Sẵn có Sử dụng % Được gắn trên
lớp phủ 100G 6,5G 94G 7%/
tmpfs 64M 0 64M 0%/dev
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/nvme0n1p1 100G 6,5G 94G 7%/etc/hosts
shm 64M 0 64M 0%/dev/shm
tmpfs 1,9G 0 1,9G 0%/proc/acpi
tmpfs 1.9G 0 1.9G 0%/sys/phần sụn

Bất cứ ý tưởng những gì tôi đã làm sai?

user3908406 avatar
lá cờ gb
Tôi vừa chỉnh sửa câu hỏi. Ý tôi là tất cả 100gb đã được phân bổ cho nhóm nhưng tôi chỉ muốn nhóm có đĩa gốc 50gb
Điểm:2
lá cờ cn

Thực tế là toàn bộ không gian (/) hiển thị với bạn không có nghĩa là không gian có sẵn/có thể phân bổ.

Kubelet sẽ theo dõi việc sử dụng bộ lưu trữ tạm thời của bạn vỏ và hành động phù hợp (bằng cách trục xuất vỏ đã vượt quá giới hạn):

Quản lý tiêu thụ lưu trữ tạm thời

Nếu kubelet đang quản lý bộ lưu trữ tạm thời cục bộ dưới dạng tài nguyên, thì kubelet sẽ đo mức sử dụng bộ nhớ trong:

  • trốngDir khối lượng, ngoại trừ tmpfs trốngDir tập
  • thư mục chứa nhật ký cấp nút
  • các lớp chứa có thể ghi Nếu một Pod đang sử dụng nhiều dung lượng lưu trữ tạm thời hơn mức bạn cho phép, thì kubelet sẽ đặt tín hiệu trục xuất kích hoạt quá trình trục xuất Pod.

-- Kubernetes.io: Tài liệu: Khái niệm: Cấu hình: Quản lý vùng chứa tài nguyên: Mức tiêu thụ bộ nhớ tạm thời của tài nguyên


Mời các bạn xem qua ví dụ bên dưới:

Giả sử rằng bạn có một người theo dõi vỏ rõ ràng:

phiên bản api: v1
loại: Vỏ
metadata:
  tên: nginx
thông số kỹ thuật:
  hộp đựng:
  - tên: nginx
    hình ảnh: nginx
    tài nguyên:
      yêu cầu:
        lưu trữ tạm thời: "2Gi"
      Hạn mức:
        lưu trữ tạm thời: "4Gi"

Giới hạn được định cấu hình cho lưu trữ tạm thời là 4Gi. Để kiểm tra điều gì sẽ xảy ra, bạn có thể chạy:

  • kubectl exec -it nginx -- fallocate -l 10GB /evict.img

Một lưu ý phụ!

ngụy biện được sử dụng để thao tác không gian đĩa được phân bổ cho một tệp, để phân bổ lại hoặc phân bổ trước cho nó.

-- Man7.org: Linux: Trang người đàn ông: Fallocate

Sau một thời gian, bạn sẽ thấy:

  • $ kubectl mô tả nhóm nginx
Tên: nginx
Không gian tên: mặc định
Ưu tiên: 0
Nút: XYZ
Thời gian bắt đầu: Thứ hai, ngày 05 tháng 7 năm 2021 09:47:08 +0200
Nhãn: <không có>
Chú thích: <không có>
Trạng thái: Không thành công # <-- QUAN TRỌNG!
Lý do: Bị trục xuất # <-- QUAN TRỌNG!
Thông báo: Mức sử dụng bộ nhớ cục bộ tạm thời của nhóm vượt quá tổng giới hạn của vùng chứa 4Gi. # <-- QUAN TRỌNG!
<- ĐÃ GIẤU --> 
    Hạn mức:
      ephemeral-storage: 4Gi # <-- QUAN TRỌNG!
    yêu cầu:
      lưu trữ tạm thời: 2Gi
<- ĐÃ GIẤU --> 
Sự kiện:
  Nhập Lý do Tuổi từ Tin nhắn
  ---- ------ ---- ---- -------
  Trình lập lịch trình mặc định 32s được lên lịch bình thường Đã gán thành công mặc định/nginx cho XYZ
  Kéo bình thường 31 giây kubelet Kéo hình ảnh "nginx"
  Đã kéo bình thường kubelet 31 giây Đã kéo thành công hình ảnh "nginx" trong 360.098619ms
  Đã tạo bình thường 31 giây kubelet Đã tạo vùng chứa nginx
  Bắt đầu bình thường 31s kubelet Bắt đầu container nginx
  Cảnh báo Evicted 3s kubelet Pod Việc sử dụng bộ nhớ cục bộ tạm thời vượt quá tổng giới hạn của vùng chứa 4Gi. # <-- QUAN TRỌNG!
  Normal Killing 3s kubelet Dừng container nginx # <-- QUAN TRỌNG!
  • $ kubectl nhận nhóm
TÊN TÌNH TRẠNG SẴN SÀNG KHỞI ĐỘNG LẠI TUỔI
nginx 0/1 Bị trục xuất 0 9m7s

Tài nguyên bổ sung:

user3908406 avatar
lá cờ gb
Cảm ơn, điều gì sẽ xảy ra nếu tôi có 3 nhóm, mỗi nhóm yêu cầu dung lượng lưu trữ tạm thời là 40gb và 2 nút, mỗi nút có dung lượng 100gb, giả sử CPU và bộ nhớ bị hết nếu lo ngại, kubenetes sẽ lên lịch 2 nhóm trên 1 nút và 1 Pod trên nút kia để tránh trục xuất?
Dawid Kruk avatar
lá cờ cn
@ user3908406 Tóm lại là có, Kubernetes theo yêu cầu sẽ đảm bảo phân bổ tài nguyên theo tài nguyên được phân bổ và `yêu cầu` (nếu không thể, `Pod` sẽ vẫn ở trạng thái `Đang chờ xử lý`). Về chủ đề lưu trữ tạm thời khả dụng, tôi sẽ kiểm tra: `$ nút mô tả kubectl` nơi bạn có thể tìm thấy `giới hạn`/`yêu cầu` trên `Nút` cụ thể. Ngoài ra, tôi cho rằng Kubernetes sẽ cân bằng `Pods` trên `Nodes` để đảm bảo tính sẵn sàng cao trong trường hợp `Node` bị lỗi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.