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