2.2. 컨테이너 리소스 요구사항
하향식(요청)과 상부(제한) 모두에서 작업 및 웹 컨테이너의 리소스 요구 사항을 구성할 수 있습니다. 실행 환경 컨트롤 플레인은 프로젝트 업데이트에 사용되지만 일반적으로 작업의 기본 실행 환경과 동일합니다.
두 가지 모두 정의된 컨테이너에 더 높은 QoS 클래스가 제공되므로 리소스 요청 및 제한을 설정하는 것이 가장 좋습니다. 즉, 기본 노드가 리소스 제한이고 클러스터에서 실행 중인 메모리 또는 기타 장애를 방지하기 위해 Pod를 사용해야 하는 경우 컨트롤 플레인 Pod를 다시 시작할 가능성이 적습니다.
이러한 요청 및 제한은 자동화 컨트롤러의 제어 Pod에 적용되며 제한이 설정된 경우 인스턴스의 용량 을 결정합니다. 기본적으로 작업 제어는 1 단위의 용량을 사용합니다. 작업 컨테이너의 메모리 및 CPU 제한은 제어 노드의 용량을 결정하는 데 사용됩니다. 이 값을 계산하는 방법에 대한 자세한 내용은 Resouce 확인 항목을 참조하십시오.
작업자 노드에 예약된 작업도 참조하십시오.
| 이름 | 설명 | Default |
|---|---|---|
|
| 웹 컨테이너 리소스 요구사항 | requests: {CPU: 100m, memory: 128Mi} |
|
| Task 컨테이너 리소스 요구사항 | requests: {CPU: 100m, memory: 128Mi} |
|
| EE 컨트롤 플레인 컨테이너 리소스 요구사항 | requests: {CPU: 100m, memory: 128Mi} |
|
| Redis 컨트롤 플레인 컨테이너 리소스 요구사항 | requests: {CPU:100m, memory: 128Mi} |
topology_spread_constraints 를 사용하여 별도의 기본 Kubernetes 작업자 노드에 제어 노드를 최대로 분산하는 것이 좋습니다. 적절한 요청 및 제한 집합은 해당 합계가 노드의 실제 리소스와 같은 제한 사항입니다. 제한 만 설정되면 요청이 자동으로 제한과 동일하게 설정됩니다. 그러나 제어 Pod의 컨테이너 간 리소스 사용량의 일부 변동성이 허용되므로 요청을 더 낮은 양(예: 노드에서 사용 가능한 리소스의 25%)으로 설정할 수 있습니다. 작업자 노드에 4개의 CPU와 16GB의 RAM이 있는 클러스터의 컨테이너 사용자 지정 예는 다음과 같습니다.
spec:
...
web_resource_requirements:
requests:
cpu: 250m
memory: 1Gi
limits:
cpu: 1000m
memory: 4Gi
task_resource_requirements:
requests:
cpu: 250m
memory: 1Gi
limits:
cpu: 2000m
memory: 4Gi
redis_resource_requirements
requests:
cpu: 250m
memory: 1Gi
limits:
cpu: 1000m
memory: 4Gi
ee_resource_requirements:
requests:
cpu: 250m
memory: 1Gi
limits:
cpu: 1000m
memory: 4Gi