3장. 노드 중단 정책을 사용하여 머신 구성 변경의 중단을 최소화


기본적으로 MachineConfig 오브젝트의 필드를 특정 변경할 때 MCO(Machine Config Operator)는 해당 머신 구성과 연결된 노드를 드레이닝하고 재부팅합니다. 그러나 워크로드에 거의 또는 전혀 중단하지 않아도 되는 일부 Ignition 구성 오브젝트에 대한 변경 사항을 정의하는 노드 중단 정책을 생성할 수 있습니다.

노드 중단 정책을 사용하면 클러스터 중단과 변경되지 않는 구성 변경 사항을 정의할 수 있습니다. 이를 통해 클러스터에서 소규모 머신 구성을 변경할 때 노드 다운타임을 줄일 수 있습니다. 정책을 구성하려면 openshift-machine-config-operator 네임스페이스에 있는 MachineConfiguration 오브젝트를 수정합니다. 다음 MachineConfiguration 오브젝트에서 노드 중단 정책 예제를 참조하십시오.

참고

노드 중단 정책에 관계없이 항상 재부팅이 필요한 머신 구성 변경 사항이 있습니다. 자세한 내용은 Machine Config Operator 정보를 참조하십시오.

노드 중단 정책을 생성한 후 MCO는 정책의 유효성을 검사하여 형식 지정 문제와 같은 파일에서 잠재적인 문제를 검색합니다. 그런 다음 MCO는 클러스터 기본값과 정책을 병합하고 머신 구성의 status.nodeDisruptionPolicyStatus 필드를 머신 구성을 나중에 변경할 때 수행할 작업과 채웁니다. 정책의 구성은 항상 클러스터 기본값을 덮어씁니다.

중요

MCO는 노드 중단 정책에서 변경 사항을 성공적으로 적용할 수 있는지 여부를 확인하지 않습니다. 따라서 노드 중단 정책의 정확성을 보장해야 합니다.

예를 들어 sudo 구성에 노드 드레이닝 및 재부팅이 필요하지 않도록 노드 중단 정책을 구성할 수 있습니다. 또는 sshd 에 대한 업데이트가 해당 하나의 서비스를 다시 로드한 상태에서만 적용되도록 클러스터를 구성할 수 있습니다.

중요

노드 중단 정책 기능은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

다음 Ignition 구성 오브젝트를 변경할 때 MCO의 동작을 제어할 수 있습니다.

  • 구성 파일: /var 또는 /etc 디렉토리의 파일에 추가하거나 업데이트합니다.
  • systemd units: systemd 서비스의 상태를 생성 및 설정하거나 기존 systemd 서비스를 수정합니다.
  • users and groups: 설치 후 passwd 섹션에서 SSH 키를 변경합니다.
  • ICSP,ITMS,IDMS 개체: ImageContentSourcePolicy (ICSP), ImageTagMirrorSet (ITMS) 및 ImageDigestMirrorSet (IDMS) 오브젝트에서 미러링 규칙을 제거할 수 있습니다.

이러한 변경을 수행할 때 노드 중단 정책에 따라 MCO가 변경 사항을 구현할 때 다음 작업 중 필요한 작업이 결정됩니다.

  • reboot: MCO가 노드를 비우고 재부팅합니다. 이는 기본 동작입니다.
  • none: MCO가 노드를 드레이닝하거나 재부팅하지 않습니다. MCO는 추가 작업 없이 변경 사항을 적용합니다.
  • drain: MCO가 워크로드 노드를 차단하고 드레이닝합니다. 새 구성으로 워크로드가 다시 시작됩니다.
  • Reload: 서비스의 경우 MCO는 서비스를 다시 시작하지 않고 지정된 서비스를 다시 로드합니다.
  • restart: 서비스의 경우 MCO가 지정된 서비스를 완전히 다시 시작합니다.
  • DaemonReload: MCO가 systemd 관리자 구성을 다시 로드합니다.
  • Special: 내부 MCO 전용 작업이며 사용자가 설정할 수 없습니다.
