ARO(Azure Red Hat OpenShift)에 대한 네트워크 개념

이 가이드에서는 OpenShift 4 클러스터의 Azure Red Hat OpenShift 네트워킹 개요와 함께 다이어그램 및 중요한 엔드포인트 목록을 다룹니다. 핵심 OpenShift 네트워킹 개념에 대한 자세한 내용은 Azure Red Hat OpenShift 4 네트워킹 설명서를 참조하세요.

Azure Red Hat OpenShift 네트워킹 다이어그램

OpenShift 4에서 Azure Red Hat OpenShift를 배포하는 경우 전체 클러스터가 가상 네트워크에 포함됩니다. 이 가상 네트워크 내에서 컨트롤 플레인 노드와 작업자 노드는 각각 자체 서브넷에 상주합니다. 각 서브넷은 내부 부하 분산 장치 및 공용 부하 분산 장치를 사용합니다.

참고 항목

ARO에 도입된 최신 변경 내용에 대한 자세한 내용은 Azure Red Hat OpenShift의 새로운 기능에서 확인하세요.

네트워킹 구성 요소

다음 목록에서는 Azure Red Hat OpenShift 클러스터의 중요한 네트워킹 구성 요소를 다룹니다.

  • aro-pls

    • Microsoft 및 Red Hat 사이트 안정성 엔지니어가 클러스터를 관리할 때 사용하는 Azure Private Link 엔드포인트입니다.
  • aro-internal

    • 이 엔드포인트는 API 서버 및 내부 서비스 트래픽으로 트래픽을 분산합니다. 컨트롤 플레인 노드 및 작업자 노드는 백 엔드 풀에 있습니다.
    • 이 부하 분산 장치 생성은 기본값이 아닙니다. 올바른 주석을 사용하여 LoadBalancer 형식의 서비스를 만든 후에 이 부하 분산 장치는 생성됩니다. 예: service.beta.kubernetes.io/azure-load-balancer-internal: "true".
  • aro

    • 이 엔드포인트는 모든 공용 트래픽에 사용됩니다. 애플리케이션과 경로를 만들 때에는 이 엔드포인트가 수신 트래픽의 경로입니다.
    • 이 엔드포인트는 트래픽을 API 서버로 라우팅하고 분산합니다(API가 공용인 경우). 이 엔드포인트는 컨트롤 플레인이 Azure Resource Manager에 액세스하여 클러스터 상태를 다시 보고할 수 있도록 공용 발신 IP를 할당합니다.
    • 이 부하 분산 장치는 Azure Load Balancer 아웃바운드 규칙을 통해 작업자 노드에서 실행 중인 Pod의 송신 인터넷 연결을 다룹니다.
      • 현재는 아웃바운드 규칙을 구성할 수 없습니다. 아웃바운드 규칙은 각 노드에 TCP 포트 1,024개를 할당합니다.
      • LB 규칙에 DisableOutboundSnat가 구성되지 않았으므로 Pod가 이 ALB에 구성된 공용 IP를 송신 IP로 가져올 수 있습니다.
      • 앞의 두 지점의 결과로, 임시 SNAT 포트를 추가하는 유일한 방법은 ARO에 공용 LoadBalancer 유형 서비스를 추가하는 것입니다.
  • aro-nsg

    • 서비스를 노출할 때 API는 이 네트워크 보안 그룹에 규칙을 만들어 트래픽이 통과하여 포트 6443을 통해 컨트롤 플레인과 노드에 도달할 수 있도록 합니다.
    • 기본적으로 이 네트워크 보안 그룹은 모든 아웃바운드 트래픽을 허용합니다. 현재는 아웃바운드 트래픽을 Azure Red Hat OpenShift 컨트롤 플레인으로만 제한할 수 있습니다.
  • Azure Container Registry

    • Microsoft에서 내부적으로 제공하고 사용하는 컨테이너 레지스트리입니다. 이 레지스트리는 읽기 전용이며 Azure Red Hat OpenShift 사용자가 사용할 수 없습니다.
      • 이 레지스트리는 호스트 플랫폼 이미지 및 클러스터 구성 요소를 제공합니다. 예를 들어 컨테이너를 모니터링하거나 기록합니다.
      • 이 레지스트리에 대한 연결은 서비스 엔드포인트(Azure 서비스 간의 내부 연결)을 통해 수행됩니다.
      • 기본적으로 이 내부 레지스트리는 클러스터 외부에서 사용할 수 없습니다.
  • Private Link

    • Private Link는 관리 평면에서 클러스터로의 네트워크 연결을 허용합니다. Microsoft와 Red Hat 사이트 안정성 엔지니어가 클러스터 관리를 돕기 위해 사용합니다.

네트워킹 정책

  • 수신: 수신 네트워킹 정책은 OpenShift SDN의 일부로 지원됩니다. 이 네트워크 정책은 기본적으로 사용하도록 설정되어 있으며, 사용자가 적용을 수행합니다. 수신 네트워크 정책은 V1 NetworkPolicy 규격이지만 송신 및 IPBlock 유형은 지원되지 않습니다.

  • 송신: 송신 네트워크 정책은 OpenShift의 송신 방화벽 기능을 사용하여 지원됩니다. 네임스페이스/프로젝트당 하나의 송신 정책만 있습니다. 송신 정책은 “기본” 네임스페이스에서 지원되지 않으며 순서대로(첫 번째부터 마지막까지) 평가됩니다.

OpenShift의 네트워킹 기본 사항

OpenShift SDN(소프트웨어 정의 네트워킹)은 CNI(Container Network Interface) 사양 기반의 OpenFlow 구현인 OVS(Open vSwitch)를 사용하여 오버레이 네트워크를 구성하는 데 사용됩니다. SDN은 다양한 플러그 인을 지원합니다. 네트워크 정책은 OpenShift 4의 Azure Red Hat에서 사용되는 플러그 인입니다. 모든 네트워크 통신이 SDN에 의해 관리되므로, 가상 네트워크에서 Pod 간 통신을 수행하기 위한 추가 경로가 필요 없습니다.

Azure Red Hat OpenShift에 대한 네트워킹

다음은 Azure Red Hat OpenShift와 관련된 네트워킹 기능입니다.

  • 사용자는 클러스터를 만들 때 기존 가상 네트워크에서 Azure Red Hat OpenShift 클러스터를 만들거나 가상 네트워크를 새로 만들 수 있습니다.
  • Pod 및 서비스 네트워크 CIDR을 구성할 수 있습니다.
  • 노드와 컨트롤 플레인은 서로 다른 서브넷에 있습니다.
  • 노드와 컨트롤 플레인 가상 네트워크 서브넷은 최소 /27이어야 합니다.
  • 기본 Pod CIDR은 10.128.0.0/14입니다.
  • 기본 서비스 CIDR은 172.30.0.0/16입니다.
  • Pod와 서비스 네트워크 CIDR은 네트워크에서 사용 중인 다른 주소 범위와 겹치지 않아야 합니다. 또한 클러스터의 가상 네트워크 IP 주소 범위에 속하지 않아야 합니다.
  • Pod CIDR은 크기가 최소 /18이어야 합니다. (Pod 네트워크는 라우팅할 수 없는 IP이며, OpenShift SDN 내에서만 사용됩니다.)
  • 각 노드에는 Pod에 대한 /23 서브넷(512개 IP)이 할당됩니다. 이 값은 변경할 수 없습니다.
  • Pod를 여러 네트워크에 연결할 수 없습니다.
  • OVN-Kubernetes 네트워크 플러그 인을 사용하는 프라이빗 ARO 클러스터의 경우 송신 IP를 구성할 수 있습니다. 자세한 내용은 송신 IP 주소 구성을 참조하세요.

네트워크 설정

다음 네트워크 설정은 Azure Red Hat OpenShift 4 클러스터에 사용할 수 있습니다.

  • API 표시 유형 - az aro create 명령을 실행할 때 API 표시 여부를 설정합니다.
    • "퍼블릭" - 외부 네트워크에서 API 서버에 액세스할 수 있습니다.
    • “프라이빗” - API 서버에 컨트롤 플레인 서브넷의 개인 IP가 할당되므로, 연결된 네트워크(피어링된 가상 네트워크, 클러스터의 다른 서브넷)를 사용해야만 액세스할 수 있습니다.
  • 수신 표시 유형 - az aro create 명령을 실행할 때 API 표시 여부를 설정합니다.
    • “퍼블릭” 경로는 기본적으로 퍼블릭 표준 부하 분산 장치입니다. (기본값은 변경할 수 있습니다.)
    • “프라이빗” 경로는 기본적으로 내부 부하 분산 장치로 라우팅됩니다. (기본값은 변경할 수 있습니다.)

네트워크 보안 그룹

네트워크 보안 그룹은 노드의 리소스 그룹(사용자에게 잠겨 있음)에 생성됩니다. 네트워크 보안 그룹은 노드의 NIC가 아닌 서브넷에 직접 할당됩니다. 네트워크 보안 그룹은 변경할 수 없습니다. 사용자에게 변경할 수 있는 권한이 없습니다.

공개적으로 표시되는 API 서버를 사용하는 경우에는 네트워크 보안 그룹을 만들어 NIC에 할당할 수 없습니다.

도메인 전달

Azure Red Hat OpenShift는 CoreDNS를 사용하므로 도메인 전달이 구성될 수 있습니다. 자체 DNS를 가상 네트워크에 가져올 수 없습니다. 자세한 내용은 DNS 전달 사용에 대한 설명서를 참조하세요.

다음 단계

아웃바운드 트래픽 및 Azure Red Hat OpenShift의 송신 지원에 대한 자세한 내용은 지원 정책 설명서를 참조하세요.