이 문서에서는 OpenShift 4 클러스터의 Azure Red Hat OpenShift 네트워킹에 대한 개요를 제공합니다. 다이어그램과 중요한 엔드포인트 목록이 포함됩니다. 핵심 OpenShift 네트워킹 개념에 대한 자세한 내용은 Azure Red Hat OpenShift 4 네트워킹 설명서를 참조하세요.
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 서비스 간의 내부 연결)를 통해 발생합니다.
- 기본적으로 이 내부 레지스트리는 클러스터 외부에서 사용할 수 없습니다.
- 컨테이너 레지스트리는 Microsoft에서 내부적으로 제공하고 사용합니다. 이 레지스트리는 읽기 전용이며 Azure Red Hat OpenShift 사용자가 사용할 수 없습니다.
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의 송신 지원에 대한 자세한 내용은 지원 정책 설명서를 참조하세요.