참고
  • RebootNone 작업은 RebootNone 작업이 다른 작업을 재정의하므로 다른 작업과 함께 사용할 수 없습니다.
  • 작업은 노드 중단 정책 목록에 설정된 순서대로 적용됩니다.
  • 노드에 대한 재부팅 또는 기타 중단이 필요한 다른 머신 구성 변경을 수행하는 경우 노드 중단 정책 작업을 다시 시작합니다.

3.1. 노드 중단 정책의 예

다음 예제 MachineConfiguration 오브젝트에는 노드 중단 정책이 포함되어 있습니다.

작은 정보

MachineConfiguration 오브젝트와 MachineConfig 오브젝트는 서로 다른 오브젝트입니다. MachineConfiguration 오브젝트는 MCO Operator의 구성 매개변수가 포함된 MCO 네임스페이스의 싱글톤 오브젝트입니다. MachineConfig 오브젝트는 머신 구성 풀에 적용되는 변경 사항을 정의합니다.

다음 예제 MachineConfiguration 오브젝트는 사용자 정의 정책을 보여줍니다. 기본 노드 중단 정책 값은 상태 스탠자에 표시됩니다.

기본 노드 중단 정책

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
  name: cluster
spec:
  logLevel: Normal
  managementState: Managed
  operatorLogLevel: Normal
status:
  nodeDisruptionPolicyStatus:
    clusterPolicies:
      files:
      - actions:
        - type: None
        path: /etc/mco/internal-registry-pull-secret.json
      - actions:
        - type: None
        path: /var/lib/kubelet/config.json
      - actions:
        - reload:
            serviceName: crio.service
          type: Reload
        path: /etc/machine-config-daemon/no-reboot/containers-gpg.pub
      - actions:
        - reload:
            serviceName: crio.service
          type: Reload
        path: /etc/containers/policy.json
      - actions:
        - type: Special
        path: /etc/containers/registries.conf
      sshkey:
        actions:
        - type: None
  readyReplicas: 0

다음 예에서 SSH 키를 변경하면 MCO는 클러스터 노드를 비우고 crio.service 를 다시 로드하고 systemd 구성을 다시 로드하고 crio-service 를 다시 시작합니다.

SSH 키 변경을 위한 노드 중단 정책의 예

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
# ...
spec:
  nodeDisruptionPolicy:
    sshkey:
      actions:
      - type: Drain
      - reload:
          serviceName: crio.service
        type: Reload
      - type: DaemonReload
      - restart:
          serviceName: crio.service
        type: Restart
# ...

다음 예에서 /etc/chrony.conf 디렉터리의 파일을 변경하면 MCO가 클러스터 노드에서 chronyd.service 를 다시 로드합니다.

구성 파일 변경을 위한 노드 중단 정책의 예

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
# ...
spec:
  nodeDisruptionPolicy:
    files:
    - actions:
      - reload:
          serviceName: chronyd.service
        type: Reload
      path: /etc/chrony.conf

다음 예에서 auditd.service systemd 장치를 변경하면 MCO는 클러스터 노드를 비우고 crio.service 를 다시 로드하고, systemd 관리자 구성을 다시 로드하고 crio.service 를 다시 시작합니다.

구성 파일 변경을 위한 노드 중단 정책의 예

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
# ...
spec:
  nodeDisruptionPolicy:
    units:
      - name: auditd.service
        actions:
          - type: Drain
          - type: Reload
            reload:
              serviceName: crio.service
          - type: DaemonReload
          - type: Restart
            restart:
              serviceName: crio.service

다음 예에서 registries.conf 디렉터리의 파일을 변경하면 MCO가 노드를 드레이닝하거나 재부팅하지 않고 변경 사항을 추가 작업 없이 적용합니다.

구성 파일 변경을 위한 노드 중단 정책의 예

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
# ...
spec:
  nodeDisruptionPolicy:
      - actions:
        - type: None
        path: /etc/containers/registries.conf

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.