1.7. CLI를 사용하여 정책 관리


1.7.1. 노드에서 인터페이스 만들기

클러스터에 NodeNetworkConfigurationPolicy (NNCP) 매니페스트를 적용하여 클러스터의 노드에 인터페이스를 생성합니다. 매니페스트는 요청된 인터페이스 구성을 자세히 설명합니다.

기본적으로 매니페스트는 클러스터의 모든 노드에 적용됩니다. 특정 노드에 인터페이스를 추가하려면 spec: nodeSelector 매개변수와 노드 선택기에 적합한 <key>:<value>를 추가합니다.

여러 개의 nmstate 지원 노드를 동시에 구성할 수 있습니다. 이 구성은 병렬로 50%의 노드에 적용됩니다. 이 전략을 사용하면 네트워크 연결이 끊어져도 전체 클러스터를 사용할 수 없게 되는 일이 방지됩니다. 클러스터의 특정 부분에 병렬로 정책 구성을 적용하려면 NodeNetworkConfigurationPolicy 매니페스트 구성 파일에서 maxUnavailable 매개변수를 사용합니다.

참고

두 개의 노드가 있고 maxUnavailable 매개변수를 50% 로 설정한 NNCP 매니페스트를 이 두 노드에 적용하면 한 번에 한 노드씩 NNCP 구성을 수신합니다. 그런 다음 maxUnavailable 매개변수를 50% 로 설정한 추가 NNCP 매니페스트 파일을 도입하면 이 NCCP는 초기 NNCP와 독립적입니다. 즉, 두 NNCP 매니페스트가 모두 노드에 잘못된 구성을 적용하는 경우 클러스터의 절반이 작동한다는 것을 더 이상 보장할 수 없습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. NodeNetworkConfigurationPolicy 매니페스트를 생성합니다. 다음 예제에서는 모든 워커 노드에 Linux 브리지를 구성하고 DNS 리졸버를 구성합니다.

    apiVersion: nmstate.io/v1
    kind: NodeNetworkConfigurationPolicy
    metadata:
      name: br1-eth1-policy 
    1
    
    spec:
      nodeSelector: 
    2
    
        node-role.kubernetes.io/worker: "" 
    3
    
      maxUnavailable: 3 
    4
    
      desiredState:
        interfaces:
          - name: br1
            description: Linux bridge with eth1 as a port 
    5
    
            type: linux-bridge
            state: up
            ipv4:
              dhcp: true
              enabled: true
              auto-dns: false
            bridge:
              options:
                stp:
                  enabled: false
              port:
                - name: eth1
        dns-resolver: 
    6
    
          config:
            search:
            - example.com
            - example.org
            server:
            - 8.8.8.8
    Copy to Clipboard Toggle word wrap
    1
    정책 이름입니다.
    2
    선택 사항: nodeSelector 매개변수를 포함하지 않으면 정책이 클러스터의 모든 노드에 적용됩니다.
    3
    이 예제에서는 node-role.kubernetes.io/worker: "" 노드 선택기를 사용하여 클러스터의 모든 작업자 노드를 선택합니다.
    4
    선택 사항: 정책 구성을 동시에 적용할 수 있는 nmstate 지원 노드의 최대 수를 지정합니다. 이 매개변수는 "10%" 과 같은 백분율 값(문자열)이나 3 과 같은 절대값(숫자)으로 설정할 수 있습니다.
    5
    선택 사항: 사람이 읽을 수 있는 인터페이스 설명입니다.
    6
    선택 사항: DNS 서버에 대한 검색 및 서버 설정을 지정합니다.
  2. 노드 네트워크 정책을 생성합니다.

    $ oc apply -f br1-eth1-policy.yaml 
    1
    Copy to Clipboard Toggle word wrap
    1
    노드 네트워크 구성 정책 매니페스트의 파일 이름입니다.

추가 리소스

1.7.2. 노드에 노드 네트워크 정책 업데이트 확인

