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로 배포됩니다.

  1. 다음 명령을 실행하여 배포 상태를 확인합니다.

    $ oc get -n openshift-network-operator deployment/network-operator

    출력 예

    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    network-operator   1/1     1            1           56m

  2. 다음 명령을 실행하여 Cluster Network Operator의 상태를 확인합니다.

    $ oc get clusteroperator/network

    출력 예

    NAME      VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    network   4.16.1     True        False         False      50m

    AVAILABLE, PROGRESSINGDEGRADED 필드에서 Operator 상태에 대한 정보를 볼 수 있습니다. Cluster Network Operator가 사용 가능한 상태 조건을 보고하는 경우 AVAILABLE 필드는 True로 설정됩니다.

6.5.2. 클러스터 네트워크 구성 보기

모든 새로운 OpenShift Container Platform 설치에는 이름이 clusternetwork.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>

    1
    Spec 필드에는 클러스터 네트워크의 구성 상태가 표시됩니다.
    2
    Status 필드에는 클러스터 네트워크 구성의 현재 상태가 표시됩니다.

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 으로 설정합니다.

프로세스

  1. 다음 명령을 실행하여 기존 네트워크 구성을 백업합니다.

    $ oc get network.operator cluster -o yaml > network-config-backup.yaml
  2. 다음 명령을 실행하여 기존 네트워크 구성을 수정합니다.

    $ oc edit network.operator cluster
    1. 다음 예에 설명된 대로 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
    2. 파일을 저장하고 닫습니다.
  3. 변경 사항을 적용한 후 OpenShift CNO(Cluster Network Operator)는 클러스터에 업데이트를 적용합니다. 다음 명령을 사용하여 진행 상황을 모니터링할 수 있습니다.

    $ oc get clusteroperators network

    상태는 최종적으로 Available,Progressing=False, Degraded=False 로 보고되어야 합니다.

  4. 또는 다음 명령을 실행하여 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)의 필드는 다음 표에 설명되어 있습니다.

표 6.1. CNO(Cluster Network Operator) 구성 오브젝트
필드유형설명

metadata.name

string

CNO 개체 이름입니다. 이 이름은 항상 cluster입니다.

spec.clusterNetwork

array

Pod IP 주소가 할당되는 IP 주소 블록과 클러스터의 각 개별 노드에 할당된 서브넷 접두사 길이를 지정하는 목록입니다. 예를 들면 다음과 같습니다.

spec:
  clusterNetwork:
  - cidr: 10.128.0.0/19
    hostPrefix: 23
  - cidr: 10.128.32.0/19
    hostPrefix: 23

spec.serviceNetwork

array

서비스의 IP 주소 블록입니다. OpenShift SDN 및 OVN-Kubernetes 네트워크 플러그인은 서비스 네트워크에 대한 단일 IP 주소 블록만 지원합니다. 예를 들면 다음과 같습니다.

spec:
  serviceNetwork:
  - 172.30.0.0/14

이 값은 준비 전용이며 클러스터 설치 중에 cluster 라는 Network.config.openshift.io 개체에서 상속됩니다.

spec.defaultNetwork

object

클러스터 네트워크의 네트워크 플러그인을 구성합니다.

spec.kubeProxyConfig

object

이 개체의 필드는 kube-proxy 구성을 지정합니다. OVN-Kubernetes 클러스터 네트워크 플러그인을 사용하는 경우 kube-proxy 구성이 적용되지 않습니다.

defaultNetwork 오브젝트 구성

defaultNetwork 오브젝트의 값은 다음 표에 정의되어 있습니다.

표 6.2. defaultNetwork 오브젝트
필드유형설명

type

string

OVNKubernetes. Red Hat OpenShift Networking 네트워크 플러그인은 설치 중에 선택됩니다. 클러스터를 설치한 후에는 이 값을 변경할 수 없습니다.

참고

OpenShift Container Platform은 기본적으로 OVN-Kubernetes 네트워크 플러그인을 사용합니다. OpenShift SDN은 더 이상 새 클러스터의 설치 옵션으로 사용할 수 없습니다.

ovnKubernetesConfig

object

이 오브젝트는 OVN-Kubernetes 네트워크 플러그인에만 유효합니다.

OpenShift SDN 네트워크 플러그인 구성

다음 표에서는 OpenShift SDN 네트워크 플러그인의 구성 필드를 설명합니다.

표 6.3. openshiftSDNConfig 오브젝트
필드유형설명

mode

string

OpenShift SDN의 네트워크 격리 모드입니다.

mtu

integer

VXLAN 오버레이 네트워크의 최대 전송 단위(MTU)입니다. 이 값은 일반적으로 자동 구성됩니다.

vxlanPort

integer

모든 VXLAN 패킷에 사용할 포트입니다. 기본값은 4789입니다.

OpenShift SDN 구성 예

defaultNetwork:
  type: OpenShiftSDN
  openshiftSDNConfig:
    mode: NetworkPolicy
    mtu: 1450
    vxlanPort: 4789

OVN-Kubernetes 네트워크 플러그인 구성

