Czy istnieje domyślne żądanie pamięci i \ lub limity dla podów \ kontenerów w k8s \ openshift?

Jan 24 2021

Witajcie, koledzy DevOps,

Próbuję zrozumieć, czy jest to żądanie podstawowe i \ lub limit na pod \ kontener w k8s lub Openshift, tak jak są one dzisiaj, czy też wiesz o zmianie w przyszłości w tym zakresie.

Widziałem tę odpowiedź: Jaka jest domyślna pamięć przydzielona dla kapsuły stwierdzającej, że nie ma jej, przynajmniej dla implementacji k8s przez Google i chciałbym to wiedzieć na pewno również dla obecnego stanu k8 i Openshift we wdrożeniach lokalnych.

obecnie działa klaster openshift 3.11.16 dla przedsiębiorstw i wkrótce przechodzę na 4.6.4, więc moje pytanie dotyczy również implementacji RedHata polegającej na budowaniu na domyślnych k8s (Openshift).

Czy istnieją jakieś żądania podstawowe lub wartości graniczne dla kontenera \ pod?

EDYCJA: Czy istnieje również sposób, w jaki k8s lub openshift przewidywałyby żądanie pamięci kontenera przez język programowania aplikacji lub zmienne środowiskowe ustawione do wdrożenia (na przykład z polecenia RUN kontenera java lub env: JVM_OPTS -Xms1G -Xmx1G)?

Odpowiedzi

2 VasiliAngapov Jan 24 2021 at 01:15

Domyślnie nie ma żądań ani limitów zasobów, co oznacza, że ​​każdy pod jest tworzony przy użyciu BestEffort QoS . Jeśli chcesz skonfigurować domyślne wartości żądań i limitów, powinieneś skorzystać z LimitRange .

Zgodnie z definicją BestEffort, „aby Podowi można było przypisać klasę QoS BestEffort, Kontenery w Podu nie mogą mieć żadnych ograniczeń ani żądań pamięci ani procesora”. Poduszki BestEffort mają najniższy priorytet dla harmonogramu Kubernetes i mogą zostać eksmitowane w przypadku rywalizacji o zasoby

Wszystko, co zostało powiedziane powyżej, dotyczy wszystkich dystrybucji Kubernetes, w tym OpenShift.

1 StavBernaz Feb 04 2021 at 05:31

Nie ma domyślnego limitu ani żądania. Aby skonfigurować zasoby domyślne, należy utworzyć zasób LimitRange zgodnie z opisem poniżej:https://docs.openshift.com/container-platform/3.11/dev_guide/compute_resources.html#dev-viewing-limit-ranges

Jeśli chcesz, aby każdy nowy projekt był tworzony z określonymi limitami zasobów, możesz zmodyfikować domyślny szablon projektu, jak opisano tutaj: https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects

Nie zmienia się to również w 4.6, tylko implementacja sposobu modyfikowania LimitRange lub domyślnego szablonu projektu. (Metodologia jest dokładnie taka sama)

Jeśli chodzi o Twoje pytanie o przewidywanie zasobów aplikacji, jest kilku graczy wokół tego problemu. Słyszałem tylko o turbonomii, która może nawet automatycznie zmienić zasoby wdrożeń poprzez wykorzystanie, a może także niektóre niestandardowe metryki.