1장. Kubernetes NMState Operator


Kubernetes NMState Operator는 OpenShift Container Platform 클러스터 노드에서 NMState를 사용하여 상태 중심 네트워크 구성을 수행하는 데 필요한 Kubernetes API를 제공합니다. Kubernetes NMState Operator는 사용자에게 클러스터 노드에서 다양한 네트워크 인터페이스 유형, DNS 및 라우팅을 구성하는 기능을 제공합니다. 또한 클러스터 노드의 데몬은 각 노드의 네트워크 인터페이스 상태를 API 서버에 정기적으로 보고합니다.

중요

Red Hat은 베어메탈, IBM Power®, IBM Z®, IBM® LinuxONE, VMware vSphere 및 Red Hat OpenStack Platform(RHOSP) 설치의 프로덕션 환경에서 Kubernetes NMState Operator를 지원합니다.

Red Hat은 Microsoft Azure에서 Kubernetes NMState Operator를 사용하도록 지원하지만 그 기능은 제한적입니다. 지원은 설치 후 작업으로 시스템에 DNS 서버를 구성하는 것으로 제한됩니다.

OpenShift Container Platform과 함께 NMState를 사용하기 전에 Kubernetes NMState Operator를 설치해야 합니다. Kubernetes NMState Operator를 설치한 후 다음 작업을 완료할 수 있습니다.

  • 노드 네트워크 상태 및 구성 관찰 및 업데이트
  • 사용자 정의 br-ex 브리지를 포함하는 매니페스트 개체 만들기

이러한 작업에 대한 자세한 내용은 추가 리소스 섹션을 참조하세요.

참고

Kubernetes NMState Operator는 보조 NIC의 네트워크 구성을 업데이트합니다. 운영자는 기본 NIC의 네트워크 구성을 업데이트할 수 없으며, 대부분의 온프레미스 네트워크에서 br-ex 브리지를 업데이트할 수 없습니다.

베어 메탈 플랫폼에서 Kubernetes NMState Operator를 사용하여 br-ex 브리지 네트워크 구성을 업데이트하는 것은 머신 구성 매니페스트 파일에서 br-ex 브리지를 인터페이스로 설정한 경우에만 지원됩니다. 설치 후 작업으로 br-ex 브리지를 업데이트하려면 클러스터의 NodeNetworkConfigurationPolicy 사용자 정의 리소스(CR)의 NMState 구성에서 br-ex 브리지를 인터페이스로 설정해야 합니다. 자세한 내용은 설치 후 구성 에서 사용자 정의 br-ex 브리지를 포함하는 매니페스트 개체 만들기를 참조하세요.

OpenShift Container Platform에서는 nmstate를 사용하여 노드 네트워크의 상태를 보고하고 구성합니다. 이를 통해 클러스터에 단일 구성 매니페스트를 적용하여 모든 노드에 Linux 브리지를 만드는 등 네트워크 정책 구성을 수정할 수 있습니다.

노드 네트워킹은 다음 오브젝트에서 모니터링하고 업데이트합니다.

NodeNetworkState
해당 노드의 네트워크 상태를 보고합니다.
NodeNetworkConfigurationPolicy
노드에서 요청된 네트워크 구성을 설명합니다. 클러스터에 NodeNetworkConfigurationPolicy CR을 적용하여 인터페이스 추가 및 제거를 포함한 노드 네트워크 구성을 업데이트합니다.
NodeNetworkConfigurationEnactment
각 노드에 적용된 네트워크 정책을 보고합니다.

1.1. Kubernetes NMState Operator 설치

웹 콘솔이나 CLI를 사용하여 Kubernetes NMState Operator를 설치할 수 있습니다.

1.1.1. 웹 콘솔을 사용하여 Kubernetes NMState Operator 설치

웹 콘솔을 사용하여 Kubernetes NMState Operator를 설치할 수 있습니다. Kubernetes NMState Operator를 설치하면 Operator가 모든 클러스터 노드에 NMState State Controller를 데몬 세트로 배포합니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있는 사용자로 로그인했습니다.

프로세스

  1. Operators OperatorHub를 선택합니다.
  2. 모든 항목 아래의 검색 필드에 nmstate를 입력하고 Enter를 클릭하여 Kubernetes NMState Operator를 검색합니다.
  3. Kubernetes NMState Operator 검색 결과를 클릭합니다.
  4. 설치를 클릭하여 Operator 설치 창을 엽니다.
  5. 설치를 클릭하여 Operator를 설치합니다.
  6. Operator 설치가 완료되면 Operator 보기를 클릭합니다.
  7. 제공된 API 아래에서 인스턴스 생성을 클릭하여 kubernetes-nmstate의 인스턴스 생성을 위해 대화 상자를 엽니다.
  8. 대화 상자의 이름 필드에서 인스턴스 이름이 nmstate인지 확인합니다.

    참고

    이름 제한은 알려진 문제입니다. 인스턴스는 전체 클러스터에 대한 단일 생성입니다.

  9. 기본 설정을 수락하고 만들기를 클릭하여 인스턴스를 만듭니다.

1.1.2. CLI를 사용하여 Kubernetes NMState Operator 설치

OpenShift CLI( oc) 를 사용하여 Kubernetes NMState Operator를 설치할 수 있습니다. Operator가 설치되면 NMState State Controller를 모든 클러스터 노드에 데몬 세트로 배포할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • 클러스터 관리자 권한이 있는 사용자로 로그인했습니다.

프로세스

  1. nmstate 연산자 네임스페이스를 만듭니다.

    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-nmstate
    spec:
      finalizers:
      - kubernetes
    EOF
    Copy to Clipboard Toggle word wrap
  2. OperatorGroup을 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-nmstate
      namespace: openshift-nmstate
    spec:
      targetNamespaces:
      - openshift-nmstate
    EOF
    Copy to Clipboard Toggle word wrap
  3. nmstate 운영자 구독:

    $ cat << EOF| oc apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: kubernetes-nmstate-operator
      namespace: openshift-nmstate
    spec:
      channel: stable
      installPlanApproval: Automatic
      name: kubernetes-nmstate-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    EOF
    Copy to Clipboard Toggle word wrap
  4. nmstate Operator 배포에 대한 ClusterServiceVersion (CSV) 상태가 Succeeded 로 확인됩니다.

    $ oc get clusterserviceversion -n openshift-nmstate \
     -o custom-columns=Name:.metadata.name,Phase:.status.phase
    Copy to Clipboard Toggle word wrap
  5. nmstate 연산자의 인스턴스를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: nmstate.io/v1
    kind: NMState
    metadata:
      name: nmstate
    EOF
    Copy to Clipboard Toggle word wrap
  6. DNS 연결 문제로 인해 클러스터에서 DNS 상태 검사 프로브에 문제가 발생하는 경우 다음 DNS 호스트 이름 구성을 NMState CRD에 추가하여 이러한 문제를 해결할 수 있는 상태 검사를 빌드할 수 있습니다.

    apiVersion: nmstate.io/v1
    kind: NMState
    metadata:
      name: nmstate
    spec:
      probeConfiguration:
        dns:
          host: redhat.com
    # ...
    Copy to Clipboard Toggle word wrap
    1. 다음 명령을 실행하여 클러스터 네트워크에 DNS 호스트 이름 구성을 적용합니다. <파일 이름>을 CRD 파일 이름으로 바꿔야 합니다.

      $ oc apply -f <filename>.yaml
      Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 입력하여 NMState Operator의 모든 포드가 Running 상태인지 확인하세요.

    $ oc get pod -n openshift-nmstate
    Copy to Clipboard Toggle word wrap

1.1.3. Kubernetes NMState Operator가 수집한 메트릭 보기

Kubernetes NMState Operator인 kubernetes-nmstate-operatorkubernetes_nmstate_features_applied 구성 요소에서 메트릭을 수집하고 이를 즉시 사용 가능한 메트릭으로 노출할 수 있습니다. 메트릭을 보기 위한 사용 사례로 NodeNetworkConfigurationPolicy 사용자 지정 리소스를 생성하고 정책이 활성화되었는지 확인하려는 상황을 고려해 보겠습니다.

참고

kubernetes_nmstate_features_applied 메트릭은 API가 아니며 OpenShift Container Platform 버전 간에 변경될 수 있습니다.

웹 콘솔에서 Metrics UI에는 선택한 프로젝트에 대한 미리 정의된 CPU, 메모리, 대역폭 및 네트워크 패킷 쿼리가 포함되어 있습니다. 프로젝트의 CPU, 메모리, 대역폭, 네트워크 패킷 및 애플리케이션 메트릭에 대한 사용자 정의 Prometheus Query Language(PromQL) 쿼리를 실행할 수 있습니다.

