1.7.2. 프라이빗 클러스터

외부 엔드 포인트를 노출하지 않는 비공개 OpenShift Container Platform 클러스터를 배포할 수 있습니다. 프라이빗 클러스터는 내부 네트워크에서만 액세스할 수 있으며 인터넷에 노출되지 않습니다.

기본적으로 OpenShift Container Platform은 공개적으로 액세스 가능한 DNS 및 끝점을 사용하여 프로비저닝됩니다. 따라서 개인 클러스터를 배포할 때 클러스터에서 DNS, Ingress Controller 및 API 서버를 비공개로 설정할 수 있습니다. 즉 클러스터 리소스는 내부 네트워크에서만 액세스할 수 있고 인터넷에는 노출되지 않습니다.

프라이빗 클러스터를 배포하려면 요구사항을 충족하는 기존 네트워킹을 사용해야 합니다. 네트워크의 다른 클러스터 사이에 클러스터 리소스를 공유할 수 있습니다.

또한 프로비저닝하는 클라우드에 대한 API 서비스, 프로비저닝하는 네트워크의 호스트, 설치 미디어를 받기 위해 필요한 인터넷 등에 액세스 권한이 있는 시스템에서 프라이빗 클러스터를 배포해야 합니다. 이러한 액세스 요구사항을 충족하고 회사의 지침을 따르는 모든 시스템을 사용할 수 있습니다. 클라우드 네트워크의 배스천 호스트 또는 VPN을 통해 네트워크에 액세스할 수 있는 시스템 등을 예로 들 수 있습니다.

1.7.2.1. GCP의 프라이빗 클러스터

GCP(Google Cloud Platform)에 프라이빗 클러스터를 생성하려면 클러스터를 호스팅할 기존 프라이빗 VPC와 서브넷을 제공해야 합니다. 또한 설치 프로그램에서 클러스터에 필요한 DNS 레코드를 확인할 수 있어야 합니다. 설치 프로그램은 내부 트래픽용 Ingress Operator 및 API 서버를 구성합니다.

클러스터가 GCP API에 액세스하려면 여전히 인터넷 접속이 필요합니다.

다음은 프라이빗 클러스터를 설치할 때 필요하지 않거나 생성되지 않는 항목들입니다.

  • 퍼블릭 서브넷
  • 퍼블릭 인그레스를 지원하는 퍼블릭 네트워크 로드 밸런서
  • 클러스터의 baseDomain과 일치하는 퍼블릭 DNS 영역

사용자가 지정하는 baseDomain을 사용하여 설치 프로그램에서 프라이빗 DNS 영역과 클러스터에 필요한 레코드를 생성합니다. Operator가 클러스터에 대한 공용 레코드를 생성하지 않고 사용자가 지정하는 프라이빗 서브넷에 모든 클러스터 시스템이 배치되도록 클러스터가 구성됩니다.

소스 태그를 기반으로 외부 로드 밸런서에 액세스를 제한할 수 없기 때문에 프라이빗 클러스터에서는 내부 로드 밸런서만을 사용하여 내부 인스턴스에 액세스를 허용합니다.

내부 로드 밸런서는 네트워크 로드 밸런서가 사용하는 대상 풀이 아닌 인스턴스 그룹에 의존합니다. 해당 그룹에 인스턴스가 없는 경우에도 각 영역에 대한 인스턴스 그룹이 설치 프로그램에 의해 생성됩니다.

  • 클러스터 IP 주소는 내부 전용입니다.
  • 한 가지 전달 규칙이 Kubernetes API 및 시스템 구성 서버 포트를 모두 관리합니다.
  • 백엔드 서비스는 각 영역의 인스턴스 그룹과 부트스트랩 인스턴스 그룹(존재하는 동안)으로 구성됩니다.
  • 방화벽에는 내부 소스 범위만을 기반으로 하는 단일 규칙이 사용됩니다.
1.7.2.1.1. 제한

로드 밸런서 기능의 차이로 인해 시스템 구성 서버의 상태 검사 /healthz는 실행되지 않습니다. 내부 로드 밸런서 두 개가 단일 IP 주소를 공유할 수는 없지만 네트워크 로드 밸런서 두 개는 하나의 외부 IP 주소를 공유할 수 있습니다. 대신 전적으로 포트 6443의 /readyz 검사에 의해 인스턴스 상태가 결정됩니다.