6.5. OpenShift 컨테이너 플랫폼의 Cluster Network Operator
CNO(Cluster Network Operator)를 사용하여 설치 중에 클러스터에 대해 선택한 CNI(Container Network Interface) 네트워크 플러그인을 포함하여 OpenShift Container Platform 클러스터에 클러스터 네트워크 구성 요소를 배포하고 관리할 수 있습니다.
6.5.1. CNO(Cluster Network Operator)
Cluster Network Operator는 operator.openshift.io
API 그룹에서 네트워크
API를 구현합니다. Operator는 데몬 세트를 사용하여 OVN-Kubernetes 네트워크 플러그인 또는 클러스터 설치 중에 선택한 네트워크 공급자 플러그인을 배포합니다.
프로세스
Cluster Network Operator는 설치 중에 Kubernetes Deployment
로 배포됩니다.
다음 명령을 실행하여 배포 상태를 확인합니다.
$ oc get -n openshift-network-operator deployment/network-operator
출력 예
NAME READY UP-TO-DATE AVAILABLE AGE network-operator 1/1 1 1 56m
다음 명령을 실행하여 Cluster Network Operator의 상태를 확인합니다.
$ oc get clusteroperator/network
출력 예
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE network 4.16.1 True False False 50m
AVAILABLE
,PROGRESSING
및DEGRADED
필드에서 Operator 상태에 대한 정보를 볼 수 있습니다. Cluster Network Operator가 사용 가능한 상태 조건을 보고하는 경우AVAILABLE
필드는True
로 설정됩니다.
6.5.2. 클러스터 네트워크 구성 보기
모든 새로운 OpenShift Container Platform 설치에는 이름이 cluster
인 network.config
오브젝트가 있습니다.
프로세스
oc describe
명령을 사용하여 클러스터 네트워크 구성을 확인합니다.$ oc describe network.config/cluster
출력 예
Name: cluster Namespace: Labels: <none> Annotations: <none> API Version: config.openshift.io/v1 Kind: Network Metadata: Self Link: /apis/config.openshift.io/v1/networks/cluster Spec: 1 Cluster Network: Cidr: 10.128.0.0/14 Host Prefix: 23 Network Type: OpenShiftSDN Service Network: 172.30.0.0/16 Status: 2 Cluster Network: Cidr: 10.128.0.0/14 Host Prefix: 23 Cluster Network MTU: 8951 Network Type: OpenShiftSDN Service Network: 172.30.0.0/16 Events: <none>
6.5.3. CNO(Cluster Network Operator) 상태 보기
oc describe
명령을 사용하여 상태를 조사하고 Cluster Network Operator의 세부 사항을 볼 수 있습니다.
프로세스
다음 명령을 실행하여 Cluster Network Operator의 상태를 확인합니다.
$ oc describe clusteroperators/network
6.5.4. 전역적으로 IP 전달 활성화
OpenShift Container Platform 4.14부터는 라우터 역할을 하는 노드가 있는 클러스터 관리자에게 바람직하지 않은 영향을 방지하기 위해 OVN-Kubernetes 기반 클러스터 배포에서 글로벌 IP 주소 전달이 비활성화됩니다. 그러나 관리자가 트래픽을 전달하는 데 필요한 경우 모든 IP 트래픽을 전달할 수 있도록 새 구성 매개변수 ipForwarding
을 사용할 수 있습니다.
OVN-Kubernetes 관리 인터페이스의 모든 트래픽에 대해 IP 전달을 다시 활성화하려면 다음 절차에 따라 Cluster Network Operator의 gatewayConfig.ipForwarding
사양을 Global
으로 설정합니다.
프로세스
다음 명령을 실행하여 기존 네트워크 구성을 백업합니다.
$ oc get network.operator cluster -o yaml > network-config-backup.yaml
다음 명령을 실행하여 기존 네트워크 구성을 수정합니다.
$ oc edit network.operator cluster
다음 예에 설명된 대로
spec
에서 다음 블록을 추가하거나 업데이트합니다.spec: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 serviceNetwork: - 172.30.0.0/16 networkType: OVNKubernetes clusterNetworkMTU: 8900 defaultNetwork: ovnKubernetesConfig: gatewayConfig: ipForwarding: Global
- 파일을 저장하고 닫습니다.
변경 사항을 적용한 후 OpenShift CNO(Cluster Network Operator)는 클러스터에 업데이트를 적용합니다. 다음 명령을 사용하여 진행 상황을 모니터링할 수 있습니다.
$ oc get clusteroperators network
상태는 최종적으로
Available
,Progressing=False
,Degraded=False
로 보고되어야 합니다.또는 다음 명령을 실행하여 IP 전달을 전역적으로 활성화할 수 있습니다.
$ oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}
참고이 매개변수의 다른 유효한 옵션은 이 변경 사항을 되돌리려는 경우 제한됩니다.
restricted
는 기본값이며 해당 설정으로 글로벌 IP 주소 전달이 비활성화됩니다.
6.5.5. CNO(Cluster Network Operator) 로그 보기
oc logs
명령을 사용하여 Cluster Network Operator 로그를 확인할 수 있습니다.
프로세스
다음 명령을 실행하여 Cluster Network Operator의 로그를 확인합니다.
$ oc logs --namespace=openshift-network-operator deployment/network-operator
6.5.6. CNO(Cluster Network Operator) 구성
클러스터 네트워크의 구성은 CNO(Cluster Network Operator) 구성의 일부로 지정되며 cluster
라는 이름의 CR(사용자 정의 리소스) 오브젝트에 저장됩니다. CR은 operator.openshift.io
API 그룹에서 Network
API의 필드를 지정합니다.
CNO 구성은 Network.config.openshift.io
API 그룹의 Network
API에서 클러스터 설치 중에 다음 필드를 상속합니다.
clusterNetwork
- Pod IP 주소가 할당되는 IP 주소 풀입니다.
serviceNetwork
- 서비스를 위한 IP 주소 풀입니다.
defaultNetwork.type
-
클러스터 네트워크 플러그인.
OVNKubernetes
는 설치 중에 지원되는 유일한 플러그인입니다.
클러스터 설치 후 clusterNetwork
IP 주소 범위만 수정할 수 있습니다. 기본 네트워크 유형은 마이그레이션을 통해 OpenShift SDN에서 OVN-Kubernetes로만 변경할 수 있습니다.
cluster라는 CNO 오브젝트에서 defaultNetwork
오브젝트의 필드를 설정하여 클러스터의 클러스터
네트워크 플러그인 구성을 지정할 수 있습니다.
6.5.6.1. CNO(Cluster Network Operator) 구성 오브젝트
CNO(Cluster Network Operator)의 필드는 다음 표에 설명되어 있습니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
CNO 개체 이름입니다. 이 이름은 항상 |
|
| Pod IP 주소가 할당되는 IP 주소 블록과 클러스터의 각 개별 노드에 할당된 서브넷 접두사 길이를 지정하는 목록입니다. 예를 들면 다음과 같습니다. spec: clusterNetwork: - cidr: 10.128.0.0/19 hostPrefix: 23 - cidr: 10.128.32.0/19 hostPrefix: 23 |
|
| 서비스의 IP 주소 블록입니다. OpenShift SDN 및 OVN-Kubernetes 네트워크 플러그인은 서비스 네트워크에 대한 단일 IP 주소 블록만 지원합니다. 예를 들면 다음과 같습니다. spec: serviceNetwork: - 172.30.0.0/14
이 값은 준비 전용이며 클러스터 설치 중에 |
|
| 클러스터 네트워크의 네트워크 플러그인을 구성합니다. |
|
| 이 개체의 필드는 kube-proxy 구성을 지정합니다. OVN-Kubernetes 클러스터 네트워크 플러그인을 사용하는 경우 kube-proxy 구성이 적용되지 않습니다. |
defaultNetwork 오브젝트 구성
defaultNetwork
오브젝트의 값은 다음 표에 정의되어 있습니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
참고 OpenShift Container Platform은 기본적으로 OVN-Kubernetes 네트워크 플러그인을 사용합니다. OpenShift SDN은 더 이상 새 클러스터의 설치 옵션으로 사용할 수 없습니다. |
|
| 이 오브젝트는 OVN-Kubernetes 네트워크 플러그인에만 유효합니다. |
OpenShift SDN 네트워크 플러그인 구성
다음 표에서는 OpenShift SDN 네트워크 플러그인의 구성 필드를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
| OpenShift SDN의 네트워크 격리 모드입니다. |
|
| VXLAN 오버레이 네트워크의 최대 전송 단위(MTU)입니다. 이 값은 일반적으로 자동 구성됩니다. |
|
|
모든 VXLAN 패킷에 사용할 포트입니다. 기본값은 |
OpenShift SDN 구성 예
defaultNetwork: type: OpenShiftSDN openshiftSDNConfig: mode: NetworkPolicy mtu: 1450 vxlanPort: 4789
OVN-Kubernetes 네트워크 플러그인 구성
다음 표에서는 OVN-Kubernetes 네트워크 플러그인의 구성 필드를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
| Geneve(Generic Network Virtualization Encapsulation) 오버레이 네트워크의 MTU(최대 전송 단위)입니다. 이 값은 일반적으로 자동 구성됩니다. |
|
| Geneve 오버레이 네트워크용 UDP 포트입니다. |
|
| 클러스터의 IPsec 모드를 설명하는 오브젝트입니다. |
|
| IPv4 설정에 대한 구성 오브젝트를 지정합니다. |
|
| IPv6 설정에 대한 구성 오브젝트를 지정합니다. |
|
| 네트워크 정책 감사 로깅을 사용자 정의할 구성 오브젝트를 지정합니다. 설정되지 않으면 기본값 감사 로그 설정이 사용됩니다. |
|
| 선택 사항: 송신 트래픽이 노드 게이트웨이로 전송되는 방법을 사용자 정의할 구성 오브젝트를 지정합니다. 참고 송신 트래픽을 마이그레이션하는 동안 CNO(Cluster Network Operator)에서 변경 사항을 성공적으로 롤아웃할 때까지 워크로드 및 서비스 트래픽에 대한 일부 중단을 기대할 수 있습니다. |
필드 | 유형 | 설명 |
---|---|---|
| string |
기존 네트워크 인프라가
기본값은 |
| string |
기존 네트워크 인프라가
기본값은 |
필드 | 유형 | 설명 |
---|---|---|
| string |
기존 네트워크 인프라가
기본값은 |
| string |
기존 네트워크 인프라가
기본값은 |
필드 | 유형 | 설명 |
---|---|---|
| integer |
노드당 1초마다 생성할 최대 메시지 수입니다. 기본값은 초당 |
| integer |
감사 로그의 최대 크기(바이트)입니다. 기본값은 |
| integer | 유지되는 최대 로그 파일 수입니다. |
| string | 다음 추가 감사 로그 대상 중 하나입니다.
|
| string |
RFC5424에 정의된 |
필드 | 유형 | 설명 |
---|---|---|
|
|
Pod에서 호스트 네트워킹 스택으로 송신 트래픽을 보내려면 이 필드를
이 필드는 Open vSwitch 하드웨어 오프로드 기능과 상호 작용합니다. 이 필드를 |
|
|
|
|
| 선택 사항: IPv4 주소에 대한 트래픽을 서비스하는 호스트의 내부 OVN-Kubernetes masquerade 주소를 구성하려면 오브젝트를 지정합니다. |
|
| 선택 사항: IPv6 주소의 서비스 트래픽을 위해 호스트의 내부 OVN-Kubernetes masquerade 주소를 구성하려면 오브젝트를 지정합니다. |
필드 | 유형 | 설명 |
---|---|---|
|
|
내부적으로 사용되는 가상 IPv4 주소입니다. 트래픽을 서비스할 호스트를 활성화하는 데 사용됩니다. 호스트는 이러한 IP 주소 및 공유 게이트웨이 브리지 인터페이스로 구성됩니다. 기본값은 |
필드 | 유형 | 설명 |
---|---|---|
|
|
내부적으로 사용되는 가상 IPv6 주소입니다. 트래픽을 서비스하는 호스트를 활성화하는 데 사용됩니다. 호스트는 이러한 IP 주소 및 공유 게이트웨이 브리지 인터페이스로 구성됩니다. 기본값은 |
필드 | 유형 | 설명 |
---|---|---|
|
| IPsec 구현의 동작을 지정합니다. 다음 값 중 하나여야 합니다.
|
설치 후 활동으로 런타임 시 변경할 수 있는 gatewayConfig
필드를 제외하고 클러스터 설치 중에 클러스터 네트워크 플러그인의 구성만 변경할 수 있습니다.
IPSec가 활성화된 OVN-Kubernetes 구성의 예
defaultNetwork: type: OVNKubernetes ovnKubernetesConfig: mtu: 1400 genevePort: 6081 ipsecConfig: mode: Full
OVNKubernetes를 사용하면 IBM Power®에서 스택 소진 문제가 발생할 수 있습니다.
kubeProxyConfig 오브젝트 구성 (OpenShiftSDN 컨테이너 네트워크 인터페이스만 해당)
kubeProxyConfig
오브젝트의 값은 다음 표에 정의되어 있습니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
참고
OpenShift Container Platform 4.3 이상에서는 성능이 개선되어 더 이상 |
|
|
kubeProxyConfig: proxyArguments: iptables-min-sync-period: - 0s |
6.5.6.2. CNO(Cluster Network Operator) 구성 예시
다음 예에서는 전체 CNO 구성이 지정됩니다.
CNO(Cluster Network Operator) 개체 예시
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster spec: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 serviceNetwork: - 172.30.0.0/16 networkType: OVNKubernetes clusterNetworkMTU: 8900