22장. Kubernetes NMState

22.1. Kubernetes NMState Operator 정보

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

중요

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

주의

OVN-Kubernetes를 사용하는 경우 기본 게이트웨이 인터페이스 변경은 지원되지 않습니다.

OpenShift Container Platform과 함께 NMState를 사용하기 전에 Kubernetes NMState Operator를 설치해야 합니다.

22.1.1. Kubernetes NMState Operator 설치

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

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

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

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 로그인했습니다.

절차

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

    참고

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

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

요약

완료되면 Operator가 NMState State Controller를 모든 클러스터 노드에 데몬 세트로 배포했습니다.

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

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

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.

절차

  1. nmstate Operator 네임스페이스를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        kubernetes.io/metadata.name: openshift-nmstate
        name: openshift-nmstate
      name: openshift-nmstate
    spec:
      finalizers:
      - kubernetes
    EOF
  2. OperatorGroup 을 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      annotations:
        olm.providedAPIs: NMState.v1.nmstate.io
      name: openshift-nmstate
      namespace: openshift-nmstate
    spec:
      targetNamespaces:
      - openshift-nmstate
    EOF
  3. nmstate Operator를 서브스크립션합니다.

    $ cat << EOF| oc apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      labels:
        operators.coreos.com/kubernetes-nmstate-operator.openshift-nmstate: ""
      name: kubernetes-nmstate-operator
      namespace: openshift-nmstate
    spec:
      channel: stable
      installPlanApproval: Automatic
      name: kubernetes-nmstate-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    EOF
  4. nmstate Operator의 인스턴스를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: nmstate.io/v1
    kind: NMState
    metadata:
      name: nmstate
    EOF

검증

  • nmstate Operator의 배포가 실행 중인지 확인합니다.

    oc get clusterserviceversion -n openshift-nmstate \
     -o custom-columns=Name:.metadata.name,Phase:.status.phase

    출력 예

    Name                                             Phase
    kubernetes-nmstate-operator.4.10.0-202203120157   Succeeded