2.2. 인프라 관련 권장 사례
이 주제에서는 OpenShift Container Platform의 인프라에 대한 권장 성능 및 확장성 사례를 제공합니다.
2.2.1. 인프라 노드 크기 조정
인프라 노드는 OpenShift Container Platform 환경의 일부를 실행하도록 레이블이 지정된 노드입니다. 인프라 노드 리소스 요구사항은 클러스터 사용 기간, 노드, 클러스터의 오브젝트에 따라 달라집니다. 이러한 요인으로 인해 Prometheus의 지표 또는 시계열 수가 증가할 수 있기 때문입니다. 다음 인프라 노드 크기 권장 사항은 모니터링 스택 및 기본 ingress-controller가 이러한 노드로 이동되는 컨트롤 플레인 노드 크기 조정 섹션에 자세히 설명된 클러스터 밀도 테스트에서 관찰된 결과를 기반으로 합니다.
작업자 노드 수 | 클러스터 밀도 또는 네임스페이스 수 | CPU 코어 수 | 메모리(GB) |
---|---|---|---|
27 | 500 | 4 | 24 |
120 | 1000 | 8 | 48 |
252 | 4000 | 16 | 128 |
501 | 4000 | 32 | 128 |
일반적으로 클러스터당 세 개의 인프라 노드를 사용하는 것이 좋습니다.
이러한 크기 조정 권장 사항은 지침으로 사용해야 합니다. Prometheus는 고도의 메모리 집약적 애플리케이션입니다. 리소스 사용량은 노드 수, 오브젝트, Prometheus 지표 스크래핑 간격, 지표 또는 시계열, 클러스터 사용 기간 등 다양한 요인에 따라 달라집니다. 또한 라우터 리소스 사용은 경로 수 및 인바운드 요청의 양/유형의 영향을 받을 수 있습니다.
이러한 권장 사항은 클러스터 생성 중에 설치된 인프라 인프라 구성 요소를 호스팅하는 인프라 노드에만 적용됩니다.
OpenShift Container Platform 4.17에서는 기본적으로 OpenShift Container Platform 3.11 및 이전 버전과 비교하여 CPU 코어의 절반(500밀리코어)이 시스템에 의해 예약되어 있습니다. 명시된 크기 조정 권장 사항은 이러한 요인의 영향을 받습니다.
2.2.2. Cluster Monitoring Operator 스케일링
OpenShift Container Platform은CMO(Cluster Monitoring Operator)가 수집하여 Prometheus 기반 모니터링 스택에 저장하는 지표를 노출합니다. 관리자는 Observe
2.2.3. Prometheus 데이터베이스 스토리지 요구사항
Red Hat은 다양한 규모에 대해 다양한 테스트를 수행했습니다.
- 다음 Prometheus 스토리지 요구 사항은 규범이 아니며 참조로 사용해야 합니다. Prometheus에서 수집한 메트릭을 노출하는 Pod, 컨테이너, 경로 또는 기타 리소스 수를 포함하여 워크로드 활동 및 리소스 밀도에 따라 클러스터에서 리소스 사용량이 증가할 수 있습니다.
- 스토리지 요구 사항에 맞게 크기 기반 데이터 보존 정책을 구성할 수 있습니다.
노드 수 | Pod 수 (2 Pod당 컨테이너) | Prometheus 스토리지 증가(1일당) | Prometheus 스토리지 증가(15일당) | 네트워크(tsdb 청크당) |
---|---|---|---|---|
50 | 1800 | 6.3GB | 94GB | 16MB |
100 | 3600 | 13GB | 195GB | 26MB |
150 | 5400 | 19GB | 283GB | 36MB |
200 | 7200 | 25GB | 375GB | 46MB |
스토리지 요구사항이 계산된 값을 초과하지 않도록 예상 크기의 약 20%가 오버헤드로 추가되었습니다.
위의 계산은 기본 OpenShift Container Platform Cluster Monitoring Operator용입니다.
CPU 사용률은 약간의 영향을 미칩니다. 50개 노드 및 1,800개 Pod당 비율이 약 40개 중 1개 코어입니다.
OpenShift Container Platform 권장 사항
- 인프라(infra) 노드를 두 개 이상 사용합니다.
- SSD 또는 NVMe(Non-volatile Memory express) 드라이브를 사용하여 openshift-container-storage 노드를 3개 이상 사용합니다.
2.2.4. 클러스터 모니터링 구성
클러스터 모니터링 스택에서 Prometheus 구성 요소의 스토리지 용량을 늘릴 수 있습니다.
프로세스
Prometheus의 스토리지 용량을 늘리려면 다음을 수행합니다.
YAML 구성 파일
cluster-monitoring-config.yaml
을 생성합니다. 예를 들면 다음과 같습니다.apiVersion: v1 kind: ConfigMap data: config.yaml: | prometheusK8s: retention: {{PROMETHEUS_RETENTION_PERIOD}} 1 nodeSelector: node-role.kubernetes.io/infra: "" volumeClaimTemplate: spec: storageClassName: {{STORAGE_CLASS}} 2 resources: requests: storage: {{PROMETHEUS_STORAGE_SIZE}} 3 alertmanagerMain: nodeSelector: node-role.kubernetes.io/infra: "" volumeClaimTemplate: spec: storageClassName: {{STORAGE_CLASS}} 4 resources: requests: storage: {{ALERTMANAGER_STORAGE_SIZE}} 5 metadata: name: cluster-monitoring-config namespace: openshift-monitoring
- 1
- Prometheus 보존의 기본값은
PROMETHEUS_RETENTION_PERIOD=15d
입니다. 단위는 s, m, h, d 접미사 중 하나를 사용하는 시간으로 측정됩니다. - 2 4
- 클러스터의 스토리지 클래스입니다.
- 3
- 일반적인 값은
PROMETHEUS_STORAGE_SIZE=2000Gi
입니다. 스토리지 값은 일반 정수 또는 E, P, T, G, M, K 접미사 중 하나를 사용하는 고정 지점 정수일 수 있습니다. Ei, Pi, Ti, Gi, Mi, Ki의 power-of-two를 사용할 수도 있습니다. - 5
- 일반적인 값은
ALERTMANAGER_STORAGE_SIZE=20Gi
입니다. 스토리지 값은 일반 정수 또는 E, P, T, G, M, K 접미사 중 하나를 사용하는 고정 지점 정수일 수 있습니다. Ei, Pi, Ti, Gi, Mi, Ki의 power-of-two를 사용할 수도 있습니다.
- 보존 기간, 스토리지 클래스 및 스토리지 크기에 대한 값을 추가합니다.
- 파일을 저장합니다.
다음을 실행하여 변경사항을 적용합니다.
$ oc create -f cluster-monitoring-config.yaml