k8s \ openshift에 pods \ containers에 대한 기본 메모리 요청 및 / 또는 제한이 있습니까?

Jan 24 2021

안녕하세요 DevOps 동료 여러분,

나는 이것이 k8s 또는 Openshift의 기본 요청 및 / 또는 pod \ container 당 제한인지 여부를 이해하려고 노력하고 있습니다. 또는 현재와 관련하여 향후 변경 사항을 알고 있습니다.

나는이 대답을 보았습니다 : 적어도 Google의 k8 구현에 대해 아무것도 없다는 것을 나타내는 포드에 할당 된 기본 메모리는 무엇이며 k8의 현재 상태에 대해서도 알고 싶습니다. 온 프레미스 배포의 Openshift.

현재 엔터프라이즈 openshift 3.11.16 클러스터를 실행 중이며 곧 4.6.4로 이전하므로 RedHat의 기본 k8s (Openshift) 기반 구축 구현에 관한 것입니다.

container \ pod에 대한 기본 요청 또는 제한 값이 있습니까?

편집 : 또한 k8s 또는 openshift가 배포를 위해 설정된 애플리케이션 개발 언어 또는 환경 변수에 의해 컨테이너 메모리 요청을 예측하는 방법이 있습니까 (예 : Java 컨테이너 RUN 명령 또는 env : JVM_OPTS -Xms1G -Xmx1G)?

답변

2 VasiliAngapov Jan 24 2021 at 01:15

기본적으로 리소스 요청이나 제한이 없습니다. 즉, BestEffort QoS를 사용하여 모든 포드가 생성됩니다 . 요청 및 제한에 대한 기본값을 구성하려면 LimitRange를 사용해야 합니다.

정의에 따르면 BestEffort 포드는 "Pod에 BestEffort의 QoS 클래스를 제공하려면 포드의 컨테이너에 메모리 또는 CPU 제한 또는 요청이 없어야합니다."입니다. BestEffort 포드는 Kubernetes 스케줄러에 대해 가장 낮은 우선 순위를 가지며 리소스 경합시 제거 될 수 있습니다.

위의 모든 내용은 OpenShift를 포함한 모든 Kubernetes 배포에 적용됩니다.

1 StavBernaz Feb 04 2021 at 05:31

기본 제한이나 요청이 없습니다. 기본 리소스를 구성하려면 여기에 설명 된대로 LimitRange 리소스를 만들어야합니다.https://docs.openshift.com/container-platform/3.11/dev_guide/compute_resources.html#dev-viewing-limit-ranges

특정 리소스 제한으로 모든 새 프로젝트를 만들려면 여기에 설명 된대로 기본 프로젝트 템플릿을 수정할 수 있습니다. https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects

이것은 4.6에서도 변경되지 않고 LimitRange 또는 기본 프로젝트 템플릿을 수정하는 방법의 구현 만 변경되었습니다. (방법론은 똑같습니다)

응용 프로그램의 리소스를 예측하는 질문에 대해서는이 문제에 대한 일부 플레이어가 있습니다. 사용률과 일부 사용자 지정 지표에 따라 배포 리소스를 자동으로 변경할 수도있는 터보 노믹에 대해 들었습니다.