16장. AWS VPC 클러스터를 AWS Outpost로 확장
OpenShift Container Platform 버전 4.14에서는 AWS Outposts에서 기술 프리뷰로 실행되는 컴퓨팅 노드가 있는 AWS(Amazon Web Services)에 클러스터를 설치할 수 있었습니다. OpenShift Container Platform 버전 4.15부터 이 설치 방법은 더 이상 지원되지 않습니다. 대신 AWS의 클러스터를 기존 VPC에 설치하고 설치 후 구성 작업으로 AWS Outpost에서 컴퓨팅 노드를 프로비저닝할 수 있습니다.
AWS(Amazon Web Services)의 클러스터를 기존 Amazon VPC(Virtual Private Cloud)에 설치한 후 AWS Outposts에 컴퓨팅 머신을 배포하는 컴퓨팅 머신 세트를 생성할 수 있습니다. AWS Outposts는 온프레미스 환경의 대기 시간을 단축하여 클라우드 기반 AWS 배포의 많은 기능을 사용할 수 있는 AWS 엣지 컴퓨팅 서비스입니다. 자세한 내용은 AWS Outposts 설명서 를 참조하십시오.
16.1. OpenShift Container Platform 요구 사항 및 제한 사항에 대한 AWS Outposts
다음 요구 사항 및 제한 사항을 수용하도록 OpenShift Container Platform 클러스터를 구성하는 경우 클라우드 기반 AWS 클러스터와 유사하게 AWS Outpost에서 리소스를 관리할 수 있습니다.
- AWS의 OpenShift Container Platform 클러스터를 Outpost로 확장하려면 클러스터를 기존 Amazon VPC(Virtual Private Cloud)에 설치해야 합니다.
- Outpost의 인프라는 AWS 리전의 가용성 영역에 연결되어 있으며 전용 서브넷을 사용합니다. Outpost에 배포된 에지 컴퓨팅 시스템은 Outpost 서브넷과 Outpost가 연결된 가용성 영역을 사용해야 합니다.
-
AWS Kubernetes 클라우드 컨트롤러 관리자가 Outpost 서브넷을 검색하면 Outpost 서브넷에서 서비스 로드 밸런서를 생성하려고 합니다. AWS Outposts는 서비스 로드 밸런서 실행을 지원하지 않습니다. 클라우드 컨트롤러 관리자가 Outpost 서브넷에서 지원되지 않는 서비스를 생성하지 못하도록 하려면 Outpost 서브넷 구성에
kubernetes.io/cluster/unmanaged
태그를 포함해야 합니다. 이 요구 사항은 OpenShift Container Platform 버전 4.15의 해결 방법입니다. 자세한 내용은 OCPBUGS-30041 에서 참조하십시오. -
AWS의 OpenShift Container Platform 클러스터에는
gp3-csi
및gp2-csi
스토리지 클래스가 포함됩니다. 이러한 클래스는 Amazon EBS(Elastic Block Store) gp3 및 gp2 볼륨에 해당합니다. OpenShift Container Platform 클러스터는 기본적으로gp3-csi
스토리지 클래스를 사용하지만 AWS Outposts는 EBS gp3 볼륨을 지원하지 않습니다. -
이 구현에서는
node-role.kubernetes.io/outposts
테인트를 사용하여 일반 클러스터 워크로드를 Outpost 노드에 분배하지 않습니다. Outpost에서 사용자 워크로드를 예약하려면 애플리케이션의배포
리소스에 해당 허용 오차를 지정해야 합니다. 사용자 워크로드에 대해 AWS Outpost 인프라를 예약하면 기본 CSI를gp2-csi
로 업데이트하여 호환되는 등 추가 구성 요구 사항이 발생하지 않습니다. -
Outpost에서 볼륨을 생성하려면 CSI 드라이버에 Outpost Amazon Resource Name (ARN)이 필요합니다. 드라이버는
CSINode
오브젝트에 저장된 토폴로지 키를 사용하여 Outpost ARN을 확인합니다. 드라이버가 올바른 토폴로지 값을 사용하는지 확인하려면 볼륨 바인딩 모드를WaitForConsumer
로 설정하고 생성한 새 스토리지 클래스에서 허용된 토폴로지를 설정하지 않아야 합니다. AWS VPC 클러스터를 Outpost로 확장할 때 컴퓨팅 리소스의 두 가지 유형이 있습니다. VPC에는 클라우드 기반 컴퓨팅 노드가 있는 반면 Outpost에는 엣지 컴퓨팅 노드가 있습니다. 클라우드 기반 AWS Elastic Block 볼륨은 Outpost 엣지 컴퓨팅 노드에 연결할 수 없으며 외부 볼륨은 클라우드 기반 컴퓨팅 노드에 연결할 수 없습니다.
결과적으로 CSI 스냅샷을 사용하여 클라우드 기반 컴퓨팅 노드에서 엣지 컴퓨팅 노드로 영구 스토리지를 사용하는 애플리케이션을 마이그레이션하거나 원래 영구 볼륨을 직접 사용할 수 없습니다. 애플리케이션의 영구 스토리지 데이터를 마이그레이션하려면 수동 백업 및 복원 작업을 수행해야 합니다.
AWS Outposts는 AWS Network Load Balancer 또는 AWS Classic Load Balancer를 지원하지 않습니다. AWS Application Load Balancers를 사용하여 AWS Outposts 환경에서 엣지 컴퓨팅 리소스의 로드 밸런싱을 활성화해야 합니다.
Application Load Balancer를 프로비저닝하려면 Ingress 리소스를 사용하고 AWS Load Balancer Operator를 설치해야 합니다. 클러스터에 워크로드를 공유하는 엣지 및 클라우드 기반 컴퓨팅 인스턴스가 모두 포함된 경우 추가 구성이 필요합니다.
자세한 내용은 "AWS VPC 클러스터에서 AWS Load Balancer Operator 사용"을 참조하십시오.