다음 예제에서는 OpenShift Container Platform 클러스터에 적용되는 NodeNetworkConfigurationPolicy 매니페스트 예제를 보여줍니다.

# ...
interfaces:
  - name: br1
    type: linux-bridge
    state: up
    ipv4:
      enabled: true
      dhcp: true
      dhcp-custom-hostname: foo
    bridge:
      options:
        stp:
          enabled: false
      port: []
# ...
Copy to Clipboard Toggle word wrap

NodeNetworkConfigurationPolicy 매니페스트는 메트릭을 노출하고 이를 클러스터 모니터링 운영자(CMO)가 사용할 수 있도록 합니다. 다음 예에서는 일부 노출된 측정 항목을 보여줍니다.

controller_runtime_reconcile_time_seconds_bucket{controller="nodenetworkconfigurationenactment",le="0.005"} 16
controller_runtime_reconcile_time_seconds_bucket{controller="nodenetworkconfigurationenactment",le="0.01"} 16
controller_runtime_reconcile_time_seconds_bucket{controller="nodenetworkconfigurationenactment",le="0.025"} 16
...
# HELP kubernetes_nmstate_features_applied Number of nmstate features applied labeled by its name
# TYPE kubernetes_nmstate_features_applied gauge
kubernetes_nmstate_features_applied{name="dhcpv4-custom-hostname"} 1
Copy to Clipboard Toggle word wrap

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • 관리자 권한으로 웹 콘솔에 로그인하고 Kubernetes NMState Operator를 설치했습니다.
  • 개발자로 또는 메트릭을 확인하는 프로젝트에 대한 보기 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
  • 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
  • 사용자 정의 프로젝트에 서비스를 배포했습니다.
  • NodeNetworkConfigurationPolicy 매니페스트를 생성하여 클러스터에 적용했습니다.
중요

OpenShift Container Platform 4.19부터 웹 콘솔의 관점이 통합되었습니다. 개발자 관점은 더 이상 기본적으로 활성화되지 않습니다.

모든 사용자는 OpenShift Container Platform 웹 콘솔 기능을 모두 사용할 수 있습니다. 하지만 클러스터 소유자가 아닌 경우 클러스터 소유자에게 특정 기능에 대한 액세스 권한을 요청해야 할 수도 있습니다.

개발자 관점을 계속 활성화할 수 있습니다. 웹 콘솔의 시작하기 창에서 콘솔을 둘러보고, 클러스터 설정에 대한 정보를 찾고, 개발자 관점을 활성화하기 위한 빠른 시작을 보고, 링크를 따라가서 새로운 기능과 성능을 살펴볼 수 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 개발자 관점에서 메트릭을 보려면 다음 작업을 완료하세요.

    1. 관찰을 클릭하세요.
    2. 특정 프로젝트의 지표를 보려면 프로젝트 목록에서 프로젝트를 선택하세요. 예를 들어, openshift-nmstate .
    3. 메트릭 탭을 클릭합니다.
    4. 플롯의 메트릭을 시각화하려면 쿼리 선택 목록에서 쿼리를 선택하거나 'PromQL 표시'를 선택하여 선택한 쿼리를 기반으로 사용자 지정 PromQL 쿼리를 만듭니다.

      참고

      개발자 역할로는 한 번에 하나의 쿼리만 실행할 수 있습니다.

  2. 관리자 권한으로 OpenShift Container Platform 웹 콘솔에서 메트릭을 보려면 다음 작업을 완료하세요.

    1. 관찰 지표를 클릭합니다.
    2. 표현식 필드에 kubernetes_nmstate_features_applied를 입력합니다.
    3. 쿼리 추가를 클릭한 다음 쿼리 실행을 클릭합니다.
  3. 시각화된 지표를 살펴보려면 다음 작업 중 하나를 수행하세요.

    1. 플롯을 확대하고 시간 범위를 변경하려면 다음 작업 중 하나를 수행하세요.

      • 시간 범위를 시각적으로 선택하려면 플롯을 수평으로 클릭하고 드래그하세요.
      • 시간 범위를 선택하려면 콘솔의 왼쪽 상단에 있는 메뉴를 사용하세요.
    2. 시간 범위를 재설정하려면 확대/축소 재설정을 선택하세요.
    3. 특정 시점의 모든 쿼리에 대한 출력을 표시하려면 해당 시점의 플롯에 마우스 커서를 올려놓으세요. 쿼리 출력은 팝업 상자에 표시됩니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat