5장. Networking Operator
5.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 및 OpenStack 설치의 프로덕션 환경에서 Kubernetes NMState Operator를 지원합니다.
OpenShift Container Platform과 함께 NMState를 사용하기 전에 Kubernetes NMState Operator를 설치해야 합니다. Kubernetes NMState Operator를 설치한 후 다음 작업을 완료할 수 있습니다.
- 노드 네트워크 상태 및 구성 모니터링 및 업데이트
-
사용자 지정
br-ex
브리지가 포함된 매니페스트 오브젝트 생성
OpenShift Container Platform과 함께 NMState를 사용하기 전에 Kubernetes NMState Operator를 설치해야 합니다.
Kubernetes NMState Operator는 보조 NIC의 네트워크 구성을 업데이트합니다. Operator는 기본 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
- 각 노드에 적용된 네트워크 정책을 보고합니다.
5.1.1. Kubernetes NMState Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
웹 콘솔 또는 CLI를 사용하여 Kubernetes NMState Operator를 설치할 수 있습니다.
5.1.1.1. 웹 콘솔을 사용하여 Kubernetes NMState Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
웹 콘솔을 사용하여 Kubernetes NMState Operator를 설치할 수 있습니다. Kubernetes NMState Operator를 설치한 후 Operator에서 NMState State Controller를 모든 클러스터 노드에 데몬 세트로 배포했습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인합니다.
프로세스
-
Operators
OperatorHub를 선택합니다. -
모든 항목 아래의 검색 필드에
nmstate
를 입력하고 Enter를 클릭하여 Kubernetes NMState Operator를 검색합니다. - Kubernetes NMState Operator 검색 결과를 클릭합니다.
- 설치를 클릭하여 Operator 설치 창을 엽니다.
- 설치를 클릭하여 Operator를 설치합니다.
- Operator 설치가 완료되면 Operator 보기를 클릭합니다.
-
제공된 API 아래에서 인스턴스 생성을 클릭하여
kubernetes-nmstate
의 인스턴스 생성을 위해 대화 상자를 엽니다. 대화 상자의 이름 필드에서 인스턴스 이름이
nmstate
인지 확인합니다.참고이름 제한은 알려진 문제입니다. 인스턴스는 전체 클러스터에 대한 단일 생성입니다.
- 기본 설정을 수락하고 만들기를 클릭하여 인스턴스를 만듭니다.
5.1.1.2. CLI를 사용하여 Kubernetes NMState Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI(oc)
를 사용하여 Kubernetes NMState Operator를 설치할 수 있습니다. Operator가 설치되면 NMState State Controller를 모든 클러스터 노드에 데몬 세트로 배포할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
프로세스
nmstate
Operator 네임스페이스를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroup
을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow nmstate
Operator에 가입합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow nmstate
Operator 배포의ClusterServiceVersion
(CSV) 상태를Succeeded
:과 일치하는지 확인합니다.oc get clusterserviceversion -n openshift-nmstate \ -o custom-columns=Name:.metadata.name,Phase:.status.phase
$ oc get clusterserviceversion -n openshift-nmstate \ -o custom-columns=Name:.metadata.name,Phase:.status.phase
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nmstate
Operator 인스턴스를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow DNS 연결 문제로 인해 클러스터에 DNS 상태 점검 프로브에 문제가 있는 경우
NMState
CRD에 다음 DNS 호스트 이름을 추가하여 이러한 문제를 해결할 수 있는 상태 점검에 빌드할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 DNS 호스트 이름 구성을 클러스터 네트워크에 적용합니다. <
filename>
을 CRD 파일의 이름으로 교체해야 합니다.$ oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 입력하여 NMState Operator의 모든 Pod 상태가
Running
인지 확인합니다.oc get pod -n openshift-nmstate
$ oc get pod -n openshift-nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.2. Kubernetes NMState Operator 설치 제거 링크 복사링크가 클립보드에 복사되었습니다!
OLM(Operator Lifecycle Manager)을 사용하여 Kubernetes NMState Operator를 제거할 수 있지만 설계 OLM에서는 연결된 CRD(사용자 정의 리소스 정의), CR(사용자 정의 리소스) 또는 API 서비스를 삭제하지 않습니다.
OLM에서 사용하는 Subcription
리소스에서 Kubernetes NMState Operator를 제거하기 전에 삭제할 Kubernetes NMState Operator 리소스를 확인합니다. 이렇게 하면 실행 중인 클러스터에 영향을 주지 않고 리소스를 삭제할 수 있습니다.
Kubernetes NMState Operator를 다시 설치해야 하는 경우 CLI를 사용하여 Kubernetes NMState Operator 설치 또는 "웹 콘솔을 사용하여 Kubernetes NMState Operator 설치"를 참조하십시오.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
jq
CLI 툴을 설치했습니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
프로세스
다음 명령을 실행하여
Subcription
리소스에서 Kubernetes NMState Operator를 구독 해제합니다.oc delete --namespace openshift-nmstate subscription kubernetes-nmstate-operator
$ oc delete --namespace openshift-nmstate subscription kubernetes-nmstate-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kubernetes NMState Operator와 연결하는 CSV(
ClusterServiceVersion
) 리소스를 찾습니다.oc get --namespace openshift-nmstate clusterserviceversion
$ oc get --namespace openshift-nmstate clusterserviceversion
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSV 리소스를 나열하는 출력 예
NAME DISPLAY VERSION REPLACES PHASE kubernetes-nmstate-operator.v4.18.0 Kubernetes NMState Operator 4.18.0 Succeeded
NAME DISPLAY VERSION REPLACES PHASE kubernetes-nmstate-operator.v4.18.0 Kubernetes NMState Operator 4.18.0 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSV 리소스를 삭제합니다. 파일을 삭제한 후 OLM은 Operator에 대해 생성한
RBAC
와 같은 특정 리소스를 삭제합니다.oc delete --namespace openshift-nmstate clusterserviceversion kubernetes-nmstate-operator.v4.18.0
$ oc delete --namespace openshift-nmstate clusterserviceversion kubernetes-nmstate-operator.v4.18.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
nmstate
CR 및 관련배포
리소스를 삭제합니다.oc -n openshift-nmstate delete nmstate nmstate
$ oc -n openshift-nmstate delete nmstate nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete --all deployments --namespace=openshift-nmstate
$ oc delete --all deployments --namespace=openshift-nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nmstate
CR을 삭제한 후console.operator.openshift.io/cluster
CR에서nmstate-console-plugin
콘솔 플러그인 이름을 제거합니다.다음 명령을 실행하여 활성화 플러그인 목록에 존재하는
nmstate-console-plugin
항목의 위치를 저장합니다. 다음 명령은jq
CLI 툴을 사용하여INDEX
라는 환경 변수에 항목의 인덱스를 저장합니다.INDEX=$(oc get console.operator.openshift.io cluster -o json | jq -r '.spec.plugins | to_entries[] | select(.value == "nmstate-console-plugin") | .key')
INDEX=$(oc get console.operator.openshift.io cluster -o json | jq -r '.spec.plugins | to_entries[] | select(.value == "nmstate-console-plugin") | .key')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 patch 명령을 실행하여
console.operator.openshift.io/cluster
CR에서nmstate-console-plugin
항목을 제거합니다.oc patch console.operator.openshift.io cluster --type=json -p "[{\"op\": \"remove\", \"path\": \"/spec/plugins/$INDEX\"}]"
$ oc patch console.operator.openshift.io cluster --type=json -p "[{\"op\": \"remove\", \"path\": \"/spec/plugins/$INDEX\"}]"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
INDEX
는 보조 변수입니다. 이 변수에 대해 다른 이름을 지정할 수 있습니다.
다음 명령을 실행하여
nmstates.nmstate.io
와 같은 모든 CRD(사용자 정의 리소스 정의)를 삭제합니다.oc delete crd nmstates.nmstate.io
$ oc delete crd nmstates.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete crd nodenetworkconfigurationenactments.nmstate.io
$ oc delete crd nodenetworkconfigurationenactments.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete crd nodenetworkstates.nmstate.io
$ oc delete crd nodenetworkstates.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete crd nodenetworkconfigurationpolicies.nmstate.io
$ oc delete crd nodenetworkconfigurationpolicies.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 네임스페이스를 삭제합니다.
oc delete namespace kubernetes-nmstate
$ oc delete namespace kubernetes-nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow