2.6. 노드 선택기를 사용하여 모니터링 구성 요소 이동
라벨이 지정된 노드와 함께 nodeSelector
제약 조건을 사용하면 모니터링 스택 구성 요소 중 하나를 특정 노드로 이동할 수 있습니다. 이렇게 하면 클러스터 전체에서 모니터링 구성 요소의 배치 및 배포를 제어할 수 있습니다.
모니터링 구성 요소의 배치 및 배포를 제어하여 시스템 리소스 사용을 최적화하고, 성능을 개선하며, 특정 요구 사항 또는 정책에 따라 워크로드를 분리할 수 있습니다.
2.6.1. 노드 선택기가 다른 제약 조건에서 작동하는 방법
노드 선택기 제약 조건을 사용하여 모니터링 구성 요소를 이동하는 경우 클러스터에 대한 Pod 예약을 제어하는 다른 제약 조건이 존재할 수 있습니다.
- Pod 배치를 제어하기 위해 토폴로지 분배 제약 조건이 적용될 수 있습니다.
- Prometheus, Thanos Querier, Alertmanager 및 기타 모니터링 구성 요소에 대해 하드 유사성 방지 규칙이 적용되어 이러한 구성 요소의 여러 Pod가 항상 다른 노드에 분배되므로 항상 가용성이 높아집니다.
노드에 Pod를 예약할 때 Pod 스케줄러는 Pod 배치를 결정할 때 기존 제약 조건을 모두 충족합니다. 즉, Pod 스케줄러가 어떤 노드에 배치될 Pod를 결정할 때 모든 제약 조건이 혼합됩니다.
따라서 노드 선택기 제약 조건을 구성하지만 기존 제약 조건을 모두 충족할 수 없는 경우 Pod 스케줄러는 모든 제약 조건과 일치시킬 수 없으며 노드에 배치할 Pod를 예약하지 않습니다.
모니터링 구성 요소에 대한 탄력성과 고가용성을 유지하려면 충분한 노드를 사용할 수 있는지 확인하고 구성 요소를 이동하기 위해 노드 선택기 제약 조건을 구성할 때 모든 제약 조건과 일치하는지 확인합니다.
2.6.2. 다른 노드로 모니터링 구성 요소 이동
스택 구성 요소를 실행할 클러스터의 노드를 지정하려면 노드에 할당된 라벨과 일치하도록 구성 요소의 ConfigMap
오브젝트에서 nodeSelector
제약 조건을 구성합니다.
예약된 기존 Pod에 노드 선택기 제약 조건을 직접 추가할 수 없습니다.
사전 요구 사항
핵심 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
)가 설치되어 있습니다.
프로세스
아직 수행하지 않은 경우 모니터링 구성 요소를 실행할 노드에 라벨을 추가합니다.
$ oc label nodes <node-name> <node-label>
ConfigMap
오브젝트를 편집합니다.핵심 OpenShift Container Platform 프로젝트를 모니터링하는 구성 요소를 이동하려면 다음을 수행합니다.
openshift-monitoring
프로젝트에서cluster-monitoring-config
ConfigMap
오브젝트를 편집합니다.$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
data/config.yaml
에서 구성 요소의nodeSelector
제약 조건의 노드 레이블을 지정합니다.apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | <component>: 1 nodeSelector: <node-label-1> 2 <node-label-2> 3 <...>
참고nodeSelector
제약 조건을 구성한 후 모니터링 구성 요소가Pending
상태인 경우 테인트(Taints) 및 톨러레이션(Tolerations)과 관련된 오류에 대한 Pod 이벤트를 확인합니다.
사용자 정의 프로젝트를 모니터링하는 구성 요소를 이동하려면 다음을 수행합니다.
openshift-user-workload-monitoring
프로젝트에서user-workload-monitoring-config
ConfigMap
오브젝트를 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
data/config.yaml
에서 구성 요소의nodeSelector
제약 조건의 노드 레이블을 지정합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>: 1 nodeSelector: <node-label-1> 2 <node-label-2> 3 <...>
참고nodeSelector
제약 조건을 구성한 후 모니터링 구성 요소가Pending
상태인 경우 테인트(Taints) 및 톨러레이션(Tolerations)과 관련된 오류에 대한 Pod 이벤트를 확인합니다.
파일을 저장하여 변경 사항을 적용합니다. 새 구성에 지정된 구성 요소가 새 노드로 자동 이동됩니다.
참고클러스터 관리자가 사용자 정의 프로젝트에 대한 모니터링을 활성화하지 않는 한
user-workload-monitoring-config
ConfigMap
오브젝트에 적용되는 구성이 활성화되어 있지 않습니다.주의모니터링 구성 맵에 변경 사항을 저장하면 프로젝트의 Pod 및 기타 리소스가 재배포될 수 있습니다. 해당 프로젝트에서 실행 중인 모니터링 프로세스도 다시 시작할 수 있습니다.
추가 리소스
- 모니터링 구성 맵을 생성하는 단계를 위해 모니터링 스택 구성 준비를 참조하십시오.
- 사용자 정의 프로젝트 모니터링 활성화