4.7. 허용 오차를 사용하여 OpenShift Logging Pod 배치 제어
taint와 허용 오차를 사용하여 OpenShift Logging Pod가 특정 노드에서 실행되고 해당 노드에서 다른 워크로드가 실행되지 않도록 할 수 있습니다.
taint와 허용 오차는 간단한 key:value
쌍입니다. 노드의 taint는 해당 taint를 허용하지 않는 모든 Pod를 거절하도록 노드에 지시합니다.
key
는 최대 253자의 문자열이고 value
은 최대 63자의 문자열입니다. 문자열은 문자 또는 숫자로 시작해야 하며 문자, 숫자, 하이픈, 점 및 밑줄을 포함할 수 있습니다.
허용 오차가 있는 샘플 OpenShift Logging CR
apiVersion: "logging.openshift.io/v1" kind: "ClusterLogging" metadata: name: "instance" namespace: openshift-logging ... spec: managementState: "Managed" logStore: type: "elasticsearch" elasticsearch: nodeCount: 3 tolerations: 1 - key: "logging" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000 resources: limits: memory: 16Gi requests: cpu: 200m memory: 16Gi storage: {} redundancyPolicy: "ZeroRedundancy" visualization: type: "kibana" kibana: tolerations: 2 - key: "logging" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000 resources: limits: memory: 2Gi requests: cpu: 100m memory: 1Gi replicas: 1 collection: logs: type: "fluentd" fluentd: tolerations: 3 - key: "logging" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000 resources: limits: memory: 2Gi requests: cpu: 100m memory: 1Gi
4.7.1. 허용 오차를 사용하여 로그 저장소 Pod 배치 제어
Pod의 허용 오차를 사용하여 로그 저장소 Pod가 실행되는 노드를 제어하고 다른 워크로드가 해당 노드를 사용하지 못하게 할 수 있습니다.
ClusterLogging
사용자 정의 리소스(CR)를 통해 로그 저장소 Pod에 허용 오차를 적용하고 노드 사양을 통해 노드에 taint를 적용합니다. 노드의 taint는 해당 taint를 허용하지 않는 모든 Pod를 거절하도록 노드에 지시하는 key:value pair
입니다. 다른 Pod에 없는 특정 key:value
쌍을 사용하는 경우 해당 노드에서는 로그 저장소 Pod만 실행할 수 있습니다.
기본적으로 로그 저장소 Pod에는 다음과 같은 허용 오차가 있습니다.
tolerations: - effect: "NoExecute" key: "node.kubernetes.io/disk-pressure" operator: "Exists"
사전 요구 사항
- OpenShift Logging 및 Elasticsearch가 설치되어 있어야 합니다.
프로세스
다음 명령을 사용하여 OpenShift Logging Pod를 예약하려는 노드에 taint를 추가합니다.
$ oc adm taint nodes <node-name> <key>=<value>:<effect>
예를 들면 다음과 같습니다.
$ oc adm taint nodes node1 elasticsearch=node:NoExecute
이 예에서는 키
elasticsearch
, 값node
및 taint 효과NoExecute
로node1
에 taint를 배치합니다.NoExecute
효과가 있는 노드는 taint와 일치하는 Pod만 스케줄링하고 일치하지 않는 기존 Pod는 제거합니다.Elasticsearch Pod에 대한 허용 오차를 구성하려면
ClusterLogging
CR의logstore
섹션을 편집합니다.logStore: type: "elasticsearch" elasticsearch: nodeCount: 1 tolerations: - key: "elasticsearch" 1 operator: "Exists" 2 effect: "NoExecute" 3 tolerationSeconds: 6000 4
이 허용 오차는 oc adm taint
명령으로 생성된 taint와 일치합니다. 이 허용 오차가 있는 Pod를 node1
에 예약할 수 있습니다.
4.7.2. 허용 오차를 사용하여 로그 시각화 프로그램 Pod 배치 제어
Pod의 허용 오차를 사용하여 로그 시각화 프로그램 Pod가 실행되는 노드를 제어하고 다른 워크로드가 해당 노드를 사용하지 못하게 할 수 있습니다.
ClusterLogging
사용자 정의 리소스(CR)를 통해 로그 시각화 프로그램 Pod에 허용 오차를 적용하고 노드 사양을 통해 노드에 taint를 적용합니다. 노드의 taint는 해당 taint를 허용하지 않는 모든 Pod를 거절하도록 노드에 지시하는 key:value pair
입니다. 다른 Pod에 없는 특정 key:value
쌍을 사용하는 경우 해당 노드에서는 Kibana Pod만 실행할 수 있습니다.
사전 요구 사항
- OpenShift Logging 및 Elasticsearch가 설치되어 있어야 합니다.
프로세스
다음 명령을 사용하여 로그 시각화 프로그램 Pod를 예약하려는 노드에 taint를 추가합니다.
$ oc adm taint nodes <node-name> <key>=<value>:<effect>
예를 들면 다음과 같습니다.
$ oc adm taint nodes node1 kibana=node:NoExecute
이 예에서는 키
kibana
, 값node
및 taint 효과NoExecute
로node1
에 taint를 배치합니다.NoExecute
taint 효과를 사용해야 합니다.NoExecute
는 taint와 일치하는 Pod만 스케줄링하고 일치하지 않는 기존 Pod는 제거합니다.Kibana Pod에 대한 허용 오차를 구성하려면
ClusterLogging
CR의visualization
섹션을 편집합니다.visualization: type: "kibana" kibana: tolerations: - key: "kibana" 1 operator: "Exists" 2 effect: "NoExecute" 3 tolerationSeconds: 6000 4
이 허용 오차는 oc adm taint
명령으로 생성된 taint와 일치합니다. 이 허용 오차가 있는 Pod는 node1
에 스케줄링할 수 있습니다.
4.7.3. 허용 오차를 사용하여 로그 수집기 Pod 배치 제어
Pod의 허용 오차를 사용하여 로깅 수집기 Pod가 실행되는 노드를 확인하고 다른 워크로드가 해당 노드를 사용하지 못하게 할 수 있습니다.
ClusterLogging
사용자 정의 리소스(CR)를 통해 로깅 수집기 Pod에 허용 오차를 적용하고 노드 사양을 통해 노드에 taint를 적용합니다. taint 및 허용 오차를 사용하여 메모리나 CPU 문제 등으로 인해 Pod가 제거되지 않도록 할 수 있습니다.
기본적으로 로깅 수집기 Pod에는 다음과 같은 허용 오차가 있습니다.
tolerations: - key: "node-role.kubernetes.io/master" operator: "Exists" effect: "NoExecute"
사전 요구 사항
- OpenShift Logging 및 Elasticsearch가 설치되어 있어야 합니다.
프로세스
다음 명령을 사용하여 로깅 수집기 Pod에서 로깅 수집기 Pod를 스케줄링할 노드에 taint를 추가합니다.
$ oc adm taint nodes <node-name> <key>=<value>:<effect>
예를 들면 다음과 같습니다.
$ oc adm taint nodes node1 collector=node:NoExecute
이 예에서는 키
collector
, 값node
및 taint 효과NoExecute
로node1
에 taint를 배치합니다.NoExecute
taint 효과를 사용해야 합니다.NoExecute
는 taint와 일치하는 Pod만 스케줄링하고 일치하지 않는 기존 Pod는 제거합니다.ClusterLogging
사용자 정의 리소스(CR)의collection
스탠자를 편집하여 로깅 수집기 Pod에 대한 허용 오차를 구성합니다.collection: logs: type: "fluentd" fluentd: tolerations: - key: "collector" 1 operator: "Exists" 2 effect: "NoExecute" 3 tolerationSeconds: 6000 4
이 허용 오차는 oc adm taint
명령으로 생성된 taint와 일치합니다. 이 허용 오차가 있는 Pod는 node1
에 스케줄링할 수 있습니다.