노드 네트워크 정책을 적용하면 클러스터의 모든 노드에 대해 NodeNetworkConfigurationEnactment 오브젝트가 생성됩니다. 노드 네트워크 구성 시행은 해당 노드에서 정책의 실행 상태를 나타내는 읽기 전용 오브젝트입니다. 정책이 노드에 적용되지 않으면 문제 해결을 위해 해당 노드에 대한 시행에 역추적이 포함됩니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. 정책이 클러스터에 적용되었는지 확인하려면 정책과 해당 상태를 나열합니다.

    $ oc get nncp
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 정책을 구성하는 데 예상보다 오래 걸리는 경우 특정 정책의 요청된 상태 및 상태 조건을 검사할 수 있습니다.

    $ oc get nncp <policy> -o yaml
    Copy to Clipboard Toggle word wrap
  3. 선택 사항: 모든 노드에서 정책을 구성하는 데 예상보다 오래 걸리는 경우 클러스터의 시행 상태를 나열할 수 있습니다.

    $ oc get nnce
    Copy to Clipboard Toggle word wrap
  4. 선택 사항: 구성 실패에 대한 오류 보고를 포함하여 특정 시행의 구성을 확인하려면 다음 명령을 실행하십시오.

    $ oc get nnce <node>.<policy> -o yaml
    Copy to Clipboard Toggle word wrap

1.7.3. 노드에서 인터페이스 제거

NodeNetworkConfigurationPolicy 오브젝트를 편집하고 인터페이스의 state없음으로 설정하여 클러스터의 1개 이상의 노드에서 인터페이스를 제거할 수 있습니다.

노드에서 인터페이스를 제거해도 노드 네트워크 구성이 이전 상태로 자동 복원되지 않습니다. 이전 상태를 복원하려면 정책에서 노드 네트워크 구성을 정의해야 합니다.

브리지 또는 본딩 인터페이스를 제거하면 이전에 해당 브릿지 또는 본딩 인터페이스에 연결되었거나 종속되었던 클러스터의 모든 노드 NIC가 down 상태가 되어 연결할 수 없습니다. 연결 손실을 방지하기 위해, 노드 NIC를 동일한 정책으로 구성하여 DHCP 또는 고정 IP 주소의 상태를 up으로 구성합니다.

참고

인터페이스를 추가한 노드 네트워크 정책을 삭제해도 노드의 정책 구성은 변경되지 않습니다. NodeNetworkConfigurationPolicy 는 클러스터의 객체이지만 해당 객체는 요청된 구성만 나타냅니다. 마찬가지로 인터페이스를 제거해도 정책은 삭제되지 않습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. 인터페이스를 생성하는 데 사용되는 NodeNetworkConfigurationPolicy 매니페스트를 업데이트합니다. 다음 예에서는 Linux 브릿지를 제거한 후 연결이 손실되지 않도록 DHCP로 eth1 NIC를 구성합니다.

    apiVersion: nmstate.io/v1
    kind: NodeNetworkConfigurationPolicy
    metadata:
      name: <br1-eth1-policy> 
    1
    
    spec:
      nodeSelector: 
    2
    
        node-role.kubernetes.io/worker: "" 
    3
    
      desiredState:
        interfaces:
        - name: br1
          type: linux-bridge
          state: absent 
    4
    
        - name: eth1 
    5
    
          type: ethernet 
    6
    
          state: up 
    7
    
          ipv4:
            dhcp: true 
    8
    
            enabled: true 
    9
    Copy to Clipboard Toggle word wrap
    1
    정책 이름입니다.
    2
    선택 사항: nodeSelector 매개변수를 포함하지 않으면 정책이 클러스터의 모든 노드에 적용됩니다.
    3
    이 예제에서는 node-role.kubernetes.io/worker: "" 노드 선택기를 사용하여 클러스터의 모든 작업자 노드를 선택합니다.
    4
    absent 상태로 변경하면 인터페이스가 제거됩니다.
    5
    브리지 인터페이스에서 연결을 해제할 인터페이스의 이름입니다.
    6
    인터페이스 유형입니다. 이 예제에서는 이더넷 네트워킹 인터페이스를 생성합니다.
    7
    인터페이스에 요청되는 상태입니다.
    8
    선택 사항: dhcp를 사용하지 않는 경우 고정 IP를 설정하거나 IP 주소 없이 인터페이스를 종료할 수 있습니다.
    9
    이 예제에서 ipv4를 활성화합니다.
  2. 노드에서 정책을 업데이트하고 인터페이스를 제거합니다.

    $ oc apply -f <br1-eth1-policy.yaml> 
    1
    Copy to Clipboard Toggle word wrap
    1
    정책 매니페스트의 파일 이름입니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat