1.4. 구성 드리프트 탐지 이해


노드의 디스크상의 상태가 머신 구성에 구성된 것과 다른 상황이 있을 수 있습니다. 이를 구성 드리프트 라고 합니다. 예를 들어 클러스터 관리자는 파일, systemd 장치 파일 또는 머신 구성을 통해 구성한 파일 권한을 수동으로 수정할 수 있습니다. 이로 인해 구성 드리프트가 발생합니다. 구성 드리프트로 인해 머신 구성 풀의 노드 또는 머신 구성이 업데이트될 때 문제가 발생할 수 있습니다.

MCO(Machine Config Operator)는 MCP(Machine Config Daemon)를 사용하여 노드를 정기적으로 구성 드리프트를 확인합니다. 탐지된 경우 MCO는 노드와 MCP(Machine config pool)를 Degraded 로 설정하고 오류를 보고합니다. 성능이 저하된 노드는 온라인 상태이고 작동하지만 업데이트할 수 없습니다.

MCD는 다음 조건 각각에 대해 구성 드리프트 탐지를 수행합니다.

  • 노드가 부팅되는 경우
  • 머신 구성에 지정된 파일(Ignition 파일 및 systemd 드롭인 단위)이 머신 구성 외부에서 수정되는 경우
  • 새 머신 구성을 적용하기 전에

    참고

    노드에 새 머신 구성을 적용하면 MCD가 구성 드리프트 탐지를 일시적으로 종료합니다. 새 머신 구성이 노드의 머신 구성과 반드시 다르기 때문에 이 종료가 필요합니다. 새 머신 구성을 적용한 후 MCD는 새 머신 구성을 사용하여 구성 드리프트 탐지를 다시 시작합니다.

구성 드리프트 탐지를 수행할 때 MCD는 파일 콘텐츠 및 권한이 현재 적용된 머신 구성에 지정된 항목과 완전히 일치하는지 확인합니다. 일반적으로 MCD는 탐지가 트리거된 후 1초 이내에 구성 드리프트를 감지합니다.

MCD가 구성 드리프트를 감지하면 MCD는 다음 작업을 수행합니다.

  • 콘솔 로그에 오류를 발송합니다.
  • Kubernetes 이벤트 내보내기
  • 노드에서 추가 탐지를 중지합니다.
  • 노드와 MCP의 성능이 저하된상태로 설정

MCP를 나열하여 성능이 저하된 노드가 있는지 확인할 수 있습니다.

$ oc get mcp worker

성능이 저하된 MCP가 있는 경우 DEGRADEDMACHINECOUNT 필드는 다음 출력과 유사하게 0이 아닙니다.

출력 예

NAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
worker   rendered-worker-404caf3180818d8ac1f50c32f14b57c3   False     True       True       2              1                   1                     1                      5h51m

머신 구성 풀을 검사하여 구성 드리프트로 인해 문제가 발생하는지 확인할 수 있습니다.

$ oc describe mcp worker

출력 예

 ...
    Last Transition Time:  2021-12-20T18:54:00Z
    Message:               Node ci-ln-j4h8nkb-72292-pxqxz-worker-a-fjks4 is reporting: "content mismatch for file \"/etc/mco-test-file\"" 1
    Reason:                1 nodes are reporting degraded status on sync
    Status:                True
    Type:                  NodeDegraded 2
 ...

1
이 메시지는 머신 구성에서 추가한 노드의 /etc/mco-test-file 파일이 머신 구성 외부에서 변경되었음을 보여줍니다.
2
노드의 상태는 NodeDegraded 입니다.

또는 성능이 저하된 노드를 알고 있는 경우 해당 노드를 검사합니다.

$ oc describe node/ci-ln-j4h8nkb-72292-pxqxz-worker-a-fjks4

출력 예

 ...

Annotations:        cloud.network.openshift.io/egress-ipconfig: [{"interface":"nic0","ifaddr":{"ipv4":"10.0.128.0/17"},"capacity":{"ip":10}}]
                    csi.volume.kubernetes.io/nodeid:
                      {"pd.csi.storage.gke.io":"projects/openshift-gce-devel-ci/zones/us-central1-a/instances/ci-ln-j4h8nkb-72292-pxqxz-worker-a-fjks4"}
                    machine.openshift.io/machine: openshift-machine-api/ci-ln-j4h8nkb-72292-pxqxz-worker-a-fjks4
                    machineconfiguration.openshift.io/controlPlaneTopology: HighlyAvailable
                    machineconfiguration.openshift.io/currentConfig: rendered-worker-67bd55d0b02b0f659aef33680693a9f9
                    machineconfiguration.openshift.io/desiredConfig: rendered-worker-67bd55d0b02b0f659aef33680693a9f9
                    machineconfiguration.openshift.io/reason: content mismatch for file "/etc/mco-test-file" 1
                    machineconfiguration.openshift.io/state: Degraded 2
 ...

1
노드와 나열된 머신 구성 간에 구성 드리프트가 감지되었음을 나타내는 오류 메시지입니다. 여기서 오류 메시지는 머신 구성에 의해 추가된 /etc/mco-test-file 의 내용이 머신 구성 외부에서 변경되었음을 나타냅니다.
2
노드의 상태는 Degraded 입니다.

다음 수정 사항 중 하나를 수행하여 구성 드리프트를 수정하고 노드를 Ready 상태로 되돌릴 수 있습니다.

  • 노드에 있는 파일의 내용 및 파일 권한이 머신 구성에 구성된 항목과 일치하는지 확인합니다. 파일 내용을 수동으로 다시 작성하거나 파일 권한을 변경할 수 있습니다.
  • 성능이 저하된 노드에서 force 파일을 생성합니다. 강제 파일을 사용하면 MCD가 일반적인 구성 드리프트 탐지를 무시하고 현재 머신 구성을 다시 적용합니다.

    참고

    노드에 강제 파일을 생성하면 해당 노드가 재부팅됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.