2.5. Self Node Remediation Operator 구성


Self Node Remediation Operator는 SelfNodeRemediationConfig CR 및 SelfNodeRemediationTemplate CRD(Custom Resource Definition)를 생성합니다.

참고

특정 노드의 예기치 않은 재부팅을 방지하기 위해 Node Maintenance Operator는 노드를 유지보수 모드에 배치하고 SNR 데몬 세트가 특정 노드에서 실행되지 않도록 노드 선택기를 자동으로 추가합니다.

2.5.1. Self Node Remediation Operator 구성 이해

Self Node Remediation Operator는 self-node-remediation-config 라는 이름으로 SelfNodeRemediationConfig CR을 생성합니다. CR은 Self Node Remediation Operator의 네임스페이스에 생성됩니다.

SelfNodeRemediationConfig CR의 변경 사항은 Self Node Remediation 데몬 세트를 다시 생성합니다.

SelfNodeRemediationConfig CR은 다음 YAML 파일과 유사합니다.

apiVersion: self-node-remediation.medik8s.io/v1alpha1
kind: SelfNodeRemediationConfig
metadata:
  name: self-node-remediation-config
  namespace: openshift-workload-availability
spec:
  safeTimeToAssumeNodeRebootedSeconds: 180 
1

  watchdogFilePath: /dev/watchdog 
2

  isSoftwareRebootEnabled: true 
3

  apiServerTimeout: 15s 
4

  apiCheckInterval: 5s 
5

  maxApiErrorThreshold: 3 
6

  peerApiServerTimeout: 5s 
7

  peerDialTimeout: 5s 
8

  peerRequestTimeout: 5s 
9

  peerUpdateInterval: 15m 
10

  hostPort: 30001 
11

  customDsTolerations: 
12

      - effect: NoSchedule
        key: node-role.kubernetes.io.infra
        operator: Equal
        value: "value1"
        tolerationSeconds: 3600
1
비정상 노드에서 실행되는 영향을 받는 워크로드를 복구하기 전에 Operator가 대기하는 선택적 시간 기간을 지정합니다. 실패한 노드에서 계속 실행되는 동안 대체 Pod를 시작하면 데이터가 손상되고 run-once 의미 체계가 위반될 수 있습니다. Operator는 ApiServerTimeout,ApiCheckInterval,MaxApiErrorThreshold,PeerDial Timeout 필드와 수정 시 워치독 시간 초과 및 클러스터 크기를 사용하여 최소 기간을 계산합니다. 최소 기간 계산을 확인하려면 관리자 Pod 로그를 보고 계산된 최소 시간에 대한 참조를 초 단위로 찾습니다.

최소 기간보다 낮은 값을 지정하면 Operator는 최소 기간을 사용합니다. 그러나 이 최소값보다 높은 값으로 기간을 늘리려면 safeTimeTosumeNodeRebootedSeconds 를 최소 기간보다 높은 값으로 설정할 수 있습니다.

2
노드에서 워치독 장치의 파일 경로를 지정합니다. 워치독 장치에 대한 잘못된 경로를 입력하면 Self Node Remediation Operator에서 softdog 장치 경로를 자동으로 감지합니다.

워치독 장치를 사용할 수 없는 경우 SelfNodeRemediationConfig CR은 소프트웨어 재부팅을 사용합니다.

3
비정상 노드의 소프트웨어 재부팅을 활성화하려면 다음을 지정합니다. 기본적으로 값은 SoftwareRebootEnabled 입니다. 소프트웨어 재부팅을 비활성화하려면 매개 변수 값을 false 로 설정합니다.
4
각 API 서버와의 연결을 확인하려면 타임아웃 기간을 지정합니다. 이 기간이 지나면 Operator가 수정을 시작합니다. 시간 초과 기간은 10밀리초보다 크거나 같아야 합니다.
5
각 API 서버와의 연결을 확인할 빈도를 지정합니다. 시간제한 기간은 1초보다 크거나 같아야 합니다.
6
임계값을 지정합니다. 이 임계값에 도달하면 노드가 해당 피어에 연결하기 시작합니다. 임계값은 1초보다 크거나 같아야 합니다.
7
API 서버를 연결할 피어의 시간 제한을 지정합니다. 시간 초과 기간은 10밀리초보다 크거나 같아야 합니다.
8
피어와의 연결을 설정하기 위한 시간 초과 기간을 지정합니다. 시간 초과 기간은 10밀리초보다 크거나 같아야 합니다.
9
피어에서 응답을 가져올 시간 초과 기간을 지정합니다. 시간 초과 기간은 10밀리초보다 크거나 같아야 합니다.
10
IP 주소와 같은 피어 정보를 업데이트할 빈도를 지정합니다. 시간 초과 기간은 10초보다 크거나 같아야 합니다.
11
Self Node Remediation 에이전트가 내부 통신에 사용하는 포트를 변경하려면 선택적 값을 지정합니다. 값은 0보다 커야 합니다. 기본값은 포트 30001입니다.
12
다양한 유형의 노드에 대한 수정을 지원하려면 DaemonSet에서 실행 중인 사용자 정의 허용 오차 Self Node Remediation 에이전트를 지정합니다. 다음 필드를 구성할 수 있습니다.
  • effect: effect는 일치시킬 테인트 효과를 나타냅니다. 이 필드가 비어 있으면 모든 테인트 효과가 일치합니다. 지정된 경우 허용되는 값은 NoSchedule,PreferNoScheduleNoExecute 입니다.
  • key: 키는 허용 오차가 적용되는 taint 키입니다. 이 필드가 비어 있으면 모든 taint 키가 일치합니다. 키가 비어 있으면 operator 필드가 Exists 여야 합니다. 이 조합은 모든 값과 모든 키와 일치하는 것을 의미합니다.
  • operator: Operator는 키와 값의 관계를 나타냅니다. 유효한 연산자는 ExistsEqual 입니다. 기본값은 Equal 입니다. exists 는 특정 카테고리의 모든 테인트를 허용할 수 있도록 값의 와일드카드와 동일합니다.
  • value: 허용 오차가 일치하는 테인트 값입니다. 연산자가 Exists 인 경우 값은 비어 있어야 합니다. 그렇지 않으면 일반 문자열일 뿐입니다.
  • tolerationSeconds: 허용 오차(영향이 NoExecute여야 하며, 그렇지 않으면 이 필드가 무시됨) 테인트를 허용하는 기간입니다. 기본적으로 설정되어 있지 않습니다. 즉, 테인트를 영구적으로 허용한다는 의미입니다(즉, 제거하지 마십시오). 0 및 음수 값은 시스템에서 0(즉 즉시 제거됨)으로 처리됩니다.
  • 사용자 정의 허용 오차를 사용하면 Self Node Remediation 에이전트 Pod에 허용 오차를 추가할 수 있습니다. 자세한 내용은 허용 오차를 사용하여 OpenShift Logging Pod 배치 제어를 참조하십시오.
참고
  • Self Node Remediation Operator는 배포 네임스페이스에 기본적으로 CR을 생성합니다.
  • CR의 이름은 self-node-remediation-config 여야 합니다.
  • SelfNodeRemediationConfig CR이 하나만 있을 수 있습니다.
  • SelfNodeRemediationConfig CR을 삭제하면 Self Node Remediation이 비활성화됩니다.
  • Self Node Remediation Operator가 생성한 self-node-remediation-config CR을 편집할 수 있습니다. 그러나 Self Node Remediation Operator에 대한 새 CR을 생성하려고 하면 로그에 다음 메시지가 표시됩니다.
controllers.SelfNodeRemediationConfig
ignoring selfnoderemediationconfig CRs that are not named 'self-node-remediation-config'
or not in the namespace of the operator:
'openshift-workload-availability' {"selfnoderemediationconfig":
"openshift-workload-availability/selfnoderemediationconfig-copy"}

2.5.2. Self Node Remediation 템플릿 구성 이해

Self Node Remediation Operator는 SelfNodeRemediationTemplate CRD(Custom Resource Definition)도 생성합니다. 이 CRD는 워크로드를 더 빨리 복구하기 위한 노드의 수정 전략을 정의합니다. 다음 수정 전략을 사용할 수 있습니다.

