개요
컨트롤 플레인 관리 비용을 절감하고 싶으신가요? 여러 컨트롤 플레인을 관리하는 데 따르는 부담을 줄이고 싶으신가요? Red Hat OpenShift용 호스팅된 컨트롤 플레인(HyperShift라고도 함)을 사용하면 AWS(Amazon Web Services)에서 OpenShift 테넌트 클러스터를 규모에 맞게 호스팅할 수 있습니다. 각 독립 실행형 OpenShift 클러스터를 사용할 때 컨트롤 플레인은 3개의 머신 노드에 예약됩니다. 그러나 호스팅된 컨트롤 플레인을 사용하면 컨트롤 플레인이 다른 워크로드와 마찬가지로 사용 가능한 작업자 노드에서 포드로 예약됩니다. 이를 통해 더 적은 수의 노드에서 많은 컨트롤 플레인을 생성하고 실행할 수 있으므로 클러스터를 더 경제적으로 사용하는 동시에 프로젝트, 정책 등과 같은 OpenShift 테넌시 기본 요소를 계속해서 재사용할 수 있습니다. 이렇게 호스팅된 컨트롤 플레인을 활용하면 비용을 절감할 수 있지만, Arm 호스팅된 컨트롤 플레인을 활용하면 비용 절감 효과를 더 높일 수 있습니다.
Arm 호스팅된 컨트롤 플레인은 기존 64비트 Arm OCP(OpenShift Container Platform) 클러스터 환경에 설치할 수 있으므로 64비트 x86 NodePool의 여러 Arm 호스팅된 컨트롤 플레인을 신속하게 배포할 수 있습니다. 이 작업은 모두 AWS 플랫폼에서 수행할 수 있으며, Arm 호스팅된 컨트롤 플레인을 활용함으로써 비용을 절감할 수 있습니다. 이 블로그에서는 Arm 호스팅된 컨트롤 플레인을 설치하면 얻는 장점과 설치 단계를 살펴봅니다.
이 기능의 현재 지원 상태는 기술 프리뷰(Technical Preview, TP) 상태이며 향후 릴리스에서 공식적으로 지원될 예정입니다.
![Reduce Costs with ARM Hosted Control Planes on AWS-ko Reduce Costs with ARM Hosted Control Planes on AWS-ko](/rhdc/managed-files/styles/wysiwyg_full_width/private/RE9F1A~1.PNG.webp?itok=RDtB4X94)
이점
표준 OCP 클러스터가 아닌 Arm 호스팅된 컨트롤 플레인을 사용하면 다음과 같은 추가 이점을 경험할 수 있습니다.
- Arm 호스팅된 컨트롤 플레인은 동급의 x86 호스팅된 컨트롤 플레인에 비해 비용을 약 20% 절감할 수 있습니다. (m6i.xlarge(x86 기반)와 m6g.xlarge(Arm 기반)의 시간당 비용을 기준으로 한 비용 절감액 비교)
- 유지 관리 작업 감소
- 관리 및 워크로드 간 보안 경계 강화
- 더 적은 수의 노드에서 다수의 컨트롤 플레인을 실행하여 클러스터 비용 절감
- 컨트롤 플레인 시작 시간 단축
- 멀티클러스터 관리를 더욱 중앙집중식으로 손쉽게 수행
호스팅된 클러스터의 이점에 대한 자세한 내용은 호스팅된 컨트롤 플레인 개요 설명서에서 확인할 수 있습니다.
클러스터 준비
OCP 4.13.0은 AWS에서 호스팅되는 64비트 Arm OCP 클러스터의 기반으로 실행되고 있습니다.
- 멀티클러스터 엔진 오퍼레이터 2.2.4 이상을 설치합니다. 이 오퍼레이터의 설치를 위한 지침은 여기에서 확인할 수 있습니다.
- 그런 다음 1.7.1.2 Amazon Web Services S3 버킷 및 S3 OIDC 암호 생성의 단계에 따라 AWS S3 버킷과 S3 OIDC 암호를 설정합니다.
1단계를 마치면 다음 명령을 실행합니다.
aws s3api put-bucket-ownership-controls --bucket $BUCKET_NAME --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerPreferred}]"
- 그런 다음 1.7.1.6 호스팅된 컨트롤 플레인 기능 활성화의 단계에 따라 호스팅된 컨트롤 플레인을 활성화합니다.
- 1.7.1.7 호스팅된 컨트롤 플레인 CLI 설치에 따라 hypershift cli를 다운로드합니다.
데모
이어지는 섹션에서는 다음 단계를 안내합니다.
- 환경 변수 구성
- Arm 호스팅된 컨트롤 플레인 및 64비트 x86 게스트 클러스터 생성
- 기존 Arm 호스팅된 컨트롤 플레인에 추가적인 64비트 x86 게스트 클러스터 추가
- Arm 호스팅된 컨트롤 플레인 삭제
환경 변수 구성
먼저 HyperShift 커맨드라인 툴에 필요한 일부 환경 변수를 설정하여 Arm HyperShift 오퍼레이터를 설치하고 호스팅된 컨트롤 플레인 클러스터를 생성합니다. 이는 1.7.2.3 AWS에 호스팅된 클러스터 배포의 1단계와 매우 유사합니다.
Red Hat OpenShift Cluster Manager에서 암호 가져오기 이미지를 획득할 수 있습니다.
REGION=us-east-1
AWS_CREDS=~/.aws/credentials
BASE_DOMAIN=my.base.domain.com
PULL_SECRET=~/all-the-pull-secrets.json
BUCKET_NAME=my-s3-bucket
CLUSTER_NAME=my-hypershift-arm-cluster
NODEPOOL_NAME=my-additional-x86-guest-cluster
NODEPOOL_REPLICAS=2
OpenShift 64비트 Arm 관리 클러스터를 가리키도록 KUBECONFIG 환경 변수를 설정합니다.
$ hypershift % export KUBECONFIG=/Users/user/aws-oc-nightly/auth/kubeconfig
Arm 호스팅된 컨트롤 플레인 및 64비트 x86 게스트 클러스터 생성
1) 그런 다음, 관리 클러스터가 64비트 Arm이고 호스팅된 컨트롤 플레인 게스트 클러스터가 64비트 x86이 되므로 멀티아키텍처 릴리스 이미지를 활용하도록 표준 릴리스 이미지를 재정의하면서 2개의 노드가 있는 초기 게스트 클러스터로 호스팅된 컨트롤 플레인을 생성합니다. 이렇게 하면 호스팅된 클러스터 및 해당 게스트 클러스터를 생성할 때 올바른 부트스트랩 구성이 사용됩니다.
이는 1.7.2.3 AWS에 호스팅된 클러스터 배포의 4단계와 매우 유사합니다.
$ hypershift create cluster aws \
--name $CLUSTER_NAME \
--node-pool-replicas=$NODEPOOL_REPLICAS \
--base-domain $BASE_DOMAIN \
--pull-secret $PULL_SECRET \
--aws-creds $AWS_CREDS \
--region $REGION \
--release-image quay.io/openshift-release-dev/ocp-release:4.13.0-multi
2) OpenShift 커맨드라인 툴을 사용하여 게스트 클러스터가 성공적으로 생성되었는지 확인합니다.
$ oc get nodepools --namespace clusters
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE
my-hypershift-arm-cluster-us-east-1a my-hypershift-arm-cluster 2 2 False False 4.13.0
3) 호스팅된 컨트롤 플레인이 성공적으로 생성되었는지 확인합니다.
$ oc get --namespace clusters hostedclusters
NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE
my-hypershift-arm-cluster 4.13.0 my-hypershift-arm-cluster-admin-kubeconfig Completed True False The hosted control plane is available
4) 게스트 클러스터와 호스팅된 컨트롤 플레인이 성공적으로 생성되면 KUBECONFIG를 생성하여 새 게스트 클러스터로 이동하고 AWS 머신이 게스트 클러스터에 있는지 확인합니다.
$ hypershift create kubeconfig > temp_kubeconfig
2023/03/21 11:12:32 selected 1 of 1 hostedclusters for the kubeconfig
2023/03/21 11:12:32 adding clusters/my-hypershift-arm-cluster to kubeconfig
2023/03/21 11:12:32 added clusters-my-hypershift-arm-cluster to kubeconfig
2023/03/21 11:12:32 created kubeconfig with 1 contexts
$ hypershift % export KUBECONFIG=/Users/user/hypershift/temp_kubeconfig
$ hypershift % oc get nodes
NAME STATUS ROLES AGE VERSION
ip-10-0-142-149.ec2.internal Ready worker 10m v1.26.2+06e8c46
ip-10-0-143-86.ec2.internal Ready worker 10m v1.26.2+06e8c46
기존 Arm 호스팅된 컨트롤 플레인에 추가적인 64비트 x86 게스트 클러스터 추가
또한 필요에 따라 HyperShift 커맨드라인 툴을 활용하여 호스팅된 컨트롤 플레인에 추가적인 게스트 클러스터를 추가할 수 있습니다.
$ hypershift create nodepool aws \
--cluster-name $CLUSTER_NAME \
--name $NODEPOOL_NAME \
--node-count=$NODEPOOL_REPLICAS
NodePool my-additional-x86-guest-cluster created
OpenShift 커맨드라인 툴 명령을 사용하여 새 게스트 클러스터가 성공적으로 초기화되었는지 확인합니다.
$ oc get nodepools --namespace clusters
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE
my-additional-x86-guest-cluster my-hypershift-arm-cluster 2 2 False False 4.13.0
my-hypershift-arm-cluster-us-east-1a my-hypershift-arm-cluster 2 2 False False 4.13.0
Arm 호스팅된 컨트롤 플레인 삭제
Arm 호스팅된 컨트롤 플레인을 삭제하려면 아래의 명령을 실행합니다. 이는 1.7.2.6 AWS에서 호스팅된 클러스터 삭제의 1단계와 매우 유사합니다.
$ hypershift destroy cluster aws \
--name $CLUSTER_NAME \
--aws-creds $AWS_CREDS
요약
지금까지 64비트 x86 테넌트 클러스터로 Arm 호스팅된 컨트롤 플레인을 설치하고 확인하는 데 필요한 단계를 시연했습니다. 또한 HyperShift 커맨드라인 툴을 사용하여 Arm HyperShift 오퍼레이터를 설치하는 방법을 시연했고, 동일한 Arm 호스팅된 컨트롤 플레인을 활용하여 추가적인 64비트 x86 테넌트 클러스터를 생성했으며, 64비트 x86 테넌트 클러스터가 성공적으로 생성되었는지 확인했고, Arm 호스팅된 컨트롤 플레인이 성공적으로 생성되었는지 확인했으며, Arm 호스팅된 컨트롤 플레인을 삭제했습니다.
향후 작업
향후 작업에서는 호스팅된 컨트롤 플레인의 멀티아키텍처 CPU 기능을 확장할 예정입니다. 다음으로 추가할 기능은 AWS 기반 64비트 Arm NodePool 생성의 활성화입니다. 이 기능을 사용하면 동일한 호스팅된 컨트롤 플레인에서 64비트 x86과 64비트 Arm NodePool을 실행할 수 있습니다(참고: 동일한 NodePool 내에서 CPU 아키텍처를 혼합할 수 없음).
AWS 기반 64비트 Arm NodePool에 이어 향후에는 64비트 Arm 호스팅된 컨트롤 플레인과 64비트 Arm NodePool을 다른 온프레미스 및 클라우드 공급업체로 확장할 예정입니다.
저자 소개
Senior software engineer with over 10 years of industry experience in the full software development cycle. Bryan’s work in Red Hat over the past few years has primarily focused on expanding Arm offerings in Red Hat OpenShift and development on Hosted Control Planes.
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
오리지널 쇼
엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리
제품
- Red Hat Enterprise Linux
- Red Hat OpenShift Enterprise
- Red Hat Ansible Automation Platform
- 클라우드 서비스
- 모든 제품 보기
툴
체험, 구매 & 영업
커뮤니케이션
Red Hat 소개
Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.