This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.12.2. 테인트 및 허용 오차를 사용하여 로깅 Pod 배치 제어
테인트 및 허용 오차를 사용하면 노드에서 예약해야 하는 (또는 예약해서는 안 되는) Pod를 제어할 수 있습니다.
12.2.1. 테인트(Taints) 및 톨러레이션(Tolerations)의 이해 링크 복사링크가 클립보드에 복사되었습니다!
테인트를 사용하면 Pod에 일치하는 허용 오차가 없는 경우 노드에서 Pod 예약을 거부할 수 있습니다.
Node
사양(NodeSpec
)을 통해 노드에 테인트를 적용하고 Pod
사양(PodSpec
)을 통해 Pod에 허용 오차를 적용합니다. 노드에 테인트를 적용할 때 Pod에서 테인트를 허용할 수 없는 경우 스케줄러에서 해당 노드에 Pod를 배치할 수 없습니다.
노드 사양의 테인트 예
Pod
사양의 허용 오차 예
테인트 및 톨러레이션은 key, value 및 effect로 구성되어 있습니다.
매개변수 | 설명 | ||||||
---|---|---|---|---|---|---|---|
|
| ||||||
|
| ||||||
| 다음 명령 중 하나를 실행합니다.
| ||||||
|
|
컨트롤 플레인 노드에
NoSchedule
테인트를 추가하는 경우 노드에 기본적으로 추가되는node-role.kubernetes.io/master=:NoSchedule
테인트가 있어야 합니다.예를 들어 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
톨러레이션은 테인트와 일치합니다.
operator
매개변수가Equal
로 설정된 경우:-
key
매개변수는 동일합니다. -
value
매개변수는 동일합니다. -
effect
매개변수는 동일합니다.
-
operator
매개변수가Exists
로 설정된 경우:-
key
매개변수는 동일합니다. -
effect
매개변수는 동일합니다.
-
다음 테인트는 OpenShift Container Platform에 빌드됩니다.
-
node.kubernetes.io/not-ready
: 노드가 준비 상태에 있지 않습니다. 이는 노드 조건Ready=False
에 해당합니다. -
node.kubernetes.io/unreachable
: 노드가 노드 컨트롤러에서 연결할 수 없습니다. 이는 노드 조건Ready=Unknown
에 해당합니다. -
node.kubernetes.io/memory-pressure
: 노드에 메모리 부족 문제가 있습니다. 이는 노드 조건MemoryPressure=True
에 해당합니다. -
node.kubernetes.io/disk-pressure
: 노드에 디스크 부족 문제가 있습니다. 이는 노드 조건DiskPressure=True
에 해당합니다. -
node.kubernetes.io/network-unavailable
: 노드 네트워크를 사용할 수 없습니다. -
node.kubernetes.io/unschedulable
: 노드를 예약할 수 없습니다. -
node.cloudprovider.kubernetes.io/uninitialized
: 노드 컨트롤러가 외부 클라우드 공급자로 시작되면 이 테인트 노드에 사용 불가능으로 표시됩니다. cloud-controller-manager의 컨트롤러가 이 노드를 초기화하면 kubelet이 이 테인트를 제거합니다. node.kubernetes.io/pid-pressure
: 노드에 pid pressure가 있습니다. 이는 노드 조건PIDPressure=True
에 해당합니다.중요OpenShift Container Platform은 기본 pid.available
evictionHard
를 설정하지 않습니다.
12.2.2. 허용 오차를 사용하여 로그 저장소 Pod 배치 제어 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 로그 저장소 Pod에는 다음과 같은 허용 오차 구성이 있습니다.
Elasticsearch 로그 저장소 Pod 기본 허용 오차
LokiStack 로그 저장소 Pod 기본 허용 오차
테인트를 추가한 다음 ClusterLogging
사용자 정의 리소스(CR)에서 tolerations
구문을 수정하여 로그 저장소 Pod에 대한 허용 오차를 구성할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift Logging Operator가 설치되어 있습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. - Elasticsearch 또는 LokiStack인 내부 로그 저장소를 배포했습니다.
절차
다음 명령을 실행하여 로깅 Pod를 예약하려는 노드에 테인트를 추가합니다.
oc adm taint nodes <node_name> <key>=<value>:<effect>
$ oc adm taint nodes <node_name> <key>=<value>:<effect>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 예
oc adm taint nodes node1 lokistack=node:NoExecute
$ oc adm taint nodes node1 lokistack=node:NoExecute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는 키
lokistack
, 값node
및 taint 효과NoExecute
가 있는node1
에 taint를 배치합니다.NoExecute
효과가 있는 노드는 taint와 일치하는 Pod만 스케줄링하고 일치하지 않는 기존 Pod는 제거합니다.로그 저장소
Pod에 대한 허용 오차를 구성하려면ClusterLogging
CR의 logstore 섹션을 편집합니다.ClusterLogging
CR의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이 허용 오차는 oc adm taint
명령으로 생성된 taint와 일치합니다. 이 허용 오차가 있는 Pod를 node1
에 예약할 수 있습니다.
12.2.3. 허용 오차를 사용하여 로그 시각화 프로그램 Pod 배치 제어 링크 복사링크가 클립보드에 복사되었습니다!
다른 Pod에 없는 특정 키/값 쌍을 사용하여 Kibana Pod만 지정된 노드에서 실행되도록 할 수 있습니다.
사전 요구 사항
-
Red Hat OpenShift Logging Operator, OpenShift Elasticsearch Operator 및 OpenShift CLI(
oc
)를 설치했습니다.
절차
다음 명령을 실행하여 로그 시각화 프로그램 Pod를 예약하려는 노드에 테인트를 추가합니다.
oc adm taint nodes <node_name> <key>=<value>:<effect>
$ oc adm taint nodes <node_name> <key>=<value>:<effect>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 예
oc adm taint nodes node1 kibana=node:NoExecute
$ oc adm taint nodes node1 kibana=node:NoExecute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는 키
kibana
, 값node
및 taint 효과NoExecute
로node1
에 taint를 배치합니다.NoExecute
taint 효과를 사용해야 합니다.NoExecute
는 taint와 일치하는 Pod만 스케줄링하고 일치하지 않는 기존 Pod는 제거합니다.Kibana Pod에 대한 허용 오차를 구성하려면
ClusterLogging
CR의visualization
섹션을 편집합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이 허용 오차는 oc adm taint
명령으로 생성된 taint와 일치합니다. 이 허용 오차가 있는 Pod는 node1
에 스케줄링할 수 있습니다.
12.2.4. 허용 오차를 사용하여 로그 수집기 Pod 배치 제어 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 로그 수집기 Pod에는 다음과 같은 허용 오차 구성이
있습니다.
사전 요구 사항
-
Red Hat OpenShift Logging Operator 및 OpenShift CLI(
oc
)를 설치했습니다.
절차
다음 명령을 실행하여 로깅 수집기 Pod에서 로깅 수집기 Pod를 예약할 노드에 테인트를 추가합니다.
oc adm taint nodes <node_name> <key>=<value>:<effect>
$ oc adm taint nodes <node_name> <key>=<value>:<effect>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 예
oc adm taint nodes node1 collector=node:NoExecute
$ oc adm taint nodes node1 collector=node:NoExecute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는 키
collector
, 값node
및 taint 효과NoExecute
로node1
에 taint를 배치합니다.NoExecute
taint 효과를 사용해야 합니다.NoExecute
는 taint와 일치하는 Pod만 스케줄링하고 일치하지 않는 기존 Pod는 제거합니다.ClusterLogging
사용자 정의 리소스(CR)의collection
스탠자를 편집하여 로깅 수집기 Pod에 대한 허용 오차를 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이 허용 오차는 oc adm taint
명령으로 생성된 taint와 일치합니다. 이 허용 오차가 있는 Pod를 node1
에 예약할 수 있습니다.