16.11.4. Pod에 허용 오차 추가
Pod에 허용 오차를 추가하려면 tolerations
섹션을 포함하도록 Pod 사양을 편집합니다.
Equal
연산자가 있는 Pod 구성 파일의 예
tolerations: - key: "key1" 1 operator: "Equal" 2 value: "value1" 3 effect: "NoExecute" 4 tolerationSeconds: 3600 5
- 1 2 3 4
- 테인트 및 허용 오차 구성 요소 테이블에 설명된 허용 오차 매개변수입니다.
- 5
tolerationSeconds
매개변수를 지정하여 pod가 제거되기 전까지 노드에 바인딩되는 시간을 설정합니다. 아래에서 허용 초를 사용하여 Pod 제거를 지연하는 것을 참조하십시오.
Exists
연산자가 있는 pod 구성 파일의 예
tolerations: - key: "key1" operator: "Exists" effect: "NoExecute" tolerationSeconds: 3600
이러한 톨러레이션은 위의 oc adm taint 명령으로 생성된 테인트
와 일치합니다. 톨러레이션이 있는 pod는 node1
에 스케줄링할 수 있습니다.
16.11.4.1. 허용 오차를 사용하여 Pod 제거 지연
Pod 사양에 tolerationSeconds
매개변수를 지정하여 Pod가 제거되기 전에 노드에 바인딩되는 시간을 지정할 수 있습니다. NoExecute 효과가
있는 테인트가 노드에 추가되면 테인트를 허용하지 않는 모든 Pod가 즉시 제거됩니다(Taint를 허용하는 Pod는 제거되지 않음). 그러나 제거할 Pod에 tolerationSeconds
매개변수가 있는 경우 해당 기간이 만료될 때까지 Pod가 제거되지 않습니다.
예를 들면 다음과 같습니다.
tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoExecute" tolerationSeconds: 3600
여기에서이 pod가 실행 중이지만 일치하는 테인트가 없는 경우 pod는 3,600 초 동안 노드에 바인딩된 후 제거됩니다. 이 시간 이전에 테인트가 제거되면 pod가 제거되지 않습니다.
16.11.4.1.1. 허용 오차 초의 기본값 설정
이 플러그인은 5분 동안 node.kubernetes. io/not-ready:NoExecute 및
테인트를 허용하도록 Pod의 기본 허용 허용 오차를 설정합니다.
node.kubernetes.io/unreachable:NoExecute
사용자가 제공하는 Pod 구성에 허용 오차가 이미 있는 경우 기본값은 추가되지 않습니다.
기본 허용 오차를 활성화하려면 다음을 수행합니다.
마스터 구성 파일(/etc/origin/master/master-config.yaml)을 admissionConfig 섹션에
DefaultTolerationSeconds
추가로 수정합니다.admissionConfig: pluginConfig: DefaultTolerationSeconds: configuration: kind: DefaultAdmissionConfig apiVersion: v1 disable: false
변경 사항을 적용하려면 OpenShift를 다시 시작하십시오.
# master-restart api # master-restart controllers
기본값이 추가되었는지 확인합니다.
Pod를 생성합니다.
$ oc create -f </path/to/file>
예를 들면 다음과 같습니다.
$ oc create -f hello-pod.yaml pod "hello-pod" created
Pod 허용 오차를 확인합니다.
$ oc describe pod <pod-name> |grep -i toleration
예를 들면 다음과 같습니다.
$ oc describe pod hello-pod |grep -i toleration Tolerations: node.kubernetes.io/not-ready=:Exists:NoExecute for 300s