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

비고

최신 변경 내용에 대한 자세한 내용은 Azure Red Hat OpenShift의 새로운 기능입니다.

네트워킹 구성 요소

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

  • aro-pls

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

    • 클러스터 설치 프로세스는 이 내부 부하 분산 장치를 만듭니다. 내부 네트워크(api-int)에서 API 서버로 트래픽을 분산하고 내부 서비스 트래픽을 전달합니다. 컨트롤 플레인 노드 및 작업자 노드는 백 엔드 풀에 있습니다.
    • cloud-controller-manager는 어노테이션 service.beta.kubernetes.io/azure-load-balancer-internal: "true"이 지정된 형식 LoadBalancer의 Kubernetes 서비스를 생성할 때 추가 내부 로드 밸런서 프런트엔드 IP를 만들 수 있습니다. 이러한 IP는 RP 관리 internal-lb-ip-v4와는 별개입니다.
  • 아로

    • 이 엔드포인트는 모든 공용 트래픽에 사용됩니다. 애플리케이션과 경로를 만들 때에는 이 엔드포인트가 수신 트래픽의 경로입니다.
    • 이 엔드포인트는 트래픽을 API 서버로 라우팅하고 분산합니다(API가 공용인 경우). 이 엔드포인트는 컨트롤 플레인이 Azure Resource Manager에 액세스하여 클러스터 상태를 다시 보고할 수 있도록 공용 발신 IP를 할당합니다.
    • 이 부하 분산 장치는 Azure Load Balancer 아웃바운드 규칙을 통해 워커 노드에서 실행되는 모든 Pod의 아웃바운드 인터넷 연결도 처리합니다.
      • 현재는 아웃바운드 규칙을 구성할 수 없습니다. 각 노드에 TCP 포트 1,024개를 할당합니다.
      • LB 규칙에 DisableOutboundSnat가 설정되어 있지 않으므로, pod는 이 ALB에 구성된 공용 IP 중 임의의 IP를 송신 IP로 사용할 수 있습니다.
      • 이전 두 지점의 결과로 임시 SNAT 포트를 추가하는 유일한 방법은 Azure Red Hat OpenShift에 공용 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 사이트 안정성 엔지니어가 클러스터 관리를 돕기 위해 사용합니다.

네트워킹 정책

  • 인그레스: OVN-Kubernetes 네트워크 플러그인은 인그레스 네트워크 정책을 지원합니다. 네트워크 정책은 기본적으로 사용하도록 설정되며 사용자는 이를 적용합니다. 인그레스 네트워크 정책은 V1 NetworkPolicy를 준수합니다.

  • 송신: OpenShift는 송신 방화벽 기능을 통해 송신 네트워크 정책을 지원합니다. 각 네임스페이스 또는 프로젝트는 송신 정책을 하나만 가질 수 있습니다. "default" 네임스페이스는 아웃바운드 정책을 지원하지 않습니다. 시스템은 아웃바운드 정책을 첫 번째부터 마지막까지 순서대로 평가합니다.

OpenShift의 네트워킹 기본 사항

Azure Red Hat OpenShift 클러스터 네트워크 플러그 인으로 OVN-Kubernetes를 사용합니다. OVN-Kubernetes Geneve 터널을 사용하여 오버레이 네트워크를 제공하고 CNI(컨테이너 네트워크 인터페이스) 사양을 구현합니다. OVN-Kubernetes에는 기본 제공 네트워크 정책 적용 기능이 있습니다. 오버레이는 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 크기여야 합니다. (파드 네트워크는 라우팅할 수 없는 IP 주소를 사용하며, 클러스터 오버레이 네트워크 내부에서만 사용됩니다.)
  • 각 노드에는 Pod에 대한 /23 서브넷(512개 IP)이 할당됩니다. 이 값은 변경할 수 없습니다.
  • Pod를 여러 네트워크에 연결할 수 없습니다.
  • OVN-Kubernetes 네트워크 플러그 인을 사용하는 프라이빗 클러스터의 경우 송신 IP를 구성할 수 있습니다. 자세한 내용은 송신 IP 주소 구성을 참조하세요.

네트워크 설정

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

  • API 표시 유형 - az aro create 명령을 실행할 때 API 표시 여부를 설정합니다.
    • 공용 - API Server는 외부 네트워크에서 액세스할 수 있습니다.
    • 프라이빗 - API Server는 연결된 네트워크(피어된 가상 네트워크 및 클러스터의 다른 서브넷)를 사용하여 액세스할 수 있는 컨트롤 플레인 서브넷에서 개인 IP를 할당했습니다.
  • 인그레스 가시성 - az aro create 명령을 실행할 때 API 가시성을 설정합니다.
    • 공용 경로는 기본적으로 공용 표준 Load Balancer로 설정됩니다. (기본값은 변경할 수 있습니다.)
    • 프라이빗 경로는 기본적으로 내부 부하 분산 장치로 설정됩니다. (기본값은 변경할 수 있습니다.)

네트워크 보안 그룹

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

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

도메인 전달

Azure Red Hat OpenShift CoreDNS를 클러스터 내 DNS 공급자로 사용하므로 바꿀 수 없습니다. 특정 도메인에 대한 쿼리를 사용자 고유의 DNS 서버로 보내도록 도메인 전달을 구성할 수 있습니다. 자세한 내용은 DNS 전달 사용에 대한 설명서를 참조하세요.

다음 단계

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