Điểm:1

Có "cấp phát bộ nhớ ban đầu" khác với "giới hạn" trong Openshift/Kubernetes không?

lá cờ cn

Trong java, bạn có không gian heap tối thiểu (-Xms) và không gian heap tối đa (-xmx). Không gian heap tối thiểu được phân bổ cho JVM ngay từ đầu, "không gian heap tối đa" là giới hạn mà JVM sẽ nói "hết dung lượng heap" khi đạt đến nó.

Có các giá trị khác nhau như vậy (ban đầu và giới hạn) cho một nhóm trong Openshift/Kubernetes hay phân bổ bộ nhớ ban đầu luôn bằng giới hạn vì một số lý do?

Điểm:1
lá cờ ng

Trong Kubernetes, các cơ chế kiểm soát tài nguyên như CPU ​​và bộ nhớ là yêu cầuHạn mức.

yêu cầu là những gì container được đảm bảo để có được. Nếu một bộ chứa yêu cầu một tài nguyên, Kubernetes sẽ chỉ lên lịch cho nó trên một nút có thể cung cấp cho nó tài nguyên đó.

Hạn mức đảm bảo rằng một vùng chứa không bao giờ vượt quá một giá trị nhất định. Vùng chứa chỉ được phép đi đến giới hạn, sau đó nó bị hạn chế.

Trong trường hợp bạn không chỉ định giới hạn CPU của mình:

  • Bộ chứa có thể sử dụng tất cả tài nguyên bộ xử lý có sẵn trên nút mà nó đang chạy - bởi vì nó không có giới hạn trên đối với tài nguyên CPU mà nó có thể sử dụng.
  • Bộ chứa được tự động gán giới hạn mặc định khi nó đang chạy trong một không gian tên có giới hạn CPU mặc định. Nếu có nhu cầu thay đổi có thể sử dụng Phạm vi giới hạn.

Trong trường hợp bạn đã chỉ định giới hạn CPU nhưng yêu cầu CPU không được chỉ định, Kubernetes sẽ tự động chỉ định yêu cầu CPU phù hợp với giới hạn.

Để tìm hiểu thêm xem tài liệu nàybài viết này.

Tristan avatar
lá cờ cn
Nhưng tôi đã đọc được rằng nếu bộ nhớ yêu cầu không được sử dụng, thì bộ nhớ đó sẽ có sẵn cho các vùng chứa khác.
kkopczak avatar
lá cờ ng
Trong [tài liệu này](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/), bạn có thể tìm thấy: "Nếu Vùng chứa chỉ định giới hạn bộ nhớ của chính nó, nhưng không chỉ định yêu cầu bộ nhớ, Kubernetes sẽ tự động chỉ định yêu cầu bộ nhớ phù hợp với giới hạn."
kkopczak avatar
lá cờ ng
Nhưng [bài viết này](https://www.papertrail.com/solution/tips/kubernetes-logging-tips-to-avoid-memory-and-resource-issues/) sẽ trả lời câu hỏi của bạn. "Nếu không đặt yêu cầu và giới hạn, các nhóm sẽ đơn giản được quản lý trên cơ sở ai đến trước được phục vụ trước. Kubernetes sẽ cố gắng phân phối RAM giữa tất cả các nhóm đang chạy một cách đồng đều, nhưng nếu một nhóm cố gắng phân bổ ngày càng nhiều bộ nhớ, Kubernetes có thể gặp trục trặc loại bỏ các nhóm khác khỏi nút để đáp ứng nhu cầu. Không có gì ngăn cản các nhóm tiêu thụ tất cả bộ nhớ trống trên nút."
Tristan avatar
lá cờ cn
Chà, nó không trả lời câu hỏi, chúng ta hãy xem xét một trường hợp sử dụng. Nút của tôi là 2 Go, tôi có 2 nhóm "yêu cầu" mỗi nhóm 1 Go, nhưng chỉ tiêu tốn 300 Mo mỗi nhóm. Nhóm thứ ba có được phép sử dụng lại bộ nhớ không sử dụng không?
kkopczak avatar
lá cờ ng
Xin lỗi vì thời gian dài để trả lời. Trả lời câu hỏi của bạn - câu hỏi thứ ba không thể làm như vậy. Hãy xem [tài liệu này](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#:~:text=How%20Pods%20with,in%20request%20rate.). Ở đây người ta có thể đọc rằng điều đó là không thể vì cần bảo vệ chống lại sự thiếu hụt tài nguyên trên một nút trong trường hợp khi việc sử dụng tài nguyên sau đó tăng lên.
Tristan avatar
lá cờ cn
Ok, cảm ơn, tài liệu bạn cung cấp câu trả lời hoàn hảo cho trường hợp sử dụng của tôi, nhưng bây giờ đây là một biến thể nhỏ: Nút là 3 Go và nhóm thứ 3 yêu cầu 1 Go và giới hạn của nó là 2 Go. Vì vậy, nó được phép bắt đầu (tổng số yêu cầu
kkopczak avatar
lá cờ ng
Tôi xin lỗi, tôi không hiểu câu hỏi của bạn. Bạn có thể giải thích điều đó? Hoặc có thể xem xét [đặt câu hỏi mới](https://serverfault.com/help/how-to-ask)?
Tristan avatar
lá cờ cn
vâng, đây chỉ là một ví dụ cụ thể để minh họa cho câu hỏi chính: Nút của tôi là 3 Go, tôi có 2 nhóm "yêu cầu" mỗi nhóm 1 Go, nhưng mỗi nhóm chỉ tiêu tốn 300 Mo. Giờ đây, nhóm thứ 3 yêu cầu 1 Lượt đi và giới hạn của nó là 2 Lượt đi. Vì vậy, nó được phép bắt đầu (tổng số yêu cầu
Wytrzymały Wiktor avatar
lá cờ it
Xin chào @Tristan. Cân nhắc mô tả trường hợp sử dụng này trong một câu hỏi riêng. Sẽ dễ tiếp cận và rõ ràng hơn đối với phần còn lại của cộng đồng để giúp bạn.

Đă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.