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

1
이 허용 오차는 Elasticsearch Pod에 추가됩니다.
2
이 허용 오차는 Kibana Pod에 추가됩니다.
3
이 허용 오차는 로깅 수집기 Pod에 추가됩니다.

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가 설치되어 있어야 합니다.

프로세스

  1. 다음 명령을 사용하여 OpenShift Logging Pod를 예약하려는 노드에 taint를 추가합니다.

    $ oc adm taint nodes <node-name> <key>=<value>:<effect>

    예를 들면 다음과 같습니다.

    $ oc adm taint nodes node1 elasticsearch=node:NoExecute

    이 예에서는 키 elasticsearch, 값 node 및 taint 효과 NoExecutenode1에 taint를 배치합니다. NoExecute 효과가 있는 노드는 taint와 일치하는 Pod만 스케줄링하고 일치하지 않는 기존 Pod는 제거합니다.

  2. Elasticsearch Pod에 대한 허용 오차를 구성하려면 ClusterLogging CR의 logstore 섹션을 편집합니다.

      logStore:
        type: "elasticsearch"
        elasticsearch:
          nodeCount: 1
          tolerations:
          - key: "elasticsearch"  1
            operator: "Exists"  2
            effect: "NoExecute"  3
            tolerationSeconds: 6000  4
    1
    노드에 추가한 키를 지정합니다.
    2
    노드에 elasticsearch 키의 taint가 존재할 것을 요구하도록 Exists Operator를 지정합니다.
    3
    NoExecute 효과를 지정합니다.
    4
    선택적으로 tolerationSeconds 매개변수를 지정하여 Pod가 제거되기 전까지 노드에 바인딩되는 시간을 설정합니다.

이 허용 오차는 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가 설치되어 있어야 합니다.

프로세스

  1. 다음 명령을 사용하여 로그 시각화 프로그램 Pod를 예약하려는 노드에 taint를 추가합니다.

    $ oc adm taint nodes <node-name> <key>=<value>:<effect>

    예를 들면 다음과 같습니다.

    $ oc adm taint nodes node1 kibana=node:NoExecute

    이 예에서는 키 kibana, 값 node 및 taint 효과 NoExecutenode1에 taint를 배치합니다. NoExecute taint 효과를 사용해야 합니다. NoExecute는 taint와 일치하는 Pod만 스케줄링하고 일치하지 않는 기존 Pod는 제거합니다.

  2. Kibana Pod에 대한 허용 오차를 구성하려면 ClusterLogging CR의 visualization 섹션을 편집합니다.

      visualization:
        type: "kibana"
        kibana:
          tolerations:
          - key: "kibana"  1
            operator: "Exists"  2
            effect: "NoExecute"  3
            tolerationSeconds: 6000 4
    1
    노드에 추가한 키를 지정합니다.
    2
    key/value/effect 매개변수가 일치할 것을 요구하도록 Exists Operator를 지정합니다.
    3
    NoExecute 효과를 지정합니다.
    4
    선택적으로 tolerationSeconds 매개변수를 지정하여 Pod가 제거되기 전까지 노드에 바인딩되는 시간을 설정합니다.

이 허용 오차는 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가 설치되어 있어야 합니다.

프로세스

  1. 다음 명령을 사용하여 로깅 수집기 Pod에서 로깅 수집기 Pod를 스케줄링할 노드에 taint를 추가합니다.

    $ oc adm taint nodes <node-name> <key>=<value>:<effect>

    예를 들면 다음과 같습니다.

    $ oc adm taint nodes node1 collector=node:NoExecute

    이 예에서는 키 collector, 값 node 및 taint 효과 NoExecutenode1에 taint를 배치합니다. NoExecute taint 효과를 사용해야 합니다. NoExecute는 taint와 일치하는 Pod만 스케줄링하고 일치하지 않는 기존 Pod는 제거합니다.

  2. ClusterLogging 사용자 정의 리소스(CR)의 collection 스탠자를 편집하여 로깅 수집기 Pod에 대한 허용 오차를 구성합니다.

      collection:
        logs:
          type: "fluentd"
          fluentd:
            tolerations:
            - key: "collector"  1
              operator: "Exists"  2
              effect: "NoExecute"  3
              tolerationSeconds: 6000  4
    1
    노드에 추가한 키를 지정합니다.
    2
    key/value/effect 매개변수가 일치할 것을 요구하도록 Exists Operator를 지정합니다.
    3
    NoExecute 효과를 지정합니다.
    4
    선택적으로 tolerationSeconds 매개변수를 지정하여 Pod가 제거되기 전까지 노드에 바인딩되는 시간을 설정합니다.

이 허용 오차는 oc adm taint 명령으로 생성된 taint와 일치합니다. 이 허용 오차가 있는 Pod는 node1에 스케줄링할 수 있습니다.

4.7.4. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.