다음 표에서는 OVN-Kubernetes 네트워크 플러그인의 구성 필드를 설명합니다.

표 6.4. ovnKubernetesConfig object
필드유형설명

mtu

integer

Geneve(Generic Network Virtualization Encapsulation) 오버레이 네트워크의 MTU(최대 전송 단위)입니다. 이 값은 일반적으로 자동 구성됩니다.

genevePort

integer

Geneve 오버레이 네트워크용 UDP 포트입니다.

ipsecConfig

object

클러스터의 IPsec 모드를 설명하는 오브젝트입니다.

ipv4

object

IPv4 설정에 대한 구성 오브젝트를 지정합니다.

ipv6

object

IPv6 설정에 대한 구성 오브젝트를 지정합니다.

policyAuditConfig

object

네트워크 정책 감사 로깅을 사용자 정의할 구성 오브젝트를 지정합니다. 설정되지 않으면 기본값 감사 로그 설정이 사용됩니다.

gatewayConfig

object

선택 사항: 송신 트래픽이 노드 게이트웨이로 전송되는 방법을 사용자 정의할 구성 오브젝트를 지정합니다.

참고

송신 트래픽을 마이그레이션하는 동안 CNO(Cluster Network Operator)에서 변경 사항을 성공적으로 롤아웃할 때까지 워크로드 및 서비스 트래픽에 대한 일부 중단을 기대할 수 있습니다.

표 6.5. ovnKubernetesConfig.ipv4 object
필드유형설명

internalTransitSwitchSubnet

string

기존 네트워크 인프라가 100.88.0.0/16 IPv4 서브넷과 겹치는 경우 OVN-Kubernetes에서 내부 사용을 위해 다른 IP 주소 범위를 지정할 수 있습니다. east-west 트래픽을 활성화하는 분산 전송 스위치의 서브넷입니다. 이 서브넷은 OVN-Kubernetes 또는 호스트 자체에서 사용하는 다른 서브넷과 중복될 수 없습니다. 클러스터의 노드당 하나의 IP 주소를 수용할 수 있을 만큼 충분히 커야 합니다.

기본값은 100.88.0.0/16 입니다.

internalJoinSubnet

string

기존 네트워크 인프라가 100.64.0.0/16 IPv4 서브넷과 겹치는 경우 OVN-Kubernetes에서 내부 사용을 위해 다른 IP 주소 범위를 지정할 수 있습니다. IP 주소 범위가 OpenShift Container Platform 설치에서 사용하는 다른 서브넷과 겹치지 않도록 해야 합니다. IP 주소 범위는 클러스터에 추가할 수 있는 최대 노드 수보다 커야 합니다. 예를 들어 clusterNetwork.cidr 값이 10.128.0.0/14 이고 clusterNetwork.hostPrefix 값이 /23 인 경우 최대 노드 수는 2^(23-14)=512 입니다.

기본값은 100.64.0.0/16 입니다.

표 6.6. ovnKubernetesConfig.ipv6 object
필드유형설명

internalTransitSwitchSubnet

string

기존 네트워크 인프라가 fd97::/64 IPv6 서브넷과 겹치는 경우 OVN-Kubernetes에서 내부 사용을 위해 다른 IP 주소 범위를 지정할 수 있습니다. east-west 트래픽을 활성화하는 분산 전송 스위치의 서브넷입니다. 이 서브넷은 OVN-Kubernetes 또는 호스트 자체에서 사용하는 다른 서브넷과 중복될 수 없습니다. 클러스터의 노드당 하나의 IP 주소를 수용할 수 있을 만큼 충분히 커야 합니다.

기본값은 fd97::/64 입니다.

internalJoinSubnet

string

기존 네트워크 인프라가 fd98::/64 IPv6 서브넷과 겹치는 경우 OVN-Kubernetes에서 내부 사용을 위해 다른 IP 주소 범위를 지정할 수 있습니다. IP 주소 범위가 OpenShift Container Platform 설치에서 사용하는 다른 서브넷과 겹치지 않도록 해야 합니다. IP 주소 범위는 클러스터에 추가할 수 있는 최대 노드 수보다 커야 합니다.

기본값은 fd98::/64 입니다.

표 6.7. policyAuditConfig 오브젝트
필드유형설명

rateLimit

integer

노드당 1초마다 생성할 최대 메시지 수입니다. 기본값은 초당 20 개의 메시지입니다.

maxFileSize

integer

감사 로그의 최대 크기(바이트)입니다. 기본값은 50000000 또는 50MB입니다.

maxLogFiles

integer

유지되는 최대 로그 파일 수입니다.

대상

string

다음 추가 감사 로그 대상 중 하나입니다.

libc
호스트에서 journald 프로세스의 libc syslog() 함수입니다.
udp:<host>:<port>
syslog 서버입니다. <host>:<port>를 syslog 서버의 호스트 및 포트로 바꿉니다.
unix:<file>
<file>로 지정된 Unix Domain Socket 파일입니다.
null
감사 로그를 추가 대상으로 보내지 마십시오.

syslogFacility

string

RFC5424에 정의된 kern과 같은 syslog 기능입니다. 기본값은 local0입니다.

표 6.8. gatewayConfig 오브젝트
필드유형설명

routingViaHost

boolean

Pod에서 호스트 네트워킹 스택으로 송신 트래픽을 보내려면 이 필드를 true로 설정합니다. 커널 라우팅 테이블에 수동으로 구성된 경로를 사용하는 고도의 전문 설치 및 애플리케이션의 경우 송신 트래픽을 호스트 네트워킹 스택으로 라우팅해야 할 수 있습니다. 기본적으로 송신 트래픽은 클러스터를 종료하기 위해 OVN에서 처리되며 커널 라우팅 테이블의 특수 경로의 영향을 받지 않습니다. 기본값은 false입니다.

이 필드는 Open vSwitch 하드웨어 오프로드 기능과 상호 작용합니다. 이 필드를 true 로 설정하면 송신 트래픽이 호스트 네트워킹 스택에서 처리되므로 오프로드의 성능 이점이 제공되지 않습니다.

ipForwarding

object

네트워크 리소스에서 ipForwarding 사양을 사용하여 OVN-Kubernetes 관리 인터페이스에서 모든 트래픽에 대한 IP 전달을 제어할 수 있습니다. Kubernetes 관련 트래픽에 대한 IP 전달만 허용하도록 제한됨 을 지정합니다. 모든 IP 트래픽을 전달할 수 있도록 Global 을 지정합니다. 새 설치의 경우 기본값은 Restricted 입니다. OpenShift Container Platform 4.14 이상 업데이트의 경우 기본값은 Global 입니다.

ipv4

object

선택 사항: IPv4 주소에 대한 트래픽을 서비스하는 호스트의 내부 OVN-Kubernetes masquerade 주소를 구성하려면 오브젝트를 지정합니다.

ipv6

object

선택 사항: IPv6 주소의 서비스 트래픽을 위해 호스트의 내부 OVN-Kubernetes masquerade 주소를 구성하려면 오브젝트를 지정합니다.

표 6.9. gatewayConfig.ipv4 object
필드유형설명

internalMasqueradeSubnet

string

내부적으로 사용되는 가상 IPv4 주소입니다. 트래픽을 서비스할 호스트를 활성화하는 데 사용됩니다. 호스트는 이러한 IP 주소 및 공유 게이트웨이 브리지 인터페이스로 구성됩니다. 기본값은 169.254.169.0/29 입니다.

표 6.10. gatewayConfig.ipv6 object
필드유형설명

internalMasqueradeSubnet

string

내부적으로 사용되는 가상 IPv6 주소입니다. 트래픽을 서비스하는 호스트를 활성화하는 데 사용됩니다. 호스트는 이러한 IP 주소 및 공유 게이트웨이 브리지 인터페이스로 구성됩니다. 기본값은 fd69::/125 입니다.

표 6.11. ipsecConfig 오브젝트
필드유형설명

mode

string

IPsec 구현의 동작을 지정합니다. 다음 값 중 하나여야 합니다.

  • disabled: IPsec은 클러스터 노드에서 활성화되지 않습니다.
  • 외부 호스트가 있는 네트워크 트래픽에 대해 IPsec이 활성화됩니다.
  • full: IPsec은 외부 호스트가 있는 Pod 트래픽 및 네트워크 트래픽에 대해 활성화됩니다.
참고

설치 후 활동으로 런타임 시 변경할 수 있는 gatewayConfig 필드를 제외하고 클러스터 설치 중에 클러스터 네트워크 플러그인의 구성만 변경할 수 있습니다.

IPSec가 활성화된 OVN-Kubernetes 구성의 예

defaultNetwork:
  type: OVNKubernetes
  ovnKubernetesConfig:
    mtu: 1400
    genevePort: 6081
      ipsecConfig:
        mode: Full

중요

OVNKubernetes를 사용하면 IBM Power®에서 스택 소진 문제가 발생할 수 있습니다.

kubeProxyConfig 오브젝트 구성 (OpenShiftSDN 컨테이너 네트워크 인터페이스만 해당)

kubeProxyConfig 오브젝트의 값은 다음 표에 정의되어 있습니다.

표 6.12. kubeProxyConfig object
필드유형설명

iptablesSyncPeriod

string

iptables 규칙의 새로 고침 간격입니다. 기본값은 30s입니다. 유효 접미사로 s, m, h가 있으며, 자세한 설명은 Go time 패키지 문서를 참조하십시오.

참고

OpenShift Container Platform 4.3 이상에서는 성능이 개선되어 더 이상 iptablesSyncPeriod 매개변수를 조정할 필요가 없습니다.

proxyArguments.iptables-min-sync-period

array

iptables 규칙을 새로 고치기 전 최소 기간입니다. 이 필드를 통해 새로 고침 간격이 너무 짧지 않도록 조정할 수 있습니다. 유효 접미사로 s, m, h가 있으며, 자세한 설명은 Go time 패키지를 참조하십시오. 기본값은 다음과 같습니다.

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

6.5.7. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.