자동
이 수정 전략은 Self Node Remediation Operator가 클러스터에 가장 적합한 수정 전략을 결정하도록 하여 수정 프로세스를 단순화합니다. 이 전략은 클러스터에서 OutOfServiceTaint 전략을 사용할 수 있는지 확인합니다. OutOfServiceTaint 전략을 사용할 수 있는 경우 Operator는 OutOfServiceTaint 전략을 선택합니다. OutOfServiceTaint 전략을 사용할 수 없는 경우 Operator는 ResourceDeletion 전략을 선택합니다. Automatic 은 기본 수정 전략입니다.
ResourceDeletion
이 수정 전략에서는 노드 오브젝트가 제거되지 않고 노드의 Pod를 제거합니다.
OutOfServiceTaint
이 수정 전략으로 인해 노드 오브젝트가 제거되지 않고 노드에서 Pod 및 관련 볼륨 연결이 제거됩니다. 노드에 OutOfServiceTaint 전략을 배치하여 이를 달성합니다. 이 전략은 OpenShift Container Platform 버전 4.13 이후의 기술 프리뷰 및 OpenShift Container Platform 버전 4.15 이후의 일반 가용성에서 지원됩니다.

Self Node Remediation Operator는 자동 수정 전략에서 사용하는 strategy self-node-remediation-automatic-strategy-template 에 대한 SelfNodeRemediationTemplate CR을 생성합니다.

SelfNodeRemediationTemplate CR은 다음 YAML 파일과 유사합니다.

apiVersion: self-node-remediation.medik8s.io/v1alpha1
kind: SelfNodeRemediationTemplate
metadata:
  creationTimestamp: "2022-03-02T08:02:40Z"
  name: self-node-remediation-<remediation_object>-deletion-template 
1

  namespace: openshift-workload-availability
spec:
  template:
    spec:
      remediationStrategy: <remediation_strategy>  
2
1
수정 전략을 기반으로 수정 템플릿 유형을 지정합니다. & lt;remediation_object >를 리소스 또는 노드로 바꿉니다(예: self- node -remediation-resource-deletion-template ).
2
수정 전략을 지정합니다. 기본 수정 전략은 자동 입니다.

2.5.3. Self Node Remediation Operator 문제 해결

2.5.3.1. 일반 문제 해결

문제
Self Node Remediation Operator 관련 문제를 해결하려고 합니다.
해결
Operator 로그를 확인합니다.

2.5.3.2. 데몬 세트 확인

문제
Self Node Remediation Operator가 설치되었지만 데몬 세트를 사용할 수 없습니다.
해결
Operator 로그에 오류 또는 경고가 있는지 확인합니다.

2.5.3.3. 수정 실패

문제
비정상 노드가 수정되지 않았습니다.
해결

다음 명령을 실행하여 SelfNodeRemediation CR이 생성되었는지 확인합니다.

$ oc get snr -A

노드가 비정상 상태가 되면 MachineHealthCheck 컨트롤러에서 SelfNodeRemediation CR을 생성하지 않은 경우 MachineHealthCheck 컨트롤러의 로그를 확인합니다. 또한 MachineHealthCheck CR에 수정 템플릿을 사용하는 데 필요한 사양이 포함되어 있는지 확인합니다.

SelfNodeRemediation CR이 생성된 경우 이름이 비정상 노드 또는 머신 오브젝트와 일치하는지 확인합니다.

문제
데몬 세트, 구성 CR 및 수정 템플릿 CR과 같은 Self Node Remediation Operator 리소스는 Operator를 제거한 후에도 존재합니다.
해결

Self Node Remediation Operator 리소스를 제거하려면 각 리소스 유형에 대해 다음 명령을 실행하여 리소스를 삭제합니다.

$ oc delete ds <self-node-remediation-ds> -n <namespace>
$ oc delete snrc <self-node-remediation-config> -n <namespace>
$ oc delete snrt <self-node-remediation-template> -n <namespace>

2.5.4. Self Node Remediation Operator에 대한 데이터 수집

Self Node Remediation Operator에 대한 디버깅 정보를 수집하려면 must-gather 툴을 사용합니다. Self Node Remediation Operator의 must-gather 이미지에 대한 자세한 내용은 특정 기능에 대한 데이터 수집을 참조하십시오.

2.5.5. 추가 리소스

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동