2.8. 영구 스토리지 구성
영구 스토리지로 클러스터 모니터링을 실행하면 메트릭이 PV(영구 볼륨)에 저장되며 Pod를 다시 시작하거나 재생성할 수 있습니다. 데이터 손실에서 메트릭 또는 경고 데이터가 필요한 경우 이상적입니다. 프로덕션 환경의 경우 영구 스토리지를 구성하는 것이 매우 좋습니다. 높은 IO 요구로 인해 로컬 스토리지를 사용하는 것이 이점이 됩니다.
권장되는 구성 가능한 스토리지 기술을 참조하십시오.
2.8.1. 영구 스토리지 사전 요구 사항
- 디스크가 가득 차지 않도록 충분한 로컬 영구 스토리지를 전용으로 지정합니다. 필요한 스토리지의 양은 Pod 수에 따라 달라집니다. 영구 스토리지의 시스템 요구 사항에 대한 자세한 내용은 Prometheus 데이터베이스 스토리지 요구 사항을 참조하십시오.
- 각 복제본에 대해 하나의 PV씩, PVC(영구 볼륨 클레임)가 PV(영구 볼륨)를 요청할 준비가 되어 있는지 확인합니다. Prometheus에는 두 개의 복제본이 있고 Alertmanager에는 세 개의 복제본이 있으므로 전체 모니터링 스택을 지원하기 위해 5개의 PV가 필요합니다. Local Storage Operator에서 PV를 사용할 수 있어야 합니다. 동적으로 프로비저닝된 스토리지를 활성화하면 이 문제는 적용되지 않습니다.
-
영구 볼륨을 구성할 때
Filesystem
을volumeMode
매개변수의 스토리지 유형 값으로 사용합니다. - 참고
영구 스토리지에 로컬 볼륨을 사용하는 경우
LocalVolume
오브젝트에서volumeMode: Block
에 설명된 원시 블록 볼륨을 사용하지 마십시오. Prometheus는 원시 블록 볼륨을 사용할 수 없습니다.
2.8.2. 로컬 영구 볼륨 클레임 구성
PV(영구 볼륨)를 사용하기 위한 구성 요소를 모니터링하는 경우 PVC(영구 볼륨 클레임)를 구성해야 합니다.
사전 요구 사항
핵심 OpenShift Container Platform 모니터링 구성 요소인 경우:
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. -
cluster-monitoring-config
ConfigMap
오브젝트를 생성하셨습니다.
-
사용자 정의 프로젝트를 모니터링하는 구성 요소를 구성하는 경우:
-
cluster-admin
역할의 사용자로 또는openshift-user-workload-monitoring
프로젝트에서user-workload-monitoring-config-edit
역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-config
ConfigMap
오브젝트가 생성되어 있습니다.
-
-
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
ConfigMap
오브젝트를 편집합니다.핵심 OpenShift Container Platform 프로젝트를 모니터링하는 구성 요소의 PVC를 구성하려면 다음을 수행합니다.
openshift-monitoring
프로젝트에서cluster-monitoring-config
ConfigMap
오브젝트를 편집합니다.$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
data/config.yaml
아래의 구성 요소에 대한 PVC 구성을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | <component>: volumeClaimTemplate: spec: storageClassName: <storage_class> resources: requests: storage: <amount_of_storage>
volumeClaimTemplate을 지정하는 방법에 대한 내용은
PersistentVolumeClaims에 대한 Kubernetes 문서
를 참조하십시오.다음 예제는 핵심 OpenShift Container Platform 구성 요소를 모니터링하는 Prometheus 인스턴스의 로컬 영구 스토리지를 요청하는 PVC를 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 40Gi
위의 예에서 Local Storage Operator에 의해 생성된 스토리지 클래스를
local-storage
라고 합니다.다음 예제는 Alertmanager에 대한 로컬 영구 스토리지를 요청하는 PVC를 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | alertmanagerMain: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 10Gi
사용자 정의 프로젝트를 모니터링하는 구성 요소의 PVC를 구성하려면 다음을 수행합니다.
openshift-user-workload-monitoring
프로젝트에서user-workload-monitoring-config
ConfigMap
오브젝트를 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
data/config.yaml
아래의 구성 요소에 대한 PVC 구성을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>: volumeClaimTemplate: spec: storageClassName: <storage_class> resources: requests: storage: <amount_of_storage>
volumeClaimTemplate을 지정하는 방법에 대한 내용은
PersistentVolumeClaims에 대한 Kubernetes 문서
를 참조하십시오.다음 예제는 사용자 정의 프로젝트를 모니터링하는 Prometheus 인스턴스의 로컬 영구 스토리지를 요청하는 PVC를 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 40Gi
위의 예에서 Local Storage Operator에 의해 생성된 스토리지 클래스를
local-storage
라고 합니다.다음 예제에서는 Thanos Ruler의 로컬 영구 스토리지를 요청하는 PVC를 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 10Gi
참고thanosRuler
구성 요소의 스토리지 요구 사항은 평가되는 규칙 수와 각 규칙이 생성하는 샘플 수에 따라 달라집니다.
파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 다시 시작되고 새 스토리지 구성이 적용됩니다.
참고클러스터 관리자가 사용자 정의 프로젝트에 대한 모니터링을 활성화하지 않는 한
user-workload-monitoring-config
ConfigMap
오브젝트에 적용되는 구성이 활성화되어 있지 않습니다.주의모니터링 구성 맵에 변경 사항이 저장되면 관련 프로젝트의 Pod 및 기타 리소스가 재배포될 수 있습니다. 해당 프로젝트에서 실행 중인 모니터링 프로세스도 다시 시작할 수 있습니다.
2.8.3. 영구 스토리지 볼륨 크기 조정
OpenShift Container Platform은 기본 StorageClass
리소스가 영구 볼륨 크기 조정을 지원하는 경우에도 StatefulSet
리소스에서 사용하는 기존 영구 스토리지 볼륨 크기 조정을 지원하지 않습니다. 따라서 더 큰 크기의 기존 PVC(영구 볼륨 클레임)의 스토리지
필드를 업데이트해도 이 설정은 연결된 PV(영구 볼륨)로 전파되지 않습니다.
그러나 수동 프로세스를 사용하면 PV의 크기를 조정할 수 있습니다. Prometheus, Thanos Ruler 또는 Alertmanager와 같은 모니터링 구성 요소의 PV의 크기를 조정하려면 구성 요소가 구성된 적절한 구성 맵을 업데이트할 수 있습니다. 그런 다음 PVC에 패치를 적용하고 pod를 삭제하고 분리합니다. 포드를 고립하면 StatefulSet
리소스가 즉시 다시 생성되고 새 PVC 설정으로 Pod에 마운트된 볼륨의 크기를 자동으로 업데이트합니다. 이 과정에서 서비스 중단이 발생하지 않습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다. 핵심 OpenShift Container Platform 모니터링 구성 요소인 경우:
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. -
cluster-monitoring-config
ConfigMap
오브젝트를 생성하셨습니다. - 핵심 OpenShift Container Platform 모니터링 구성 요소를 위해 하나 이상의 PVC를 구성했습니다.
-
사용자 정의 프로젝트를 모니터링하는 구성 요소를 구성하는 경우:
-
cluster-admin
역할의 사용자로 또는openshift-user-workload-monitoring
프로젝트에서user-workload-monitoring-config-edit
역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-config
ConfigMap
오브젝트가 생성되어 있습니다. - 사용자 정의 프로젝트를 모니터링하는 구성 요소에 대해 하나 이상의 PVC를 구성했습니다.
-
프로세스
ConfigMap
오브젝트를 편집합니다.핵심 OpenShift Container Platform 프로젝트를 모니터링하는 구성 요소의 PVC의 크기를 조정하려면 다음을 수행합니다.
openshift-monitoring
프로젝트에서cluster-monitoring-config
ConfigMap
오브젝트를 편집합니다.$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
data/config.yaml
아래의 구성 요소에 대한 PVC 구성에 대한 새 스토리지 크기를 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | <component>: 1 volumeClaimTemplate: spec: storageClassName: <storage_class> 2 resources: requests: storage: <amount_of_storage> 3
다음 예제에서는 핵심 OpenShift Container Platform 구성 요소를 모니터링하는 Prometheus 인스턴스의 로컬 영구 스토리지를 100GB로 설정하는 PVC를 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 100Gi
다음 예제에서는 Alertmanager의 로컬 영구 스토리지를 40GB로 설정하는 PVC를 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | alertmanagerMain: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 40Gi
사용자 정의 프로젝트를 모니터링하는 구성 요소의 PVC의 크기를 조정하려면 다음을 수행합니다.
참고사용자 정의 프로젝트를 모니터링하는 Thanos Ruler 및 Prometheus 인스턴스의 볼륨의 크기를 조정할 수 있습니다.
openshift-user-workload-monitoring
프로젝트에서user-workload-monitoring-config
ConfigMap
오브젝트를 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
data/config.yaml
에서 모니터링 구성 요소에 대한 PVC 구성을 업데이트합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>: 1 volumeClaimTemplate: spec: storageClassName: <storage_class> 2 resources: requests: storage: <amount_of_storage> 3
다음 예제는 사용자 정의 프로젝트를 모니터링하는 Prometheus 인스턴스의 PVC 크기를 100GB로 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 100Gi
다음 예제에서는 Thanos Ruler의 PVC 크기를 20GB로 설정합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 20Gi
참고thanosRuler
구성 요소의 스토리지 요구 사항은 평가되는 규칙 수와 각 규칙이 생성하는 샘플 수에 따라 달라집니다.
파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 다시 시작됩니다.
주의모니터링 구성 맵에 변경 사항을 저장하면 관련 프로젝트의 Pod 및 기타 리소스가 재배포될 수 있습니다. 해당 프로젝트에서 실행 중인 모니터링 프로세스도 다시 시작할 수 있습니다.
업데이트된 스토리지 요청으로 모든 PVC를 수동으로 패치합니다. 다음 예제는
openshift-monitoring
네임스페이스의 Prometheus 구성 요소의 스토리지 크기를 100Gi로 조정합니다.$ for p in $(oc -n openshift-monitoring get pvc -l app.kubernetes.io/name=prometheus -o jsonpath='{range .items[*]}{.metadata.name} {end}'); do \ oc -n openshift-monitoring patch pvc/${p} --patch '{"spec": {"resources": {"requests": {"storage":"100Gi"}}}}'; \ done
--cascade=orphan
매개변수를 사용하여 기본 StatefulSet을 삭제합니다.$ oc delete statefulset -l app.kubernetes.io/name=prometheus --cascade=orphan
2.8.4. Prometheus 메트릭 데이터의 보존 시간 수정
기본적으로 OpenShift Container Platform 모니터링 스택은 Prometheus 데이터에 대한 보존 시간을 15일로 구성합니다. 보존 시간을 수정하여 데이터가 삭제되는 시간을 변경할 수 있습니다.
사전 요구 사항
핵심 OpenShift Container Platform 모니터링 구성 요소인 경우:
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. -
cluster-monitoring-config
ConfigMap
오브젝트를 생성하셨습니다.
-
사용자 정의 프로젝트를 모니터링하는 구성 요소를 구성하는 경우:
-
cluster-admin
역할의 사용자로 또는openshift-user-workload-monitoring
프로젝트에서user-workload-monitoring-config-edit
역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-config
ConfigMap
오브젝트가 생성되어 있습니다.
-
-
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
ConfigMap
오브젝트를 편집합니다.핵심 OpenShift Container Platform 프로젝트를 모니터링하는 Prometheus 인스턴스의 보존 시간을 수정하려면 다음을 수행합니다.
openshift-monitoring
프로젝트에서cluster-monitoring-config
ConfigMap
오브젝트를 편집합니다.$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
data/config.yaml
아래에 보존 시간 구성을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: retention: <time_specification>
<time_specification>
을ms
(밀리초),s
(초),m
(분),h
(시간),d
(일),w
(주) 또는y
(년)가 바로 따라오는 숫자로 바꿉니다.다음 예제에서는 핵심 OpenShift Container Platform 구성 요소를 모니터링하는 Prometheus 인스턴스의 보존 시간을 24시간으로 설정합니다.
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: retention: 24h
사용자 정의 프로젝트를 모니터링하는 Prometheus 인스턴스의 보존 시간을 수정하려면 다음을 수행합니다.
openshift-user-workload-monitoring
프로젝트에서user-workload-monitoring-config
ConfigMap
오브젝트를 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
data/config.yaml
아래에 보존 시간 구성을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: retention: <time_specification>
<time_specification>
을ms
(밀리초),s
(초),m
(분),h
(시간),d
(일),w
(주) 또는y
(년)가 바로 따라오는 숫자로 바꿉니다.다음 예제에서는 사용자 정의 프로젝트를 모니터링하는 Prometheus 인스턴스의 보존 시간을 24시간으로 설정합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: retention: 24h
파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 다시 시작됩니다.
참고클러스터 관리자가 사용자 정의 프로젝트에 대한 모니터링을 활성화하지 않는 한
user-workload-monitoring-config
ConfigMap
오브젝트에 적용되는 구성이 활성화되어 있지 않습니다.주의모니터링 구성 맵에 변경 사항이 저장되면 관련 프로젝트의 Pod 및 기타 리소스가 재배포될 수 있습니다. 해당 프로젝트에서 실행 중인 모니터링 프로세스도 다시 시작할 수 있습니다.
추가 리소스
- 모니터링 구성 맵을 생성하는 단계를 위해 모니터링 스택 구성 준비를 참조하십시오.
- 사용자 정의 프로젝트 모니터링 활성화
- 영구저장장치 이해
- 스토리지 최적화