HCP 클러스터를 사용하여 ROSA 설치


Red Hat OpenShift Service on AWS 4

ROSA(AWS) 클러스터에 Red Hat OpenShift Service 설치, 액세스 및 삭제.

Red Hat OpenShift Documentation Team

초록

이 문서에서는 호스팅된 컨트롤 플레인을 사용하는 AWS(ROSA) 클러스터에 Red Hat OpenShift Service를 설치하는 방법에 대한 정보를 제공합니다.

1장. 기본 옵션을 사용하여 HCP 클러스터로 ROSA 생성

참고

ROSA Classic의 빠른 시작 가이드를 찾고 있는 경우 Red Hat OpenShift Service on AWS 빠른 시작 가이드를 참조하십시오.

호스팅된 컨트롤 플레인(HCP)이 있는 Red Hat OpenShift Service on AWS(ROSA)는 AWS(ROSA) 클러스터에서 Red Hat OpenShift Service를 생성하기 위한 보다 효율적이고 안정적인 아키텍처를 제공합니다. ROSA HCP가 있는 경우 각 클러스터에는 ROSA 서비스 계정에서 격리된 전용 컨트롤 플레인이 있습니다.

기본 옵션 및 자동 AWS IAM(Identity and Access Management) 리소스 생성을 사용하여 HCP 클러스터로 ROSA를 빠르게 생성합니다. ROSA CLI(rosa)를 사용하여 클러스터를 배포할 수 있습니다.

중요

기존 ROSA 클러스터를 호스팅된 컨트롤 플레인 아키텍처로 업그레이드하거나 변환할 수 없으므로 HCP 기능과 함께 ROSA를 사용할 새 클러스터를 생성해야 합니다.

중요

여러 AWS 계정에서 VPC를 공유하는 것은 현재 HCP를 사용하여 ROSA에서 지원되지 않습니다. HCP 클러스터의 ROSA를 다른 AWS 계정에서 공유하는 서브넷에 설치하지 마십시오. 자세한 내용은 "Single VPC에서 여러 ROSA 클러스터 지원 "을 참조하십시오.

참고

HCP 클러스터가 있는 ROSA는 AWS STS(Security Token Service) 인증만 지원합니다.

추가 읽기

자동 생성 모드에 대한 고려 사항

이 문서의 절차에서는 ROSA CLI의 auto 모드를 사용하여 현재 AWS 계정을 사용하여 필요한 IAM 리소스를 즉시 생성합니다. 필요한 리소스에는 계정 전체의 IAM 역할 및 정책, 클러스터별 Operator 역할 및 정책, OIDC(OpenID Connect) ID 공급자가 포함됩니다.

또는 수동 모드를 사용할 수 있습니다. 이 모드를 사용하면 자동으로 배포하는 대신 IAM 리소스를 생성하는 데 필요한 aws 명령을 출력할 수 있습니다.

다음 단계

1.1. 기본 클러스터 사양 개요

기본 설치 옵션을 사용하여 STS(Security Token Service)를 사용하여 AWS(ROSA)에서 Red Hat OpenShift Service를 빠르게 생성할 수 있습니다. 다음 요약에서는 기본 클러스터 사양을 설명합니다.

Expand
표 1.1. STS 클러스터 사양이 있는 기본 ROSA
구성 요소기본 사양

계정 및 역할

  • 기본 IAM 역할 접두사: ManagedOpenShift
  • 클러스터 관리자 역할이 생성되지 않음

클러스터 설정

  • 기본 클러스터 버전: Latest
  • Red Hat OpenShift Cluster Manager Hybrid Cloud Console을 사용한 설치를 위한 기본 AWS 리전: us-east-1 (미국 동부, 북버지니아)
  • 가용성: 데이터 플레인의 단일 영역
  • EC2 인스턴스 메타데이터 서비스(IMDS)가 활성화되고 IMDSv1 또는 IMDSv2(토큰 선택 사항)를 사용할 수 있습니다.
  • 사용자 정의 프로젝트 모니터링: 활성화

컨트롤 플레인 노드 구성

  • 컨트롤 플레인 노드 인스턴스 유형: m5.2xlarge (8 vCPU, 32GiB RAM)
  • 컨트롤 플레인 노드 수: 3

컴퓨팅 노드 시스템 풀

  • 컴퓨팅 노드 인스턴스 유형: m5.xlarge (4 vCPU 16, GiB RAM)
  • 컴퓨팅 노드 수: 2
  • autoscaling: Not enabled
  • 추가 노드 라벨이 없음

네트워킹 구성

  • 클러스터 개인 정보 보호: 공개
  • 자체 VPC(Virtual Private Cloud)를 구성해야합니다.
  • 클러스터 전체 프록시가 구성되지 않음

CIDR(Classless Inter-Domain Routing) 범위

  • 시스템 CIDR: 10.0.0.0/16
  • Service CIDR: 172.30.0.0/16
  • Pod CIDR: 10.128.0.0/14
  • 호스트 접두사: /23

클러스터 역할 및 정책

  • Operator 역할 및 OIDC(OpenID Connect) 공급자를 생성하는 데 사용되는 모드: auto

    참고

    하이브리드 클라우드 콘솔에서 OpenShift Cluster Manager를 사용하는 설치의 경우 auto 모드에는 관리자 권한이 있는 OpenShift Cluster Manager 역할이 필요합니다.

  • 기본 Operator 역할 접두사: < cluster_name>-<4_digit_random_string>

스토리지

  • 노드 볼륨:

    • 유형: AWS EBS GP3
    • 기본 크기: 300GiB(생성 시 조정 가능)
  • 워크로드 영구 볼륨:

    • 기본 StorageClass: gp3-csi
    • 프로비저너: ebs.csi.aws.com
    • 동적 영구 볼륨 프로비저닝

클러스터 업데이트 전략

  • 개별 업데이트
  • 노드를 드레이닝하기 위한 1시간 유예 기간

1.2. HCP 사전 요구 사항이 있는 ROSA

HCP 클러스터를 사용하여 ROSA를 생성하려면 다음 항목이 있어야 합니다.

  • 구성된 VPC(가상 프라이빗 클라우드)
  • 계정 전체 역할
  • OIDC 구성
  • Operator 역할

1.2.1. HCP 클러스터를 사용하여 ROSA용 가상 프라이빗 클라우드 생성

HCP 클러스터를 사용하여 ROSA를 생성하려면 VPC(Virtual Private Cloud)가 있어야 합니다. 다음 방법을 사용하여 VPC를 생성할 수 있습니다.

  • ROSA CLI를 사용하여 VPC 생성
  • Terraform 템플릿을 사용하여 VPC 생성
  • AWS 콘솔에서 VPC 리소스 수동 생성
참고

Terraform 지침은 테스트 및 시연을 목적으로 합니다. 자체 설치를 수행하려면 VPC를 일부 수정해야 합니다. 또한 이 Terraform 스크립트를 사용할 때 클러스터를 설치하려는 리전과 동일한 지역에 있는지 확인해야 합니다. 이 예제에서는 us-east-2 를 사용합니다.

ROSA CLI를 사용하여 가상 사설 클라우드 생성

rosa create network 명령은 ROSA CLI(명령줄 인터페이스)의 v.1.2.48 이상에서 사용할 수 있습니다. 이 명령은 AWS CloudFormation을 사용하여 VPC 및 ROSA 클러스터를 설치하는 데 사용되는 기타 네트워킹 구성 요소를 생성합니다. CloudFormation은 네이티브 AWS 인프라형 툴이며 AWS CLI와 호환됩니다.

템플릿을 지정하지 않으면 CloudFormation은 다음 매개변수를 생성하는 기본 템플릿을 사용합니다.

Expand
VPC 매개변수현재의

가용성 영역

1

리전

us-east-1

VPC CIDR

10.0.0.0/16

rosa create network 명령과 함께 사용할 CloudFormation 템플릿을 생성하고 사용자 지정할 수 있습니다. 기본 VPC 템플릿에 대한 자세한 내용은 이 섹션의 추가 리소스를 참조하십시오.

사전 요구 사항

  • AWS 계정을 구성했습니다.
  • Red Hat 계정을 구성했습니다.
  • ROSA CLI를 설치하고 최신 버전으로 구성했습니다.

절차

  1. 다음 명령을 실행하여 기본 CloudFormations 템플릿을 사용하여 AWS VPC를 생성합니다.

    $ rosa create network
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 추가 매개변수를 지정하여 VPC를 사용자 지정합니다.

    --param 플래그를 사용하여 기본 VPC 템플릿의 변경 사항을 지정할 수 있습니다. 다음 예제 명령은 리전,Name,AvailabilityZoneCountVpcCidr 에 대한 사용자 지정 값을 지정합니다.

    $ rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
    Copy to Clipboard Toggle word wrap

    명령을 실행하는 데 약 5분이 걸리며 리소스가 생성될 때 AWS에서 정기적인 상태 업데이트를 제공합니다. CloudFormation에 문제가 있는 경우 롤백이 시도됩니다. 다른 모든 오류가 발생하면 오류 메시지 지침을 따르거나 AWS 지원에 문의하십시오.

검증

  • 완료되면 생성된 리소스에 대한 요약이 표시됩니다.

    INFO[0140] Resources created in stack:
    INFO[0140] Resource: AttachGateway, Type: AWS::EC2::VPCGatewayAttachment, ID: <gateway-id>
    INFO[0140] Resource: EC2VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: EcrApiVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: EcrDkrVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: ElasticIP1, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: ElasticIP2, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: InternetGateway, Type: AWS::EC2::InternetGateway, ID: igw-016e1a71b9812464e
    INFO[0140] Resource: KMSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: NATGateway1, Type: AWS::EC2::NatGateway, ID: <nat-gateway-id>
    INFO[0140] Resource: PrivateRoute, Type: AWS::EC2::Route, ID: <route-id>
    INFO[0140] Resource: PrivateRouteTable, Type: AWS::EC2::RouteTable, ID: <route-id>
    INFO[0140] Resource: PrivateSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route-id>
    INFO[0140] Resource: PublicRoute, Type: AWS::EC2::Route, ID: <route-id>
    INFO[0140] Resource: PublicRouteTable, Type: AWS::EC2::RouteTable, ID: <route-id>
    INFO[0140] Resource: PublicSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route-id>
    INFO[0140] Resource: S3VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: STSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: SecurityGroup, Type: AWS::EC2::SecurityGroup, ID: <security-group-id>
    INFO[0140] Resource: SubnetPrivate1, Type: AWS::EC2::Subnet, ID: <private-subnet-id-1> \ 
    1
    
    INFO[0140] Resource: SubnetPublic1, Type: AWS::EC2::Subnet, ID: <public-subnet-id-1> \ 
    2
    
    INFO[0140] Resource: VPC, Type: AWS::EC2::VPC, ID: <vpc-id>
    INFO[0140] Stack rosa-network-stack-5555 created \ 
    3
    Copy to Clipboard Toggle word wrap
    1 2
    이 두 개의 서브넷 ID는 rosa create cluster 명령을 사용할 때 클러스터를 만드는 데 사용됩니다.
    3
    네트워크 스택 이름은 나중에 리소스를 삭제하는 데 사용됩니다.
Terraform을 사용하여 가상 사설 클라우드 생성

Terraform은 설정된 템플릿을 사용하여 다양한 리소스를 생성할 수 있는 툴입니다. 다음 프로세스는 HCP 클러스터를 사용하여 ROSA를 생성하는 데 필요한 기본 옵션을 사용합니다. Terraform 사용에 대한 자세한 내용은 추가 리소스를 참조하십시오.

사전 요구 사항

  • 시스템에 Terraform 버전 1.4.0 이상을 설치했습니다.
  • 시스템에 Git을 설치했습니다.

절차

  1. 쉘 프롬프트를 열고 다음 명령을 실행하여 Terraform VPC 리포지토리를 복제합니다.

    $ git clone https://github.com/openshift-cs/terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 생성된 디렉터리로 이동합니다.

    $ cd terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 Terraform 파일을 시작합니다.

    $ terraform init
    Copy to Clipboard Toggle word wrap

    이 프로세스가 완료되면 초기화를 확인하는 메시지가 표시됩니다.

  4. 기존 Terraform 템플릿을 기반으로 VPC Terraform 계획을 빌드하려면 plan 명령을 실행합니다. AWS 리전을 포함해야 합니다. 클러스터 이름을 지정하도록 선택할 수 있습니다. rosa.tfplan 파일은 테라폼 계획이 완료된 후 hypershift-tf 디렉토리에 추가됩니다. 자세한 옵션은 Terraform VPC 리포지토리의 README 파일을 참조하십시오.

    $ terraform plan -out rosa.tfplan -var region=<region>
    Copy to Clipboard Toggle word wrap
  5. 다음 명령을 실행하여 VPC를 빌드하려면 이 계획 파일을 적용합니다.

    $ terraform apply rosa.tfplan
    Copy to Clipboard Toggle word wrap
    1. 선택 사항: 다음 명령을 실행하여 HCP 클러스터로 ROSA를 생성할 때 사용할 Terraform-provisioned 개인, 공용 및 머신 풀 서브넷 ID 값을 환경 변수로 캡처할 수 있습니다.

      $ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 사용하여 변수가 올바르게 설정되었는지 확인합니다.

      $ echo $SUBNET_IDS
      Copy to Clipboard Toggle word wrap

      출력 예

      $ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
      Copy to Clipboard Toggle word wrap

수동으로 가상 프라이빗 클라우드 생성

Terraform을 사용하는 대신 VPC(Virtual Private Cloud)를 수동으로 생성하도록 선택하는 경우 AWS 콘솔의 VPC 페이지로 이동합니다.

VPC는 다음 표에 표시된 요구 사항을 충족해야 합니다.

Expand
표 1.2. VPC에 대한 요구사항
요구 사항세부 정보

VPC 이름

클러스터를 생성할 때 특정 VPC 이름과 ID가 있어야합니다.

CIDR 범위

VPC CIDR 범위는 머신 CIDR과 일치해야 합니다.

가용성 영역

단일 영역에 하나의 가용성 영역이 필요하며, 다중 영역의 가용성 영역인 경우 3개가 필요합니다.

퍼블릭 서브넷

공용 클러스터에 대해 NAT 게이트웨이가 있는 퍼블릭 서브넷이 1개 있어야 합니다. 프라이빗 클러스터에는 퍼블릭 서브넷이 필요하지 않습니다.

DNS 호스트 이름 및 확인

DNS 호스트 이름 및 확인이 활성화되어 있는지 확인해야 합니다.

1.2.2. 문제 해결

클러스터를 설치하지 못하는 경우 다음과 같은 일반적인 문제를 해결합니다.

  • DHCP 옵션 세트에 도메인 이름이 포함되어 있는지 확인하고 도메인 이름에 공백이나 대문자가 포함되어 있지 않은지 확인합니다.
  • VPC에서 사용자 지정 DNS 확인자(DHCP 옵션 세트의 도메인 이름 서버 필드)를 사용하는 경우 Route53에 구성된 프라이빗 호스팅 영역을 올바르게 확인할 수 있는지 확인합니다.

ROSA 클러스터 설치 문제 해결에 대한 자세한 내용은 AWS 설치에서 Red Hat OpenShift Service 문제 해결을 참조하십시오.

지원 받기

추가 지원이 필요한 경우 Red Hat 고객 포털을 방문하여 지식 베이스 문서를 검토하고 지원 케이스를 제출하고 추가 제품 설명서 및 리소스를 검토하십시오.

서브넷 태그 지정

VPC를 사용하여 HCP 클러스터로 ROSA를 생성하려면 먼저 VPC 서브넷을 태그해야 합니다. 자동화된 서비스 preflight 검사에서는 이러한 리소스를 사용하기 전에 이러한 리소스가 올바르게 태그되었는지 확인합니다. 다음 표에서는 리소스에 다음 태그를 지정하는 방법을 보여줍니다.

Expand
리소스현재의

퍼블릭 서브넷

kubernetes.io/role/elb

1 또는 no value

프라이빗 서브넷

kubernetes.io/role/internal-elb

1 또는 no value

참고

하나 이상의 프라이빗 서브넷과 해당하는 경우 공용 서브넷과 퍼블릭 서브넷을 태그해야 합니다.

사전 요구 사항

  • VPC를 생성했습니다.
  • aws CLI가 설치되어 있습니다.

절차

  1. 다음 명령을 실행하여 터미널에서 리소스를 태그합니다.

    1. 퍼블릭 서브넷의 경우 다음을 실행합니다.

      $ aws ec2 create-tags --resources <public-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
      Copy to Clipboard Toggle word wrap
    2. 프라이빗 서브넷의 경우 다음을 실행합니다.

      $ aws ec2 create-tags --resources <private-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1
      Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 태그가 올바르게 적용되었는지 확인합니다.

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"
    Copy to Clipboard Toggle word wrap

    출력 예

    TAGS    Name                    <subnet-id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet-id>        subnet  1
    Copy to Clipboard Toggle word wrap

1.2.3. 계정 전체 STS 역할 및 정책 생성

ROSA(Red Hat OpenShift Service on AWS) CLI(rosa)를 사용하여 호스팅된 컨트롤 플레인(HCP) 클러스터가 있는 AWS(ROSA)에서 Red Hat OpenShift Service를 생성하기 전에 Operator 정책을 포함하여 필요한 계정 전체 역할 및 정책을 생성합니다.

참고

HCP 클러스터를 사용하는 ROSA에는 AWS 관리 정책이 연결된 계정 및 Operator 역할이 필요합니다. 고객 관리 정책은 지원되지 않습니다. HCP 클러스터의 ROSA 관리 정책에 대한 자세한 내용은 ROSA 계정 역할에 대한 AWS 관리 정책을 참조하십시오.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 사용 가능한 AWS 서비스 할당량이 있습니다.
  • AWS 콘솔에서 ROSA 서비스를 활성화했습니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다.
  • ROSA CLI를 사용하여 Red Hat 계정에 로그인했습니다.

절차

  1. AWS 계정에 없는 경우 필요한 계정 전체 STS 역할을 생성하고 다음 명령을 실행하여 정책을 연결합니다.

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 다음 명령을 실행하여 접두사를 환경 변수로 설정합니다.

    $ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
    Copy to Clipboard Toggle word wrap
    • 다음 명령을 실행하여 변수 값을 확인합니다.

      $ echo $ACCOUNT_ROLES_PREFIX
      Copy to Clipboard Toggle word wrap

      출력 예

      ManagedOpenShift
      Copy to Clipboard Toggle word wrap

ROSA의 AWS 관리 IAM 정책에 대한 자세한 내용은 ROSA의 AWS 관리 IAM 정책을 참조하십시오.

1.2.4. OpenID Connect 구성 생성

AWS 클러스터에서 Red Hat OpenShift Service를 사용하는 경우 클러스터를 생성하기 전에 OpenID Connect(OIDC) 구성을 생성할 수 있습니다. 이 구성은 OpenShift Cluster Manager와 함께 사용하도록 등록됩니다.

사전 요구 사항

  • AWS에서 Red Hat OpenShift Service에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 설치 호스트에 최신 Red Hat OpenShift Service on AWS(ROSA) CLI를 설치하고 구성했습니다.

절차

  1. AWS 리소스와 함께 OIDC 구성을 생성하려면 다음 명령을 실행합니다.

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    이 명령은 다음 정보를 반환합니다.

    출력 예

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
    Copy to Clipboard Toggle word wrap

    클러스터를 생성할 때 OIDC 구성 ID를 제공해야 합니다. CLI 출력은 --mode auto 에 대해 이 값을 제공합니다. 그렇지 않으면 --mode 수동 에 대한 aws CLI 출력에 따라 이러한 값을 결정해야합니다.

  2. 선택 사항: 나중에 사용할 수 있도록 OIDC 구성 ID를 변수로 저장할 수 있습니다. 다음 명령을 실행하여 변수를 저장합니다.

    $ export OIDC_ID=<oidc_config_id>
    1
    Copy to Clipboard Toggle word wrap
    1
    위의 출력 예에서 OIDC 구성 ID는 13cdr6b입니다.
    • 다음 명령을 실행하여 변수 값을 확인합니다.

      $ echo $OIDC_ID
      Copy to Clipboard Toggle word wrap

      출력 예

      13cdr6b
      Copy to Clipboard Toggle word wrap

검증

  • 사용자 조직과 연결된 클러스터에 사용 가능한 OIDC 구성을 나열할 수 있습니다. 다음 명령을 실행합니다.

    $ rosa list oidc-config
    Copy to Clipboard Toggle word wrap

    출력 예

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    Copy to Clipboard Toggle word wrap

1.2.5. Operator 역할 및 정책 생성

HCP 클러스터와 함께 ROSA를 사용하는 경우 호스팅되는 컨트롤 플레인(HCP) 배포와 함께 ROSA(Red Hat OpenShift Service on AWS)에 필요한 Operator IAM 역할을 생성해야 합니다. 클러스터 Operator는 Operator 역할을 사용하여 백엔드 스토리지, 클라우드 공급자 인증 정보 관리, 클러스터에 대한 외부 액세스와 같은 클러스터 작업을 수행하는 데 필요한 임시 권한을 얻습니다.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 설치 호스트에 AWS ROSA CLI(rosa)에 최신 Red Hat OpenShift Service를 설치하고 구성했습니다.
  • 계정 전체 AWS 역할을 생성하셨습니다.

절차

  1. 다음 명령을 사용하여 접두사 이름을 환경 변수로 설정합니다.

    $ export OPERATOR_ROLES_PREFIX=<prefix_name>
    Copy to Clipboard Toggle word wrap
  2. Operator 역할을 생성하려면 다음 명령을 실행합니다.

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap

    다음 분석에서는 Operator 역할 생성에 대한 옵션을 제공합니다.

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX 
    1
    
    	--oidc-config-id=$OIDC_ID 
    2
    
    	--installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role 
    3
    Copy to Clipboard Toggle word wrap
    1
    이러한 Operator 역할을 생성할 때 접두사를 제공해야 합니다. 이렇게 하지 않으면 오류가 발생합니다. Operator 접두사에 대한 자세한 내용은 이 섹션의 추가 리소스를 참조하십시오.
    2
    이 값은 HCP 클러스터를 사용하여 ROSA용으로 생성한 OIDC 구성 ID입니다.
    3
    이 값은 ROSA 계정 역할을 생성할 때 생성한 설치 관리자 역할 ARN입니다.

    HCP 클러스터의 ROSA에 올바른 역할을 생성하려면 --hosted-cp 매개변수를 포함해야 합니다. 이 명령은 다음 정보를 반환합니다.

    출력 예

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 
    1
    
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 
    2
    
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    Copy to Clipboard Toggle word wrap

    1
    이 필드는 초기 생성 명령에서 설정한 접두사로 미리 채워집니다.
    2
    이 필드를 사용하려면 HCP 클러스터를 사용하여 ROSA에 대해 생성한 OIDC 구성을 선택해야 합니다.

    이제 Operator 역할이 생성되어 HCP 클러스터를 사용하여 ROSA를 생성할 준비가 되었습니다.

검증

  • ROSA 계정과 연결된 Operator 역할을 나열할 수 있습니다. 다음 명령을 실행합니다.

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    출력 예

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 
    1
    
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    Copy to Clipboard Toggle word wrap

    1
    명령을 실행한 후 AWS 계정과 연결된 모든 접두사를 표시하고 이 접두사와 연결된 역할 수를 기록합니다. 이러한 역할과 세부 정보를 모두 확인해야 하는 경우 세부 정보 프롬프트에 이러한 역할을 나열하도록 "예"를 입력합니다.

1.3. CLI를 사용하여 HCP 클러스터로 ROSA 생성

ROSA(Red Hat OpenShift Service on AWS) CLI인 rosa 를 사용하여 클러스터를 생성하는 경우 기본 옵션을 선택하여 클러스터를 빠르게 생성할 수 있습니다.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 사용 가능한 AWS 서비스 할당량이 있습니다.
  • AWS 콘솔에서 ROSA 서비스를 활성화했습니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다. rosa 버전을 실행하여 현재 설치된 ROSA CLI 버전을 확인합니다. 최신 버전을 사용할 수 있는 경우 CLI는 이 업그레이드를 다운로드할 수 있는 링크를 제공합니다.
  • ROSA CLI를 사용하여 Red Hat 계정에 로그인했습니다.
  • OIDC 구성을 생성했습니다.
  • AWS 계정에 ELB(Elastic Load Balancing) 서비스 역할이 있는지 확인했습니다.

절차

  1. 다음 명령 중 하나를 사용하여 HCP 클러스터로 ROSA를 생성합니다.

    참고

    HCP 클러스터를 사용하여 ROSA를 생성할 때 기본 머신 Classless Inter-Domain Routing (CIDR)은 10.0.0.0/16 입니다. VPC 서브넷의 CIDR 범위에 해당하지 않는 경우 다음 명령에 --machine-cidr <address_block >을 추가합니다. AWS에서 Red Hat OpenShift Service의 기본 CIDR 범위에 대한 자세한 내용은 CIDR 범위 정의를 참조하십시오.

    • 환경 변수를 설정하지 않은 경우 다음 명령을 실행합니다.

      $ rosa create cluster --cluster-name=<cluster_name> \ 
      1
      
          --mode=auto --hosted-cp [--private] \ 
      2
      
          --operator-roles-prefix <operator-role-prefix> \ 
      3
      
          --external-id <external-id> \ 
      4
      
          --oidc-config-id <id-of-oidc-configuration> \
          --subnet-ids=<public-subnet-id>,<private-subnet-id>
      Copy to Clipboard Toggle word wrap
      1
      클러스터 이름을 지정합니다. 클러스터 이름이 15자보다 긴 경우 openshiftapps.com에서 프로비저닝된 클러스터의 하위 도메인으로 자동 생성된 도메인 접두사가 포함됩니다. 하위 도메인을 사용자 지정하려면 --domain-prefix 플래그를 사용합니다. 도메인 접두사는 15자를 초과할 수 없으며 고유해야 하며 클러스터 생성 후에는 변경할 수 없습니다.
      2
      선택 사항: --private 인수는 HCP 클러스터를 사용하여 개인 ROSA를 생성하는 데 사용됩니다. 이 인수를 사용하는 경우 --subnet-ids 에 프라이빗 서브넷 ID만 사용해야 합니다.
      3
      기본적으로 클러스터별 Operator 역할 이름 앞에는 클러스터 이름과 임의의 4자리 해시가 추가됩니다. 선택 옵션으로 역할 이름에 < cluster_name>-<hash >를 대체할 사용자 지정 접두사를 지정할 수 있습니다. 접두사는 클러스터별 Operator IAM 역할을 생성할 때 적용됩니다. 접두사에 대한 자세한 내용은 사용자 정의 Operator IAM 역할 접두사 정보를 참조하십시오.
      참고

      연결된 계정 전체 역할을 생성할 때 사용자 정의 ARN 경로를 지정한 경우 사용자 정의 경로가 자동으로 감지됩니다. 사용자 정의 경로는 이후 단계에서 생성할 때 클러스터별 Operator 역할에 적용됩니다.

      4
      선택 사항: 다른 계정에서 역할을 가정할 때 필요할 수 있는 고유 식별자입니다.
    • 환경 변수를 설정하는 경우 다음 명령을 실행하여 공개적으로 사용 가능한 API 및 공개적으로 사용 가능한 Ingress를 사용하여 단일 초기 머신 풀로 클러스터를 생성합니다.

      $ rosa create cluster --private --cluster-name=<cluster_name> \
          --mode=auto --hosted-cp --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
          --oidc-config-id=$OIDC_ID --subnet-ids=$SUBNET_IDS
      Copy to Clipboard Toggle word wrap
    • 환경 변수를 설정하는 경우 다음 명령을 실행하여 단일 초기 머신 풀, 공개적으로 사용 가능한 API 및 공개적으로 사용 가능한 Ingress로 클러스터를 생성합니다.

      $ rosa create cluster --cluster-name=<cluster_name> --mode=auto \
          --hosted-cp --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
          --oidc-config-id=$OIDC_ID --subnet-ids=$SUBNET_IDS
      Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 클러스터 상태를 확인합니다.

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap

    클러스터 설치가 진행됨에 따라 다음 상태 필드 변경 사항이 출력에 나열됩니다.

    • 보류 (사전 계정)
    • 설치 ( 진행 중인 DNS 설정)
    • 설치
    • Ready

      참고

      설치에 실패하거나 10분 이상 State 필드가 준비 상태가 아닌 경우 자세한 내용은 설치 문제 해결 설명서를 확인하십시오. 자세한 내용은 설치 문제 해결을 참조하십시오. Red Hat 지원에 문의하려면 AWS에서 Red Hat OpenShift Service에 대한 지원 받기를 참조하십시오.

  3. AWS 설치 프로그램 로그에서 Red Hat OpenShift Service를 확인하여 클러스터 생성 진행 상황을 추적합니다. 로그를 확인하려면 다음 명령을 실행합니다.

    $ rosa logs install --cluster=<cluster_name> --watch \ 
    1
    Copy to Clipboard Toggle word wrap
    1
    선택 사항: 설치가 진행되는 동안 새 로그 메시지를 감시하려면 --watch 인수를 사용합니다.

1.4. 다음 단계

2장. Terraform을 사용하여 ROSA 클러스터 생성

2.1. Terraform을 사용하여 기본 ROSA 클러스터 생성

기본 클러스터 옵션으로 구성된 Terraform 클러스터 템플릿을 사용하여 AWS(ROSA)에서 Red Hat OpenShift Service를 빠르게 생성합니다.

아래에 설명된 클러스터 생성 프로세스에서는 다음 리소스를 사용하여 HCP 클러스터로 ROSA를 준비하는 Terraform 구성을 사용합니다.

  • 관리 oidc-config 구성이 있는 OIDC 공급자
  • AWS Managed ROSA 정책과 관련된 사전 요구 사항 IAM Operator 역할
  • AWS Managed ROSA 정책이 연결된 IAM 계정 역할
  • STS 클러스터를 사용하여 ROSA를 생성하는 데 필요한 기타 모든 AWS 리소스

2.1.1. Terraform 개요

Terraform은 리소스를 한 번 구성하고 해당 리소스를 원하는 대로 복제하는 방법을 제공하는 코드 기반 도구입니다. Terraform은 선언적 언어를 사용하여 생성 작업을 수행합니다. 인프라 리소스의 최종 상태를 선언하고 Terraform은 이러한 리소스를 사양에 맞게 생성합니다.

사전 요구 사항

Terraform 구성 내에서 Red Hat Cloud Services 공급자 를 사용하려면 다음 사전 요구 사항을 충족해야 합니다.

  • AWS(ROSA) 명령줄 인터페이스(CLI) 툴에 Red Hat OpenShift Service를 설치했습니다.
  • 오프라인 Red Hat OpenShift Cluster Manager 토큰이 있습니다.
  • Terraform 버전 1.4.6 이상이 설치되어 있습니다.
  • AWS 계정 전체 IAM 역할을 생성했습니다.

    특정 계정 전체 IAM 역할 및 정책은 ROSA 지원, 설치, 컨트롤 플레인 및 컴퓨팅 기능에 필요한 STS 권한을 제공합니다. 여기에는 계정 전체 Operator 정책이 포함됩니다. AWS 계정 역할에 대한 자세한 내용은 추가 리소스를 참조하십시오.

  • AWS 계정관련 인증 정보가 있어 리소스를 생성할 수 있습니다. 인증 정보는 AWS 공급자용으로 구성됩니다. AWS Terraform 공급자 설명서의 인증 및 구성 섹션을 참조하십시오.
  • 최소한 Terraform이 작동하는 AWS IAM 역할 정책에서 다음 권한이 있습니다. AWS 콘솔에서 이러한 권한을 확인합니다.

    예 2.1. Terraform에 대한 최소 AWS 권한

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "VisualEditor0",
          "Effect": "Allow",
          "Action": [
            "iam:GetPolicyVersion",
            "iam:DeletePolicyVersion",
            "iam:CreatePolicyVersion",
            "iam:UpdateAssumeRolePolicy",
            "secretsmanager:DescribeSecret",
            "iam:ListRoleTags",
            "secretsmanager:PutSecretValue",
            "secretsmanager:CreateSecret",
            "iam:TagRole",
            "secretsmanager:DeleteSecret",
            "iam:UpdateOpenIDConnectProviderThumbprint",
            "iam:DeletePolicy",
            "iam:CreateRole",
            "iam:AttachRolePolicy",
            "iam:ListInstanceProfilesForRole",
            "secretsmanager:GetSecretValue",
            "iam:DetachRolePolicy",
            "iam:ListAttachedRolePolicies",
            "iam:ListPolicyTags",
            "iam:ListRolePolicies",
            "iam:DeleteOpenIDConnectProvider",
            "iam:DeleteInstanceProfile",
            "iam:GetRole",
            "iam:GetPolicy",
            "iam:ListEntitiesForPolicy",
            "iam:DeleteRole",
            "iam:TagPolicy",
            "iam:CreateOpenIDConnectProvider",
            "iam:CreatePolicy",
            "secretsmanager:GetResourcePolicy",
            "iam:ListPolicyVersions",
            "iam:UpdateRole",
            "iam:GetOpenIDConnectProvider",
            "iam:TagOpenIDConnectProvider",
            "secretsmanager:TagResource",
            "sts:AssumeRoleWithWebIdentity",
            "iam:ListRoles"
          ],
          "Resource": [
            "arn:aws:secretsmanager:*:<ACCOUNT_ID>:secret:*",
            "arn:aws:iam::<ACCOUNT_ID>:instance-profile/*",
            "arn:aws:iam::<ACCOUNT_ID>:role/*",
            "arn:aws:iam::<ACCOUNT_ID>:oidc-provider/*",
            "arn:aws:iam::<ACCOUNT_ID>:policy/*"
          ]
        },
        {
          "Sid": "VisualEditor1",
          "Effect": "Allow",
          "Action": [
            "s3:*"
            ],
          "Resource": "*"
        }
      ]
    }
    Copy to Clipboard Toggle word wrap
Terraform 사용 시 고려 사항

일반적으로 Terraform을 사용하여 클라우드 리소스 관리는 Terraform 방법론을 사용하여 변경 사항을 수행해야 합니다. AWS 콘솔 또는 Red Hat 콘솔과 같은 Terraform 외부의 툴을 사용하여 Terraform이 생성한 클라우드 리소스를 수정할 때는 주의하십시오. Terraform 이외의 툴을 사용하여 Terraform에서 이미 관리하는 클라우드 리소스를 관리하면 선언된 Terraform 구성의 구성 드리프트가 도입되었습니다.

예를 들어 Red Hat Hybrid Cloud Console 을 사용하여 Terraform이 생성된 클러스터를 업그레이드하는 경우 향후 구성 변경 사항을 적용하기 전에 Terraform 상태를 조정해야 합니다. 자세한 내용은 HashiCorp 개발자 설명서의 Terraform 상태에서 리소스 관리를 참조하십시오.

2.1.2. 기본 클러스터 사양 개요

Expand
표 2.1. STS 클러스터 사양이 있는 기본 ROSA
구성 요소기본 사양

계정 및 역할

  • 기본 IAM 역할 접두사: rosa-<6-digit-alphanumeric-string>
  • 클러스터 관리자 역할이 생성되지 않음

클러스터 설정

  • 기본 클러스터 버전: 4.14
  • 클러스터 이름: rosa-<6-digit-alphanumeric-string>
  • Red Hat OpenShift Cluster Manager Hybrid Cloud Console을 사용한 설치를 위한 기본 AWS 리전: us-east-2(미국 동부, 오하오)
  • 가용성: 데이터 플레인의 다중 영역
  • EC2 인스턴스 메타데이터 서비스(IMDS)가 활성화되고 IMDSv1 또는 IMDSv2(토큰 선택 사항)를 사용할 수 있습니다.
  • 사용자 정의 프로젝트 모니터링: 활성화

암호화

  • 클라우드 스토리지는 미사용 상태에서 암호화됩니다.
  • 추가 etcd 암호화가 활성화되지 않음
  • 기본 AWS KMS(Key Management Service) 키는 영구 데이터의 암호화 키로 사용됩니다.

컨트롤 플레인 노드 구성

  • 컨트롤 플레인 노드 인스턴스 유형: m5.2xlarge (8 vCPU, 32GiB RAM)
  • 컨트롤 플레인 노드 수: 3

인프라 노드 구성

  • 인프라 노드 인스턴스 유형: r5.xlarge (4 vCPU, 32GiB RAM)
  • 인프라 노드 수: 2

컴퓨팅 노드 시스템 풀

  • 컴퓨팅 노드 인스턴스 유형: m5.xlarge (4 vCPU 16, GiB RAM)
  • 컴퓨팅 노드 수: 3
  • autoscaling: Not enabled
  • 추가 노드 라벨이 없음

네트워킹 구성

  • 클러스터 개인 정보: 공용 또는 개인 정보
  • Terraform 클러스터 생성 프로세스 중에 새 VPC를 생성하도록 선택할 수 있습니다.
  • 자체 VPC(Virtual Private Cloud)를 구성해야합니다.
  • 클러스터 전체 프록시가 구성되지 않음

CIDR(Classless Inter-Domain Routing) 범위

  • 시스템 CIDR: 10.0.0.0/16
  • Service CIDR: 172.30.0.0/16
  • Pod CIDR: 10.128.0.0/14
  • 호스트 접두사: /23

클러스터 역할 및 정책

  • Operator 역할 및 OIDC(OpenID Connect) 공급자를 생성하는 데 사용되는 모드: auto

    참고

    하이브리드 클라우드 콘솔에서 OpenShift Cluster Manager를 사용하는 설치의 경우 auto 모드에는 관리자 권한이 있는 OpenShift Cluster Manager 역할이 필요합니다.

  • 기본 Operator 역할 접두사: rosa-<6-digit-alphanumeric-string>

스토리지

  • 노드 볼륨:

    • 유형: AWS EBS GP3
    • 기본 크기: 300GiB(생성 시 조정 가능)
  • 워크로드 영구 볼륨:

    • 기본 StorageClass: gp3-csi
    • 프로비저너: ebs.csi.aws.com
    • 동적 영구 볼륨 프로비저닝

클러스터 업데이트 전략

  • 개별 업데이트
  • 노드를 드레이닝하기 위한 1시간 유예 기간

2.1.3. Terraform을 사용하여 기본 ROSA 클러스터 생성

아래에 설명된 클러스터 생성 프로세스는 Terraform을 사용하여 계정 전체 IAM 역할 및 관리 OIDC 구성으로 ROSA 클러스터를 생성하는 방법을 보여줍니다.

2.1.3.1. Terraform을 위한 환경 준비

Terraform을 사용하여 AWS 클러스터에서 Red Hat OpenShift Service를 생성하려면 오프라인 Red Hat OpenShift Cluster Manager 토큰 을 내보내야 합니다.

절차

  1. 선택 사항: 이 절차 중에 Terraform 파일이 현재 디렉터리에 생성되므로 새 디렉터리를 생성하여 이러한 파일을 저장하고 다음 명령을 실행하여 이 파일로 이동할 수 있습니다.

    $ mkdir terraform-cluster && cd terraform-cluster
    Copy to Clipboard Toggle word wrap
  2. 오프라인 Red Hat OpenShift Cluster Manager 토큰을 사용하여 계정에 권한을 부여합니다.
  3. 오프라인 토큰을 복사하고 다음 명령을 실행하여 토큰을 환경 변수로 설정합니다.

    $ export RHCS_TOKEN=<your_offline_token>
    Copy to Clipboard Toggle word wrap
    참고

    이 환경 변수는 시스템을 다시 시작하거나 터미널을 닫는 등 각 세션이 끝날 때 재설정됩니다.

검증

  • 토큰을 내보낸 후 다음 명령을 실행하여 값을 확인합니다.

    $ echo $RHCS_TOKEN
    Copy to Clipboard Toggle word wrap
2.1.3.2. Terraform 파일을 로컬에서 생성

오프라인 Red Hat OpenShift Cluster Manager 토큰 을 설정한 후 클러스터를 빌드하려면 Terraform 파일을 로컬로 생성해야 합니다. 다음 코드 템플릿을 사용하여 이러한 파일을 생성할 수 있습니다.

절차

  1. 다음 명령을 실행하여 main.tf 파일을 생성합니다.

    $ cat<<-EOF>main.tf
    #
    # Copyright (c) 2023 Red Hat, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #   http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    terraform {
      required_providers {
        aws = {
          source  = "hashicorp/aws"
          version = ">= 4.20.0"
        }
        rhcs = {
          version = ">= 1.6.3"
          source  = "terraform-redhat/rhcs"
        }
      }
    }
    
    # Export token using the RHCS_TOKEN environment variable
    provider "rhcs" {}
    
    provider "aws" {
      region = var.aws_region
      ignore_tags {
        key_prefixes = ["kubernetes.io/"]
      }
      default_tags {
        tags = var.default_aws_tags
      }
    }
    
    data "aws_availability_zones" "available" {}
    
    locals {
      # Extract availability zone names for the specified region, limit it to 3 if multi az or 1 if single
      region_azs = var.multi_az ? slice([for zone in data.aws_availability_zones.available.names : format("%s", zone)], 0, 3) : slice([for zone in data.aws_availability_zones.available.names : format("%s", zone)], 0, 1)
    }
    
    resource "random_string" "random_name" {
      length  = 6
      special = false
      upper   = false
    }
    
    locals {
      worker_node_replicas = var.multi_az ? 3 : 2
      # If cluster_name is not null, use that, otherwise generate a random cluster name
      cluster_name = coalesce(var.cluster_name, "rosa-\${random_string.random_name.result}")
    }
    
    # The network validator requires an additional 60 seconds to validate Terraform clusters.
    resource "time_sleep" "wait_60_seconds" {
      count = var.create_vpc ? 1 : 0
      depends_on = [module.vpc]
      create_duration = "60s"
    }
    
    module "rosa-hcp" {
      source                 = "terraform-redhat/rosa-hcp/rhcs"
      version                = "1.6.3"
      cluster_name           = local.cluster_name
      openshift_version      = var.openshift_version
      account_role_prefix    = local.cluster_name
      operator_role_prefix   = local.cluster_name
      replicas               = local.worker_node_replicas
      aws_availability_zones = local.region_azs
      create_oidc            = true
      private                = var.private_cluster
      aws_subnet_ids         = var.create_vpc ? var.private_cluster ? module.vpc[0].private_subnets : concat(module.vpc[0].public_subnets, module.vpc[0].private_subnets) : var.aws_subnet_ids
      create_account_roles   = true
      create_operator_roles  = true
    # Optional: Configure a cluster administrator user \ 
    1
    
    #
    # Option 1: Default cluster-admin user
    # Create an administrator user (cluster-admin) and automatically
    # generate a password by uncommenting the following parameter:
    #  create_admin_user = true
    # Generated administrator credentials are displayed in terminal output.
    #
    # Option 2: Specify administrator username and password
    # Create an administrator user and define your own password
    # by uncommenting and editing the values of the following parameters:
    #  admin_credentials_username = <username>
    #  admin_credentials_password = <password>
    
      depends_on = [time_sleep.wait_60_seconds]
    }
    EOF
    Copy to Clipboard Toggle word wrap
    1
    선택 사항: 적절한 매개변수의 주석을 제거하고 필요한 경우 값을 편집하여 클러스터 생성 중에 관리자를 생성합니다.
  2. 다음 명령을 실행하여 variables.tf 파일을 생성합니다.

    참고

    클러스터를 빌드하도록 명령을 실행하기 전에 이 파일을 복사하고 편집합니다.

    $ cat<<-EOF>variables.tf
    #
    # Copyright (c) 2023 Red Hat, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #   http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    variable "openshift_version" {
      type        = string
      default     = "4.14.20"
      description = "Desired version of OpenShift for the cluster, for example '4.14.20'. If version is greater than the currently running version, an upgrade will be scheduled."
    }
    
    variable "create_vpc" {
      type        = bool
      description = "If you would like to create a new VPC, set this value to 'true'. If you do not want to create a new VPC, set this value to 'false'."
    }
    
    # ROSA Cluster info
    variable "cluster_name" {
      default     = null
      type        = string
      description = "The name of the ROSA cluster to create"
    }
    
    variable "additional_tags" {
      default = {
        Terraform   = "true"
        Environment = "dev"
      }
      description = "Additional AWS resource tags"
      type        = map(string)
    }
    
    variable "multi_az" {
      type        = bool
      description = "Multi AZ Cluster for High Availability"
      default     = true
    }
    
    variable "worker_node_replicas" {
      default     = 3
      description = "Number of worker nodes to provision. Single zone clusters need at least 2 nodes, multizone clusters need at least 3 nodes"
      type        = number
    }
    
    variable "aws_subnet_ids" {
      type        = list(any)
      description = "A list of either the public or public + private subnet IDs to use for the cluster blocks to use for the cluster"
      default     = ["subnet-01234567890abcdef", "subnet-01234567890abcdef", "subnet-01234567890abcdef"]
    }
    
    variable "private_cluster" {
      type        = bool
      description = "If you want to create a private cluster, set this value to 'true'. If you want a publicly available cluster, set this value to 'false'."
    }
    
    #VPC Info
    variable "vpc_name" {
      type        = string
      description = "VPC Name"
      default     = "tf-qs-vpc"
    }
    
    variable "vpc_cidr_block" {
      type        = string
      description = "value of the CIDR block to use for the VPC"
      default     = "10.0.0.0/16"
    }
    
    variable "private_subnet_cidrs" {
      type        = list(any)
      description = "The CIDR blocks to use for the private subnets"
      default     = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
    }
    
    variable "public_subnet_cidrs" {
      type        = list(any)
      description = "The CIDR blocks to use for the public subnets"
      default     = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
    }
    
    variable "single_nat_gateway" {
      type        = bool
      description = "Single NAT or per NAT for subnet"
      default     = false
    }
    
    #AWS Info
    variable "aws_region" {
      type    = string
      default = "us-east-2"
    }
    
    variable "default_aws_tags" {
      type        = map(string)
      description = "Default tags for AWS"
      default     = {}
    }
    EOF
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 vpc.tf 파일을 생성합니다.

    $ cat<<-EOF>vpc.tf
    #
    # Copyright (c) 2023 Red Hat, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #   http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    module "vpc" {
      source  = "terraform-aws-modules/vpc/aws"
      version = "5.1.2"
    
      count = var.create_vpc ? 1 : 0
      name  = var.vpc_name
      cidr  = var.vpc_cidr_block
    
      azs             = local.region_azs
      private_subnets = var.multi_az ? var.private_subnet_cidrs : [var.private_subnet_cidrs[0]]
      public_subnets  = var.multi_az ? var.public_subnet_cidrs : [var.public_subnet_cidrs[0]]
    
      enable_nat_gateway   = true
      single_nat_gateway   = var.single_nat_gateway
      enable_dns_hostnames = true
      enable_dns_support   = true
    
      tags = var.additional_tags
    }
    EOF
    Copy to Clipboard Toggle word wrap

    Terraform을 시작할 준비가 되어 있습니다.

2.1.3.3. Terraform을 사용하여 ROSA 클러스터 생성

Terraform 파일을 생성한 후 필요한 모든 종속 항목을 제공하려면 Terraform을 시작해야 합니다. 그런 다음 Terraform 계획을 적용합니다.

중요

Terraform 상태 파일을 수정하지 마십시오. 자세한 내용은 Terraform 사용 시 고려 사항을참조하십시오.

절차

  1. Terraform 파일을 기반으로 리소스를 생성하려면 다음 명령을 실행합니다.

    $ terraform init
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 복사한 Terraform이 다음 명령을 실행하여 올바른지 확인합니다.

    $ terraform validate
    Copy to Clipboard Toggle word wrap

    출력 예

    Success! The configuration is valid.
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 실행하여 Terraform으로 클러스터를 생성합니다.

    $ terraform apply
    Copy to Clipboard Toggle word wrap

    Terraform 인터페이스는 다음과 같이 클러스터를 생성하도록 두 가지 질문을 합니다.

    출력 예

    var.create_vpc
      If you would like to create a new VPC, set this value to 'true'. If you do not want to create a new VPC, set this value to 'false'.
    
      Enter a value:
    
    var.private_cluster
      If you want to create a private cluster, set this value to 'true'. If you want a publicly available cluster, set this value to 'false'.
    
      Enter a value:
    Copy to Clipboard Toggle word wrap

  4. Terraform 인터페이스에 생성 또는 변경할 리소스가 나열되고 확인 메시지가 표시되면 yes 를 입력하여 취소하십시오.

    출력 예

    Plan: 63 to add, 0 to change, 0 to destroy.
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    Copy to Clipboard Toggle word wrap

    yes 를 입력하면 Terraform 계획이 시작되어 AWS 계정 역할, Operator 역할 및 ROSA Classic 클러스터를 생성합니다.

검증

  1. 다음 명령을 실행하여 클러스터가 생성되었는지 확인합니다.

    $ rosa list clusters
    Copy to Clipboard Toggle word wrap

    클러스터 ID, 이름 및 상태를 보여주는 출력 예

    ID                                NAME          STATE  TOPOLOGY
    27c3snjsupa9obua74ba8se5kcj11269  rosa-tf-demo  ready  Classic (STS)
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 계정 역할이 생성되었는지 확인합니다.

    $ rosa list account-roles
    Copy to Clipboard Toggle word wrap

    출력 예

    I: Fetching account roles
    ROLE NAME                                   ROLE TYPE      ROLE ARN                                                           OPENSHIFT VERSION  AWS Managed
    ROSA-demo-Installer-Role                    Installer      arn:aws:iam::<ID>:role/ROSA-demo-Installer-Role                    4.14               No
    ROSA-demo-Support-Role                      Support        arn:aws:iam::<ID>:role/ROSA-demo-Support-Role                      4.14               No
    ROSA-demo-Worker-Role                       Worker         arn:aws:iam::<ID>:role/ROSA-demo-Worker-Role                       4.14               No
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 실행하여 Operator 역할이 생성되었는지 확인합니다.

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    Terraform-created Operator 역할을 표시하는 출력 예

    I: Fetching operator roles
    ROLE PREFIX    AMOUNT IN BUNDLE
    rosa-demo      8
    Copy to Clipboard Toggle word wrap

2.1.3.4. Terraform을 사용하여 ROSA 클러스터 삭제

terraform destroy 명령을 사용하여 terraform apply 명령으로 생성된 모든 리소스를 제거합니다.

참고

리소스를 제거하기 전에 Terraform .tf 파일을 수정하지 마십시오. 이러한 변수는 삭제할 리소스와 일치합니다.

절차

  1. terraform apply 명령을 실행하여 클러스터를 생성한 디렉터리에서 다음 명령을 실행하여 클러스터를 삭제합니다.

    $ terraform destroy
    Copy to Clipboard Toggle word wrap

    Terraform 인터페이스에서 두 가지 변수를 입력하라는 메시지를 표시합니다. 이는 클러스터를 생성할 때 제공한 응답과 일치해야 합니다.

    var.create_vpc
      If you would like to create a new VPC, set this value to 'true.' If you do not want to create a new VPC, set this value to 'false.'
    
      Enter a value:
    
    var.private_cluster
      If you want to create a private cluster, set this value to 'true.' If you want a publicly available cluster, set this value to 'false.'
    
      Enter a value:
    Copy to Clipboard Toggle word wrap
  2. yes 를 입력하여 역할을 시작하고 클러스터 삭제를 시작합니다.

    출력 예

    Plan: 0 to add, 0 to change, 63 to destroy.
    
    Do you really want to destroy all resources?
      Terraform will destroy all your managed infrastructure, as shown above.
      There is no undo. Only 'yes' will be accepted to confirm.
    
      Enter a value: yes
    Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 실행하여 클러스터가 삭제되었는지 확인합니다.

    $ rosa list clusters
    Copy to Clipboard Toggle word wrap

    클러스터 없이 표시되는 출력 예

    I: No clusters available
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 계정 역할이 삭제되었는지 확인합니다.

    $ rosa list account-roles
    Copy to Clipboard Toggle word wrap

    Terraform-created 계정 역할이 표시되지 않는 출력 예

    I: Fetching account roles
    I: No account roles available
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 실행하여 Operator 역할이 삭제되었는지 확인합니다.

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    Terraform-created Operator 역할이 표시되지 않는 출력 예

    I: Fetching operator roles
    I: No operator roles available
    Copy to Clipboard Toggle word wrap

사용자 지정 AWS KMS(Key Management Service) 키를 사용하여 호스팅되는 컨트롤 플레인(HCP) 클러스터를 사용하여 AWS(ROSA)에서 Red Hat OpenShift Service를 생성합니다.

3.1. HCP 사전 요구 사항이 있는 ROSA

HCP 클러스터를 사용하여 ROSA를 생성하려면 다음 항목이 있어야 합니다.

  • 구성된 VPC(가상 프라이빗 클라우드)
  • 계정 전체 역할
  • OIDC 구성
  • Operator 역할

3.2. HCP 클러스터를 사용하여 ROSA용 가상 프라이빗 클라우드 생성

HCP 클러스터를 사용하여 ROSA를 생성하려면 VPC(Virtual Private Cloud)가 있어야 합니다. 다음 방법 중 하나를 사용하여 VPC를 생성합니다.

  • ROSA CLI(명령줄 인터페이스)를 사용하여 VPC 생성
  • Terraform 템플릿을 사용하여 VPC 생성
  • AWS 콘솔에서 VPC 리소스 수동 생성
참고

Terraform 지침은 테스트 및 시연을 목적으로 합니다. 자체 설치를 수행하려면 VPC를 일부 수정해야 합니다. 또한 이 Terraform 스크립트를 사용할 때 클러스터를 설치하려는 리전과 동일한 지역에 있는지 확인해야 합니다. 이 예제에서는 us-east-2 를 사용합니다.

ROSA CLI를 사용하여 가상 사설 클라우드 생성

rosa create network 명령은 ROSA CLI(명령줄 인터페이스)의 v.1.2.48 이상에서 사용할 수 있습니다. 이 명령은 AWS CloudFormation을 사용하여 VPC 및 ROSA 클러스터를 설치하는 데 사용되는 기타 네트워킹 구성 요소를 생성합니다. CloudFormation은 네이티브 AWS 인프라형 툴이며 AWS CLI와 호환됩니다.

템플릿을 지정하지 않으면 CloudFormation은 다음 매개변수를 생성하는 기본 템플릿을 사용합니다.

Expand
VPC 매개변수현재의

가용성 영역

1

리전

us-east-1

VPC CIDR

10.0.0.0/16

rosa create network 명령과 함께 사용할 CloudFormation 템플릿을 생성하고 사용자 지정할 수 있습니다. 기본 VPC 템플릿에 대한 자세한 내용은 이 섹션의 추가 리소스를 참조하십시오.

사전 요구 사항

  • AWS 계정을 구성했습니다.
  • Red Hat 계정을 구성했습니다.
  • ROSA CLI를 설치하고 최신 버전으로 구성했습니다.

절차

  1. 다음 명령을 실행하여 기본 CloudFormations 템플릿을 사용하여 AWS VPC를 생성합니다.

    $ rosa create network
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 추가 매개변수를 지정하여 VPC를 사용자 지정합니다.

    --param 플래그를 사용하여 기본 VPC 템플릿의 변경 사항을 지정할 수 있습니다. 다음 예제 명령은 리전,Name,AvailabilityZoneCountVpcCidr 에 대한 사용자 지정 값을 지정합니다.

    $ rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
    Copy to Clipboard Toggle word wrap

    명령을 실행하는 데 약 5분이 걸리며 리소스가 생성될 때 AWS에서 정기적인 상태 업데이트를 제공합니다. CloudFormation에 문제가 있는 경우 롤백이 시도됩니다. 다른 모든 오류가 발생하면 오류 메시지 지침을 따르거나 AWS 지원에 문의하십시오.

검증

  • 완료되면 생성된 리소스에 대한 요약이 표시됩니다.

    INFO[0140] Resources created in stack:
    INFO[0140] Resource: AttachGateway, Type: AWS::EC2::VPCGatewayAttachment, ID: <gateway-id>
    INFO[0140] Resource: EC2VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: EcrApiVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: EcrDkrVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: ElasticIP1, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: ElasticIP2, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: InternetGateway, Type: AWS::EC2::InternetGateway, ID: igw-016e1a71b9812464e
    INFO[0140] Resource: KMSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: NATGateway1, Type: AWS::EC2::NatGateway, ID: <nat-gateway-id>
    INFO[0140] Resource: PrivateRoute, Type: AWS::EC2::Route, ID: <route-id>
    INFO[0140] Resource: PrivateRouteTable, Type: AWS::EC2::RouteTable, ID: <route-id>
    INFO[0140] Resource: PrivateSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route-id>
    INFO[0140] Resource: PublicRoute, Type: AWS::EC2::Route, ID: <route-id>
    INFO[0140] Resource: PublicRouteTable, Type: AWS::EC2::RouteTable, ID: <route-id>
    INFO[0140] Resource: PublicSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route-id>
    INFO[0140] Resource: S3VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: STSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: SecurityGroup, Type: AWS::EC2::SecurityGroup, ID: <security-group-id>
    INFO[0140] Resource: SubnetPrivate1, Type: AWS::EC2::Subnet, ID: <private-subnet-id-1> \ 
    1
    
    INFO[0140] Resource: SubnetPublic1, Type: AWS::EC2::Subnet, ID: <public-subnet-id-1> \ 
    2
    
    INFO[0140] Resource: VPC, Type: AWS::EC2::VPC, ID: <vpc-id>
    INFO[0140] Stack rosa-network-stack-5555 created \ 
    3
    Copy to Clipboard Toggle word wrap
    1 2
    이 두 개의 서브넷 ID는 rosa create cluster 명령을 사용할 때 클러스터를 만드는 데 사용됩니다.
    3
    네트워크 스택 이름은 나중에 리소스를 삭제하는 데 사용됩니다.
Terraform을 사용하여 가상 사설 클라우드 생성

Terraform은 설정된 템플릿을 사용하여 다양한 리소스를 생성할 수 있는 툴입니다. 다음 프로세스는 HCP 클러스터를 사용하여 ROSA를 생성하는 데 필요한 기본 옵션을 사용합니다. Terraform 사용에 대한 자세한 내용은 추가 리소스를 참조하십시오.

사전 요구 사항

  • 시스템에 Terraform 버전 1.4.0 이상을 설치했습니다.
  • 시스템에 Git을 설치했습니다.

절차

  1. 쉘 프롬프트를 열고 다음 명령을 실행하여 Terraform VPC 리포지토리를 복제합니다.

    $ git clone https://github.com/openshift-cs/terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 생성된 디렉터리로 이동합니다.

    $ cd terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 Terraform 파일을 시작합니다.

    $ terraform init
    Copy to Clipboard Toggle word wrap

    이 프로세스가 완료되면 초기화를 확인하는 메시지가 표시됩니다.

  4. 기존 Terraform 템플릿을 기반으로 VPC Terraform 계획을 빌드하려면 plan 명령을 실행합니다. AWS 리전을 포함해야 합니다. 클러스터 이름을 지정하도록 선택할 수 있습니다. rosa.tfplan 파일은 테라폼 계획이 완료된 후 hypershift-tf 디렉토리에 추가됩니다. 자세한 옵션은 Terraform VPC 리포지토리의 README 파일을 참조하십시오.

    $ terraform plan -out rosa.tfplan -var region=<region>
    Copy to Clipboard Toggle word wrap
  5. 다음 명령을 실행하여 VPC를 빌드하려면 이 계획 파일을 적용합니다.

    $ terraform apply rosa.tfplan
    Copy to Clipboard Toggle word wrap
    1. 선택 사항: 다음 명령을 실행하여 HCP 클러스터로 ROSA를 생성할 때 사용할 Terraform-provisioned 개인, 공용 및 머신 풀 서브넷 ID 값을 환경 변수로 캡처할 수 있습니다.

      $ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 사용하여 변수가 올바르게 설정되었는지 확인합니다.

      $ echo $SUBNET_IDS
      Copy to Clipboard Toggle word wrap

      출력 예

      $ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
      Copy to Clipboard Toggle word wrap

수동으로 가상 프라이빗 클라우드 생성

Terraform을 사용하는 대신 VPC(Virtual Private Cloud)를 수동으로 생성하도록 선택하는 경우 AWS 콘솔의 VPC 페이지로 이동합니다.

VPC는 다음 표에 표시된 요구 사항을 충족해야 합니다.

Expand
표 3.1. VPC에 대한 요구사항
요구 사항세부 정보

VPC 이름

클러스터를 생성할 때 특정 VPC 이름과 ID가 있어야합니다.

CIDR 범위

VPC CIDR 범위는 머신 CIDR과 일치해야 합니다.

가용성 영역

단일 영역에 하나의 가용성 영역이 필요하며, 다중 영역의 가용성 영역인 경우 3개가 필요합니다.

퍼블릭 서브넷

공용 클러스터에 대해 NAT 게이트웨이가 있는 퍼블릭 서브넷이 1개 있어야 합니다. 프라이빗 클러스터에는 퍼블릭 서브넷이 필요하지 않습니다.

DNS 호스트 이름 및 확인

DNS 호스트 이름 및 확인이 활성화되어 있는지 확인해야 합니다.

3.2.1. 문제 해결

클러스터를 설치하지 못하는 경우 다음과 같은 일반적인 문제를 해결합니다.

  • DHCP 옵션 세트에 도메인 이름이 포함되어 있는지 확인하고 도메인 이름에 공백이나 대문자가 포함되어 있지 않은지 확인합니다.
  • VPC에서 사용자 지정 DNS 확인자(DHCP 옵션 세트의 도메인 이름 서버 필드)를 사용하는 경우 Route53에 구성된 프라이빗 호스팅 영역을 올바르게 확인할 수 있는지 확인합니다.

ROSA 클러스터 설치 문제 해결에 대한 자세한 내용은 AWS 설치에서 Red Hat OpenShift Service 문제 해결을 참조하십시오.

지원 받기

추가 지원이 필요한 경우 Red Hat 고객 포털을 방문하여 지식 베이스 문서를 검토하고 지원 케이스를 제출하고 추가 제품 설명서 및 리소스를 검토하십시오.

서브넷 태그 지정

VPC를 사용하여 HCP 클러스터로 ROSA를 생성하려면 먼저 VPC 서브넷을 태그해야 합니다. 자동화된 서비스 preflight 검사에서는 이러한 리소스를 사용하기 전에 이러한 리소스가 올바르게 태그되었는지 확인합니다. 다음 표에서는 리소스에 다음 태그를 지정하는 방법을 보여줍니다.

Expand
리소스현재의

퍼블릭 서브넷

kubernetes.io/role/elb

1 또는 no value

프라이빗 서브넷

kubernetes.io/role/internal-elb

1 또는 no value

참고

하나 이상의 프라이빗 서브넷과 해당하는 경우 공용 서브넷과 퍼블릭 서브넷을 태그해야 합니다.

사전 요구 사항

  • VPC를 생성했습니다.
  • aws CLI가 설치되어 있습니다.

절차

  1. 다음 명령을 실행하여 터미널에서 리소스를 태그합니다.

    1. 퍼블릭 서브넷의 경우 다음을 실행합니다.

      $ aws ec2 create-tags --resources <public-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
      Copy to Clipboard Toggle word wrap
    2. 프라이빗 서브넷의 경우 다음을 실행합니다.

      $ aws ec2 create-tags --resources <private-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1
      Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 태그가 올바르게 적용되었는지 확인합니다.

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"
    Copy to Clipboard Toggle word wrap

    출력 예

    TAGS    Name                    <subnet-id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet-id>        subnet  1
    Copy to Clipboard Toggle word wrap

3.2.2. 계정 전체 STS 역할 및 정책 생성

ROSA(Red Hat OpenShift Service on AWS) CLI(rosa)를 사용하여 호스팅된 컨트롤 플레인(HCP) 클러스터가 있는 AWS(ROSA)에서 Red Hat OpenShift Service를 생성하기 전에 Operator 정책을 포함하여 필요한 계정 전체 역할 및 정책을 생성합니다.

참고

HCP 클러스터를 사용하는 ROSA에는 AWS 관리 정책이 연결된 계정 및 Operator 역할이 필요합니다. 고객 관리 정책은 지원되지 않습니다. HCP 클러스터의 ROSA 관리 정책에 대한 자세한 내용은 ROSA 계정 역할에 대한 AWS 관리 정책을 참조하십시오.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 사용 가능한 AWS 서비스 할당량이 있습니다.
  • AWS 콘솔에서 ROSA 서비스를 활성화했습니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다.
  • ROSA CLI를 사용하여 Red Hat 계정에 로그인했습니다.

절차

  1. AWS 계정에 없는 경우 필요한 계정 전체 STS 역할을 생성하고 다음 명령을 실행하여 정책을 연결합니다.

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 다음 명령을 실행하여 접두사를 환경 변수로 설정합니다.

    $ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
    Copy to Clipboard Toggle word wrap
    • 다음 명령을 실행하여 변수 값을 확인합니다.

      $ echo $ACCOUNT_ROLES_PREFIX
      Copy to Clipboard Toggle word wrap

      출력 예

      ManagedOpenShift
      Copy to Clipboard Toggle word wrap

ROSA의 AWS 관리 IAM 정책에 대한 자세한 내용은 ROSA의 AWS 관리 IAM 정책을 참조하십시오.

3.2.3. OpenID Connect 구성 생성

AWS 클러스터에서 Red Hat OpenShift Service를 사용하는 경우 클러스터를 생성하기 전에 OpenID Connect(OIDC) 구성을 생성할 수 있습니다. 이 구성은 OpenShift Cluster Manager와 함께 사용하도록 등록됩니다.

사전 요구 사항

  • AWS에서 Red Hat OpenShift Service에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 설치 호스트에 최신 Red Hat OpenShift Service on AWS(ROSA) CLI를 설치하고 구성했습니다.

절차

  1. AWS 리소스와 함께 OIDC 구성을 생성하려면 다음 명령을 실행합니다.

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    이 명령은 다음 정보를 반환합니다.

    출력 예

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
    Copy to Clipboard Toggle word wrap

    클러스터를 생성할 때 OIDC 구성 ID를 제공해야 합니다. CLI 출력은 --mode auto 에 대해 이 값을 제공합니다. 그렇지 않으면 --mode 수동 에 대한 aws CLI 출력에 따라 이러한 값을 결정해야합니다.

  2. 선택 사항: 나중에 사용할 수 있도록 OIDC 구성 ID를 변수로 저장할 수 있습니다. 다음 명령을 실행하여 변수를 저장합니다.

    $ export OIDC_ID=<oidc_config_id>
    1
    Copy to Clipboard Toggle word wrap
    1
    위의 출력 예에서 OIDC 구성 ID는 13cdr6b입니다.
    • 다음 명령을 실행하여 변수 값을 확인합니다.

      $ echo $OIDC_ID
      Copy to Clipboard Toggle word wrap

      출력 예

      13cdr6b
      Copy to Clipboard Toggle word wrap

검증

  • 사용자 조직과 연결된 클러스터에 사용 가능한 OIDC 구성을 나열할 수 있습니다. 다음 명령을 실행합니다.

    $ rosa list oidc-config
    Copy to Clipboard Toggle word wrap

    출력 예

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    Copy to Clipboard Toggle word wrap

3.2.4. Operator 역할 및 정책 생성

HCP 클러스터와 함께 ROSA를 사용하는 경우 호스팅되는 컨트롤 플레인(HCP) 배포와 함께 ROSA(Red Hat OpenShift Service on AWS)에 필요한 Operator IAM 역할을 생성해야 합니다. 클러스터 Operator는 Operator 역할을 사용하여 백엔드 스토리지, 클라우드 공급자 인증 정보 관리, 클러스터에 대한 외부 액세스와 같은 클러스터 작업을 수행하는 데 필요한 임시 권한을 얻습니다.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 설치 호스트에 AWS ROSA CLI(rosa)에 최신 Red Hat OpenShift Service를 설치하고 구성했습니다.
  • 계정 전체 AWS 역할을 생성하셨습니다.

절차

  1. 다음 명령을 사용하여 접두사 이름을 환경 변수로 설정합니다.

    $ export OPERATOR_ROLES_PREFIX=<prefix_name>
    Copy to Clipboard Toggle word wrap
  2. Operator 역할을 생성하려면 다음 명령을 실행합니다.

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap

    다음 분석에서는 Operator 역할 생성에 대한 옵션을 제공합니다.

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX 
    1
    
    	--oidc-config-id=$OIDC_ID 
    2
    
    	--installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role 
    3
    Copy to Clipboard Toggle word wrap
    1
    이러한 Operator 역할을 생성할 때 접두사를 제공해야 합니다. 이렇게 하지 않으면 오류가 발생합니다. Operator 접두사에 대한 자세한 내용은 이 섹션의 추가 리소스를 참조하십시오.
    2
    이 값은 HCP 클러스터를 사용하여 ROSA용으로 생성한 OIDC 구성 ID입니다.
    3
    이 값은 ROSA 계정 역할을 생성할 때 생성한 설치 관리자 역할 ARN입니다.

    HCP 클러스터의 ROSA에 올바른 역할을 생성하려면 --hosted-cp 매개변수를 포함해야 합니다. 이 명령은 다음 정보를 반환합니다.

    출력 예

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 
    1
    
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 
    2
    
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    Copy to Clipboard Toggle word wrap

    1
    이 필드는 초기 생성 명령에서 설정한 접두사로 미리 채워집니다.
    2
    이 필드를 사용하려면 HCP 클러스터를 사용하여 ROSA에 대해 생성한 OIDC 구성을 선택해야 합니다.

    이제 Operator 역할이 생성되어 HCP 클러스터를 사용하여 ROSA를 생성할 준비가 되었습니다.

검증

  • ROSA 계정과 연결된 Operator 역할을 나열할 수 있습니다. 다음 명령을 실행합니다.

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    출력 예

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 
    1
    
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    Copy to Clipboard Toggle word wrap

    1
    명령을 실행한 후 AWS 계정과 연결된 모든 접두사를 표시하고 이 접두사와 연결된 역할 수를 기록합니다. 이러한 역할과 세부 정보를 모두 확인해야 하는 경우 세부 정보 프롬프트에 이러한 역할을 나열하도록 "예"를 입력합니다.

3.2.5. 사용자 정의 AWS KMS 키를 사용하여 ROSA 클러스터 생성

노드 루트 볼륨, etcd 데이터베이스 또는 둘 다를 암호화하는 데 사용되는 고객 제공 KMS 키를 사용하여 AWS (ROSA) 클러스터에서 Red Hat OpenShift Service를 생성할 수 있습니다. 각 옵션에 대해 다른 KMS 키 ARN을 제공할 수 있습니다.

참고

HCP를 사용하는 ROSA는 고객 제공 KMS 키로 영구 볼륨을 암호화하도록 기본 스토리지 클래스를 자동으로 구성하지 않습니다. 이는 설치 후 클러스터 내에서 구성할 수 있는 것입니다.

절차

  1. 다음 명령을 실행하여 사용자 정의 AWS 고객 관리 KMS 키를 생성합니다.

    $ KMS_ARN=$(aws kms create-key --region $AWS_REGION --description 'Custom ROSA Encryption Key' --tags TagKey=red-hat,TagValue=true --query KeyMetadata.Arn --output text)
    Copy to Clipboard Toggle word wrap

    이 명령은 추가 단계를 위해 이 사용자 지정 키의 Amazon 리소스 이름(ARN) 출력을 저장합니다.

    참고

    고객은 고객 KMS 키에 필요한 --tags TagKey=red-hat,TagValue=true 인수를 제공해야 합니다.

  2. 다음 명령을 실행하여 KMS 키가 생성되었는지 확인합니다.

    $ echo $KMS_ARN
    Copy to Clipboard Toggle word wrap
  3. AWS 계정 ID를 환경 변수로 설정합니다.

    $ AWS_ACCOUNT_ID=<aws_account_id>
    Copy to Clipboard Toggle word wrap
  4. 이전 단계에서 생성한 계정 전체 설치 관리자 역할 및 Operator 역할의 ARN을 파일의 Statement.Principal.AWS 섹션에 추가합니다. 다음 예에서는 기본 ManagedOpenShift-HCP-ROSA-Installer-Role 역할에 대한 ARN이 추가되었습니다.

    {
      "Version": "2012-10-17",
      "Id": "key-rosa-policy-1",
      "Statement": [
      {
                  "Sid": "Enable IAM User Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:root"
                  },
                  "Action": "kms:*",
                  "Resource": "*"
              },
            {
                  "Sid": "Installer Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:role/ManagedOpenShift-HCP-ROSA-Installer-Role"
                  },
                  "Action": [
                      "kms:CreateGrant",
                      "kms:DescribeKey",
                      "kms:GenerateDataKeyWithoutPlaintext"
                  ],
                  "Resource": "*"
              },
              {
                  "Sid": "ROSA KubeControllerManager Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:role/<operator_role_prefix>-kube-system-kube-controller-manager"
    
                  },
                  "Action": "kms:DescribeKey",
                  "Resource": "*"
              },
              {
                  "Sid": "ROSA KMS Provider Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:role/<operator_role_prefix>-kube-system-kms-provider"
                  },
                  "Action": [
                      "kms:Encrypt",
                      "kms:Decrypt",
                      "kms:DescribeKey"
                  ],
                  "Resource": "*"
              },
              {
                  "Sid": "ROSA NodeManager Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:role/<operator_role_prefix>-kube-system-capa-controller-manager"
                  },
                  "Action": [
                      "kms:DescribeKey",
                      "kms:GenerateDataKeyWithoutPlaintext",
                      "kms:CreateGrant"
                  ],
                  "Resource": "*"
              }
          ]
      }
    Copy to Clipboard Toggle word wrap
  5. 다음 명령을 실행하여 생성된 정책 파일의 세부 정보를 확인합니다.

    $ cat rosa-key-policy.json
    Copy to Clipboard Toggle word wrap
  6. 다음 명령을 실행하여 새로 생성된 키 정책을 사용자 정의 KMS 키에 적용합니다.

    $ aws kms put-key-policy --key-id $KMS_ARN \
    --policy file://rosa-key-policy.json \
    --policy-name default
    Copy to Clipboard Toggle word wrap
  7. 다음 명령을 실행하여 클러스터를 생성합니다.

    참고

    클러스터 이름이 15자보다 긴 경우 *.openshiftapps.com 에서 프로비저닝된 클러스터의 하위 도메인으로 자동 생성된 도메인 접두사가 포함됩니다.

    하위 도메인을 사용자 지정하려면 --domain-prefix 플래그를 사용합니다. 도메인 접두사는 15자를 초과할 수 없으며 고유해야 하며 클러스터 생성 후에는 변경할 수 없습니다.

    $ rosa create cluster --cluster-name <cluster_name> \
    --subnet-ids <private_subnet_id>,<public_subnet_id> \
    --sts \
    --mode auto \
    --machine-cidr 10.0.0.0/16 \
    --compute-machine-type m5.xlarge \
    --hosted-cp \
    --region <aws_region> \
    --oidc-config-id $OIDC_ID \
    --kms-key-arn $KMS_ARN \ 
    1
    
    --etcd-encryption-kms-arn $KMS_ARN \ 
    2
    
    --operator-roles-prefix $OPERATOR_ROLES_PREFIX
    Copy to Clipboard Toggle word wrap
    1
    이 KMS 키 ARN은 모든 작업자 노드 루트 볼륨을 암호화하는 데 사용됩니다. etcd 데이터베이스 암호화만 필요한 경우에는 필요하지 않습니다.
    2
    이 KMS 키 ARN은 etcd 데이터베이스를 암호화하는 데 사용됩니다. etcd 데이터베이스는 항상 AES 암호화 블록으로 암호화되지만 KMS 키를 사용하여 암호화할 수 있습니다. 노드 루트 볼륨 암호화만 필요한 경우에는 필요하지 않습니다.

검증

OpenShift Cluster Manager 를 사용하여 KMS 키가 작동하는지 확인할 수 있습니다.

  1. OpenShift Cluster Manager 로 이동하여 인스턴스를 선택합니다.
  2. 인스턴스를 선택합니다.
  3. 스토리지 탭을 클릭합니다.
  4. KMS 키 ID 를 복사합니다.
  5. 키 관리 서비스를 검색하고 선택합니다.
  6. 필터 필드에 복사된 KMS 키 ID 를 입력합니다.

4장. HCP를 사용하여 ROSA에 개인 클러스터 생성

공용 인터넷 액세스가 필요하지 않은 호스트된 컨트롤 플레인(HCP) 워크로드가 있는 ROSA(Red Hat OpenShift Service on AWS)의 경우 프라이빗 클러스터를 생성할 수 있습니다.

4.1. ROSA CLI를 사용하여 HCP 클러스터로 개인 ROSA 생성

ROSA CLI(명령줄 인터페이스)를 사용하여 ROSA에 여러 가용 영역(Multi-AZ)이 있는 프라이빗 클러스터를 생성할 수 있습니다.

사전 요구 사항

  • 사용 가능한 AWS 서비스 할당량이 있습니다.
  • AWS 콘솔에서 ROSA 서비스를 활성화했습니다.
  • 설치 호스트에 ROSA CLI의 최신 버전을 설치하고 구성했습니다.

절차

호스팅된 컨트롤 플레인을 사용하여 클러스터를 생성하는 데 약 10분이 걸릴 수 있습니다.

  1. 프라이빗 서브넷이 하나 이상 있는 VPC를 생성합니다. 시스템의 클래스리스 도메인 간 라우팅(CIDR)이 가상 프라이빗 클라우드의 CIDR과 일치하는지 확인합니다. 자세한 내용은 자체 VPC 및 VPC 유효성 검사 사용에 대한 요구 사항을 참조하십시오.

    중요

    방화벽을 사용하는 경우 ROSA가 작동하는 데 필요한 사이트에 액세스할 수 있도록 방화벽을 구성해야 합니다.

    자세한 내용은 "AWS PrivateLink 방화벽 사전 요구 사항" 섹션을 참조하십시오.

  2. 다음 명령을 실행하여 계정 전체 IAM 역할을 생성합니다.

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 OIDC 구성을 생성합니다.

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    Operator 역할을 생성하는 데 필요하므로 OIDC 구성 ID를 저장합니다.

    출력 예

    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 28s4avcdt2l318r1jbk3ifmimkurk384
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::46545644412:user/user'
    I: Created OIDC provider with ARN 'arn:aws:iam::46545644412:oidc-provider/oidc.op1.openshiftapps.com/28s4avcdt2l318r1jbk3ifmimkurk384'
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 실행하여 Operator 역할을 생성합니다.

    $ rosa create operator-roles --hosted-cp --prefix <operator_roles_prefix> --oidc-config-id <oidc_config_id> --installer-role-arn arn:aws:iam::$<account_roles_prefix>:role/$<account_roles_prefix>-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap
  5. 다음 명령을 실행하여 HCP 클러스터를 사용하여 개인 ROSA를 생성합니다.

    $ rosa create cluster --private --cluster-name=<cluster-name> --sts --mode=auto --hosted-cp --operator-roles-prefix <operator_role_prefix> --oidc-config-id <oidc_config_id> [--machine-cidr=<VPC CIDR>/16] --subnet-ids=<private-subnet-id1>[,<private-subnet-id2>,<private-subnet-id3>]
    Copy to Clipboard Toggle word wrap
  6. 다음 명령을 입력하여 클러스터 상태를 확인합니다. 클러스터 생성 중에 출력의 State 필드가 보류 중에서 설치 로 전환되고 마지막으로 ready 로 전환됩니다.

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap
    참고

    설치에 실패하거나 State 필드가 10분 후에 준비 되도록 변경되지 않는 경우 추가 리소스 섹션의 "Red Hat OpenShift Service on AWS 설치 관련 문제 해결" 설명서를 참조하십시오.

  7. 다음 명령을 입력하여 OpenShift 설치 프로그램 로그를 따라 클러스터의 진행 상황을 추적합니다.

    $ rosa logs install --cluster=<cluster_name> --watch
    Copy to Clipboard Toggle word wrap

4.2. AWS PrivateLink 끝점에 추가 AWS 보안 그룹 추가

HCP 클러스터가 있는 ROSA를 사용하면 고객의 VPC에 노출된 AWS PrivateLink 엔드포인트에는 클러스터의 머신 CIDR 범위 내에서 시작되는 요청에 대한 액세스를 제한하는 보안 그룹이 있습니다. VPC 외부의 모든 엔티티, VPC 피어, 전송 게이트웨이 또는 기타 네트워크 연결을 통해 클러스터의 API에 대한 액세스 권한을 부여하려면 다른 보안 그룹을 PrivateLink 엔드포인트에 연결하여 필요한 액세스 권한을 부여해야 합니다.

중요

AWS PrivateLink 엔드포인트에 AWS 보안 그룹 추가는 HCP 버전 4.17.2 이상 버전의 ROSA에서만 지원됩니다.

사전 요구 사항

  • 회사 네트워크 또는 기타 VPC가 연결되어 있습니다.
  • VPC 내에서 보안 그룹을 생성하고 연결할 수 있는 권한이 있습니다.

절차

  1. 다음 명령을 실행하여 클러스터 이름을 환경 변수로 설정합니다.

    $ export CLUSTER_NAME=<cluster_name>
    Copy to Clipboard Toggle word wrap

    다음 명령을 실행하여 변수가 설정되었는지 확인할 수 있습니다.

    $ echo $CLUSTER_NAME
    Copy to Clipboard Toggle word wrap

    출력 예

    hcp-private
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 VPC 끝점(VPCE) ID 및 VPC ID를 찾습니다.

    $ read -r VPCE_ID VPC_ID <<< $(aws ec2 describe-vpc-endpoints --filters "Name=tag:api.openshift.com/id,Values=$(rosa describe cluster -c ${CLUSTER_NAME} -o yaml | grep '^id: ' | cut -d' ' -f2)" --query 'VpcEndpoints[].[VpcEndpointId,VpcId]' --output text)
    Copy to Clipboard Toggle word wrap
    주의

    기본 AWS PrivateLink 끝점 보안 그룹을 수정하거나 제거하는 것은 지원되지 않으며 예기치 않은 동작이 발생할 수 있습니다.

  3. 다음 명령을 실행하여 추가 보안 그룹을 생성합니다.

    $ export SG_ID=$(aws ec2 create-security-group --description "Granting API access to ${CLUSTER_NAME} from outside of VPC" --group-name "${CLUSTER_NAME}-api-sg" --vpc-id $VPC_ID --output text)
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하여 보안 그룹에 인바운드(ingress) 규칙을 추가합니다.

    $ aws ec2 authorize-security-group-ingress --group-id $SG_ID --ip-permissions FromPort=443,ToPort=443,IpProtocol=tcp,IpRanges=[{CidrIp=<cidr-to-allow>}] \ 
    1
    Copy to Clipboard Toggle word wrap
    1
    액세스를 허용할 CIDR 블록을 지정합니다.
  5. 다음 명령을 실행하여 VPCE에 새 보안 그룹을 추가합니다.

    $ aws ec2 modify-vpc-endpoint --vpc-endpoint-id $VPCE_ID --add-security-group-ids $SG_ID
    Copy to Clipboard Toggle word wrap

이제 지정된 CIDR 블록에서 HCP 프라이빗 클러스터로 ROSA의 API에 액세스할 수 있습니다.

4.3. HCP 클러스터를 사용하는 ROSA의 추가 주체

추가 주체로 AWS IAM(Identity and Access Management) 역할을 허용하여 클러스터의 프라이빗 API 서버 끝점에 연결할 수 있습니다.

공용 인터넷 또는 VPC 프라이빗 서브넷 내에서 생성된 인터페이스 끝점에서 HCP 클러스터의 API 서버 엔드포인트를 사용하여 ROSA에 액세스할 수 있습니다. 기본적으로 -kube-system-kube-controller-manager Operator 역할을 사용하여 HCP API 서버로 ROSA에 개별적으로 액세스할 수 있습니다. 클러스터가 설치된 기본 계정을 사용하지 않고 다른 계정에서 직접 HCP API 서버를 사용하여 ROSA에 액세스하려면 계정 간 IAM 역할을 추가 주체로 포함해야 합니다. 이 기능을 사용하면 계정 간 VPC를 클러스터의 VPC에 연결하거나 이를 통해 네트워크 아키텍처를 단순화하고 데이터 전송 비용을 줄일 수 있습니다.

이 다이어그램에서 클러스터 생성 계정은 계정 A로 지정됩니다. 이 계정은 다른 계정, 계정 B가 API 서버에 액세스할 수 있어야 함을 지정합니다.

참고

허용된 추가 주체를 구성한 후 VPC에서 HCP API 서버를 사용하여 계정 ROSA에 액세스하려는 인터페이스 VPC 엔드포인트를 생성해야 합니다. 그런 다음 Route53에 프라이빗 호스팅 영역을 생성하여 생성된 VPC 끝점을 통과하도록 HCP API 서버와 계정 ROSA 간 호출을 라우팅합니다.

4.3.1. HCP 클러스터로 ROSA를 생성하는 동안 추가 주체 추가

--additional-allowed-principals 인수를 사용하여 다른 역할을 통한 액세스를 허용합니다.

절차

  1. 다음과 같이 --additional-allowed-principals 인수를 rosa create cluster 명령에 추가합니다.

    $ rosa create cluster [...] --additional-allowed-principals <arn_string>
    Copy to Clipboard Toggle word wrap

    arn:aws:iam::account_id:role/role_name 을 사용하여 특정 역할을 승인할 수 있습니다.

  2. 클러스터 생성 명령이 실행되면 --additional-allowed-principals 가 지정된 클러스터 요약이 표시됩니다.

    출력 예

    Name:                       mycluster
    Domain Prefix:              mycluster
    Display Name:               mycluster
    ID:                         <cluster-id>
    External ID:                <cluster-id>
    Control Plane:              ROSA Service Hosted
    OpenShift Version:          4.15.17
    Channel Group:              stable
    DNS:                        Not ready
    AWS Account:                <aws_id>
    AWS Billing Account:        <aws_id>
    API URL:
    Console URL:
    Region:                     us-east-2
    Availability:
     - Control Plane:           MultiAZ
     - Data Plane:              SingleAZ
    
    Nodes:
     - Compute (desired):       2
     - Compute (current):       0
    Network:
     - Type:                    OVNKubernetes
     - Service CIDR:            172.30.0.0/16
     - Machine CIDR:            10.0.0.0/16
     - Pod CIDR:                10.128.0.0/14
     - Host Prefix:             /23
     - Subnets:                 subnet-453e99d40, subnet-666847ce827
    EC2 Metadata Http Tokens:   optional
    Role (STS) ARN:             arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Installer-Role
    Support Role ARN:           arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Support-Role
    Instance IAM Roles:
     - Worker:                  arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Worker-Role
    Operator IAM Roles:
     - arn:aws:iam::<aws_id>:role/mycluster-kube-system-control-plane-operator
     - arn:aws:iam::<aws_id>:role/mycluster-openshift-cloud-network-config-controller-cloud-creden
     - arn:aws:iam::<aws_id>:role/mycluster-openshift-image-registry-installer-cloud-credentials
     - arn:aws:iam::<aws_id>:role/mycluster-openshift-ingress-operator-cloud-credentials
     - arn:aws:iam::<aws_id>:role/mycluster-openshift-cluster-csi-drivers-ebs-cloud-credentials
     - arn:aws:iam::<aws_id>:role/mycluster-kube-system-kms-provider
     - arn:aws:iam::<aws_id>:role/mycluster-kube-system-kube-controller-manager
     - arn:aws:iam::<aws_id>:role/mycluster-kube-system-capa-controller-manager
    Managed Policies:           Yes
    State:                      waiting (Waiting for user action)
    Private:                    No
    Delete Protection:          Disabled
    Created:                    Jun 25 2024 13:36:37 UTC
    User Workload Monitoring:   Enabled
    Details Page:               https://console.redhat.com/openshift/details/s/Bvbok4O79q1Vg8
    OIDC Endpoint URL:          https://oidc.op1.openshiftapps.com/vhufi5lap6vbl3jlq20e (Managed)
    Audit Log Forwarding:       Disabled
    External Authentication:    Disabled
    Additional Principals:      arn:aws:iam::<aws_id>:role/additional-user-role
    Copy to Clipboard Toggle word wrap

4.3.2. HCP 클러스터를 사용하여 기존 ROSA에 추가 주체 추가

CLI(명령줄 인터페이스)를 사용하여 클러스터에 주체를 추가할 수 있습니다.

절차

  • 다음 명령을 실행하여 클러스터를 편집하고 이 클러스터의 엔드포인트에 액세스할 수 있는 추가 주체를 추가합니다.

    $ rosa edit cluster -c <cluster_name> --additional-allowed-principals <arn_string>
    Copy to Clipboard Toggle word wrap

    arn:aws:iam::account_id:role/role_name 을 사용하여 특정 역할을 승인할 수 있습니다.

4.4. 다음 단계

ID 공급자 구성

5장. 송신 잠금을 사용하여 AWS 클러스터에서 Red Hat OpenShift Service 생성

송신 잠금을 사용하여 AWS 클러스터에서 Red Hat OpenShift Service를 생성하면 클러스터가 인터넷에 액세스할 수 없는 경우 로컬 리전의 이미지 레지스트리를 사용하도록 허용하여 클러스터의 안정성과 보안을 향상시킬 수 있습니다. 클러스터는 Quay에서 이미지를 가져오려고 하지만, 도달하지 않으면 로컬 리전의 이미지 레지스트리에서 이미지를 대신 가져옵니다.

중요

다음 AWS 리전을 사용하는 클러스터에서만 송신 잠금을 사용할 수 있습니다.

  • us-west-2
  • us-east-1
  • us-east-2
  • ap-northeast-1
  • ap-northeast-2
  • ap-northeast-3
  • ap-south-1
  • ap-southeast-1
  • ap-southeast-2
  • ca-central-1
  • eu-central-1
  • eu-north-1
  • eu-west-1
  • eu-west-2
  • eu-west-3
  • sa-east-1

송신 잠금이 있는 모든 퍼블릭 및 프라이빗 클러스터에서는 다양한 엔드포인트 및 인터넷 등록에서 이러한 이미지를 수집하는 대신 클러스터의 로컬 리전에 있는 레지스터에서 Red Hat 컨테이너 이미지를 가져옵니다. 가상 프라이빗 클라우드(VPC)를 구성하고 클러스터를 생성할 때 --properties 0_egress:true 플래그를 사용하여 퍼블릭 송신이 필요하지 않은 완전 운영 클러스터를 생성할 수 있습니다.

중요

송신 잠금은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

전제 조건

  • VPC, 서브넷 및 기타 필수 인프라를 생성할 수 있는 충분한 권한이 있는 AWS 계정이 있습니다.
  • Terraform v1.4.0+ CLI를 설치했습니다.
  • ROSA v1.2.45+ CLI를 설치했습니다.
  • 필요한 인증 정보를 사용하여 AWS CLI를 설치하고 구성했습니다.
  • git CLI를 설치했습니다.
중요

호스팅된 컨트롤 플레인 아키텍처를 사용하는 AWS의 지원되는 모든 Red Hat OpenShift Service 버전에서 송신 잠금을 사용할 수 있지만 Red Hat은 각 OpenShift Container Platform 버전에 사용 가능한 최신 z-stream 릴리스를 사용하는 것이 좋습니다.

연결이 끊긴 환경에서 내부 이미지 레지스트리가 작동하는 방식과 관련된 업스트림 문제로 인해 일반 클러스터를 설치하고 업그레이드할 수 있지만 송신 잠금을 사용하는 클러스터는 이미지 레지스트리와 같은 모든 플랫폼 구성 요소를 완전히 사용할 수 없습니다. 클러스터를 업그레이드하거나 설치할 때 최신 ROSA 버전을 사용하여 이러한 기능을 복원할 수 있습니다.

5.1. HCP 클러스터를 사용하여 ROSA용 가상 프라이빗 클라우드 생성

HCP 클러스터로 ROSA를 생성하려면 VPC(Virtual Private Cloud)가 있어야 합니다. 다음 방법 중 하나를 사용하여 VPC를 생성합니다.

  • ROSA CLI(명령줄 인터페이스)를 사용하여 VPC 생성
  • Terraform 템플릿을 사용하여 VPC 생성
  • AWS 콘솔에서 VPC 리소스 수동 생성
참고

Terraform 지침은 테스트 및 시연을 목적으로 합니다. 자체 설치를 수행하려면 VPC를 일부 수정해야 합니다. 또한 이 Terraform 스크립트를 사용할 때 클러스터를 설치하려는 리전과 동일한 지역에 있는지 확인해야 합니다. 이 예제에서는 us-east-2 를 사용합니다.

ROSA CLI를 사용하여 가상 사설 클라우드 생성

rosa create network 명령은 ROSA CLI(명령줄 인터페이스)의 v.1.2.48 이상에서 사용할 수 있습니다. 이 명령은 AWS CloudFormation을 사용하여 VPC 및 ROSA 클러스터를 설치하는 데 사용되는 기타 네트워킹 구성 요소를 생성합니다. CloudFormation은 네이티브 AWS 인프라형 툴이며 AWS CLI와 호환됩니다.

템플릿을 지정하지 않으면 CloudFormation은 다음 매개변수를 생성하는 기본 템플릿을 사용합니다.

Expand
VPC 매개변수현재의

가용성 영역

1

리전

us-east-1

VPC CIDR

10.0.0.0/16

rosa create network 명령과 함께 사용할 CloudFormation 템플릿을 생성하고 사용자 지정할 수 있습니다. 기본 VPC 템플릿에 대한 자세한 내용은 이 섹션의 추가 리소스를 참조하십시오.

사전 요구 사항

  • AWS 계정을 구성했습니다.
  • Red Hat 계정을 구성했습니다.
  • ROSA CLI를 설치하고 최신 버전으로 구성했습니다.

절차

  1. 다음 명령을 실행하여 기본 CloudFormations 템플릿을 사용하여 AWS VPC를 생성합니다.

    $ rosa create network
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 추가 매개변수를 지정하여 VPC를 사용자 지정합니다.

    --param 플래그를 사용하여 기본 VPC 템플릿의 변경 사항을 지정할 수 있습니다. 다음 예제 명령은 리전,Name,AvailabilityZoneCountVpcCidr 에 대한 사용자 지정 값을 지정합니다.

    $ rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
    Copy to Clipboard Toggle word wrap

    명령을 실행하는 데 약 5분이 걸리며 리소스가 생성될 때 AWS에서 정기적인 상태 업데이트를 제공합니다. CloudFormation에 문제가 있는 경우 롤백이 시도됩니다. 다른 모든 오류가 발생하면 오류 메시지 지침을 따르거나 AWS 지원에 문의하십시오.

검증

  • 완료되면 생성된 리소스에 대한 요약이 표시됩니다.

    INFO[0140] Resources created in stack:
    INFO[0140] Resource: AttachGateway, Type: AWS::EC2::VPCGatewayAttachment, ID: <gateway-id>
    INFO[0140] Resource: EC2VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: EcrApiVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: EcrDkrVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: ElasticIP1, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: ElasticIP2, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: InternetGateway, Type: AWS::EC2::InternetGateway, ID: igw-016e1a71b9812464e
    INFO[0140] Resource: KMSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: NATGateway1, Type: AWS::EC2::NatGateway, ID: <nat-gateway-id>
    INFO[0140] Resource: PrivateRoute, Type: AWS::EC2::Route, ID: <route-id>
    INFO[0140] Resource: PrivateRouteTable, Type: AWS::EC2::RouteTable, ID: <route-id>
    INFO[0140] Resource: PrivateSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route-id>
    INFO[0140] Resource: PublicRoute, Type: AWS::EC2::Route, ID: <route-id>
    INFO[0140] Resource: PublicRouteTable, Type: AWS::EC2::RouteTable, ID: <route-id>
    INFO[0140] Resource: PublicSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route-id>
    INFO[0140] Resource: S3VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: STSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce-id>
    INFO[0140] Resource: SecurityGroup, Type: AWS::EC2::SecurityGroup, ID: <security-group-id>
    INFO[0140] Resource: SubnetPrivate1, Type: AWS::EC2::Subnet, ID: <private-subnet-id-1> \ 
    1
    
    INFO[0140] Resource: SubnetPublic1, Type: AWS::EC2::Subnet, ID: <public-subnet-id-1> \ 
    2
    
    INFO[0140] Resource: VPC, Type: AWS::EC2::VPC, ID: <vpc-id>
    INFO[0140] Stack rosa-network-stack-5555 created \ 
    3
    Copy to Clipboard Toggle word wrap
    1 2
    이 두 개의 서브넷 ID는 rosa create cluster 명령을 사용할 때 클러스터를 만드는 데 사용됩니다.
    3
    네트워크 스택 이름은 나중에 리소스를 삭제하는 데 사용됩니다.
Terraform을 사용하여 가상 사설 클라우드 생성

Terraform은 설정된 템플릿을 사용하여 다양한 리소스를 생성할 수 있는 툴입니다. 다음 프로세스는 HCP 클러스터를 사용하여 ROSA를 생성하는 데 필요한 기본 옵션을 사용합니다. Terraform 사용에 대한 자세한 내용은 추가 리소스를 참조하십시오.

사전 요구 사항

  • 시스템에 Terraform 버전 1.4.0 이상을 설치했습니다.
  • 시스템에 Git을 설치했습니다.

절차

  1. 쉘 프롬프트를 열고 다음 명령을 실행하여 Terraform VPC 리포지토리를 복제합니다.

    $ git clone https://github.com/openshift-cs/terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 생성된 디렉터리로 이동합니다.

    $ cd terraform-vpc-example/zero-egress
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 Terraform 파일을 시작합니다.

    $ terraform init
    Copy to Clipboard Toggle word wrap

    이 프로세스가 완료되면 초기화를 확인하는 메시지가 표시됩니다.

  4. 기존 Terraform 템플릿을 기반으로 VPC Terraform 계획을 빌드하려면 plan 명령을 실행합니다. AWS 리전, 가용성 영역, CIDR 블록 및 프라이빗 서브넷을 포함해야 합니다. 클러스터 이름을 지정하도록 선택할 수 있습니다. rosa-zero-egress.tfplan 파일은 terraform 계획이 완료된 후 hypershift-tf 디렉터리에 추가됩니다. 자세한 옵션은 Terraform VPC 리포지토리의 README 파일을 참조하십시오.

    $ terraform plan -out rosa-zero-egress.tfplan -var region=<aws_region> \ 
    1
    
          -var 'availability_zones=["aws_region_1a","aws_region_1b","aws_region_1c"]'\ 
    2
    
          -var vpc_cidr_block=10.0.0.0/16 \ 
    3
    
          -var 'private_subnets=["10.0.0.0/24", "10.0.1.0/24", "10.0.2.0/24"]' 
    4
    Copy to Clipboard Toggle word wrap
    1
    AWS 리전을 입력합니다.
    중요

    us-west-1, us-west-2, us-east-2, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-northeast-3, ap-outh-1, ap-southeast-1, ap-southeast-2, ca-central-1, eu-central-1을 사용하는 클러스터에서만 송신 잠금을 사용할 수 있습니다. eu-north-1, eu-west-1, eu-west-2, eu-west-3, sa-east-1 AWS 리전.

    2
    VPC의 가용성 영역을 입력합니다. 예를 들어 ap-southeast-1 을 사용하는 VPC의 경우 다음을 가용성 영역으로 사용합니다. ["ap-southeast-1a", "ap-southeast-1b", "ap-southeast-1c"].
    3
    VPC의 CIDR 블록을 입력합니다.
    4
    VPC용으로 생성된 각 서브넷을 입력합니다.
  5. 다음 명령을 실행하여 VPC를 빌드하려면 이 계획 파일을 적용합니다.

    $ terraform apply rosa-zero-egress.tfplan
    Copy to Clipboard Toggle word wrap
수동으로 가상 프라이빗 클라우드 생성

Terraform을 사용하는 대신 VPC(Virtual Private Cloud)를 수동으로 생성하도록 선택하는 경우 AWS 콘솔의 VPC 페이지로 이동합니다.

VPC는 다음 표에 표시된 요구 사항을 충족해야 합니다.

Expand
표 5.1. VPC에 대한 요구사항
요구 사항세부 정보

VPC 이름

클러스터를 생성할 때 특정 VPC 이름과 ID가 있어야합니다.

CIDR 범위

VPC CIDR 범위는 머신 CIDR과 일치해야 합니다.

가용성 영역

단일 영역에 하나의 가용성 영역이 필요하며, 다중 영역의 가용성 영역인 경우 3개가 필요합니다.

퍼블릭 서브넷

공용 클러스터에 대해 NAT 게이트웨이가 있는 퍼블릭 서브넷이 1개 있어야 합니다. 프라이빗 클러스터에는 퍼블릭 서브넷이 필요하지 않습니다.

DNS 호스트 이름 및 확인

DNS 호스트 이름 및 확인이 활성화되어 있는지 확인해야 합니다.

5.1.1. 문제 해결

클러스터를 설치하지 못하는 경우 다음과 같은 일반적인 문제를 해결합니다.

  • DHCP 옵션 세트에 도메인 이름이 포함되어 있는지 확인하고 도메인 이름에 공백이나 대문자가 포함되어 있지 않은지 확인합니다.
  • VPC에서 사용자 지정 DNS 확인자(DHCP 옵션 세트의 도메인 이름 서버 필드)를 사용하는 경우 Route53에 구성된 프라이빗 호스팅 영역을 올바르게 확인할 수 있는지 확인합니다.

ROSA 클러스터 설치 문제 해결에 대한 자세한 내용은 AWS 설치에서 Red Hat OpenShift Service 문제 해결을 참조하십시오.

지원 받기

추가 지원이 필요한 경우 Red Hat 고객 포털을 방문하여 지식 베이스 문서를 검토하고 지원 케이스를 제출하고 추가 제품 설명서 및 리소스를 검토하십시오.

서브넷 태그 지정

VPC를 사용하여 HCP 클러스터로 ROSA를 생성하려면 먼저 VPC 서브넷을 태그해야 합니다. 자동화된 서비스 preflight 검사에서는 이러한 리소스를 사용하기 전에 이러한 리소스가 올바르게 태그되었는지 확인합니다. 다음 표에서는 리소스에 다음 태그를 지정하는 방법을 보여줍니다.

Expand
리소스현재의

퍼블릭 서브넷

kubernetes.io/role/elb

1 또는 no value

프라이빗 서브넷

kubernetes.io/role/internal-elb

1 또는 no value

참고

하나 이상의 프라이빗 서브넷과 해당하는 경우 공용 서브넷과 퍼블릭 서브넷을 태그해야 합니다.

사전 요구 사항

  • VPC를 생성했습니다.
  • aws CLI가 설치되어 있습니다.

절차

  1. 다음 명령을 실행하여 터미널에서 리소스를 태그합니다.

    1. 퍼블릭 서브넷의 경우 다음을 실행합니다.

      $ aws ec2 create-tags --resources <public-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
      Copy to Clipboard Toggle word wrap
    2. 프라이빗 서브넷의 경우 다음을 실행합니다.

      $ aws ec2 create-tags --resources <private-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1
      Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 태그가 올바르게 적용되었는지 확인합니다.

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"
    Copy to Clipboard Toggle word wrap

    출력 예

    TAGS    Name                    <subnet-id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet-id>        subnet  1
    Copy to Clipboard Toggle word wrap

AWS 보안 그룹 및 PrivateLink 연결 구성

VPC를 생성한 후 AWS 보안 그룹 및 VPC 끝점을 생성합니다.

절차

  1. 다음 명령을 실행하여 AWS 보안 그룹을 생성합니다.

    $ aws ec2 create-security-group \
            --group-name allow-inbound-traffic \
            --description "allow inbound traffic" \
            --vpc-id <vpc_id> \ 
    1
    
            --region <aws_region> \ 
    2
    Copy to Clipboard Toggle word wrap
    1
    VPC ID를 입력합니다.
    2
    VPC가 설치된 AWS 리전을 입력합니다.
  2. 다음 명령을 실행하여 보안 그룹의 수신에 대한 액세스 권한을 부여합니다.

    $ aws ec2 authorize-security-group-ingress \
            --group-id <group_id> \ 
    1
    
            --protocol -1 \
            --port 0-0 \
            --cidr <vpc_cidr> \ 
    2
    
            --region <aws_region> \ 
    3
    Copy to Clipboard Toggle word wrap
    1
    --group-id 는 이전 명령으로 생성된 보안 그룹의 ID를 사용합니다.
    2
    VPC의 CIDR을 입력합니다.
    3
    VPC를 설치한 AWS 리전
  3. 다음 명령을 실행하여 STS VPC 끝점을 생성합니다.

    $ aws ec2 create-vpc-endpoint \
        --vpc-id <vpc_id> \ 
    1
    
        --service-name com.amazonaws.<aws_region>.sts \ 
    2
    
        --vpc-endpoint-type Interface
    Copy to Clipboard Toggle word wrap
    1
    VPC ID를 입력합니다.
    2
    VPC가 설치된 AWS 리전을 입력합니다.
  4. 다음 명령을 실행하여 ECR VPC 끝점을 생성합니다.

    $ aws ec2 create-vpc-endpoint \
        --vpc-id <vpc_id> \
        --service-name com.amazonaws.<aws_region>.ecr.dkr \ 
    1
    
        --vpc-endpoint-type Interface
    Copy to Clipboard Toggle word wrap
    1
    VPC가 있는 AWS 리전을 입력합니다.
  5. 다음 명령을 실행하여 S3 VPC 끝점을 생성합니다.

    $ aws ec2 create-vpc-endpoint \
        --vpc-id <vpc_id> \
        --service-name com.amazonaws.<aws_region>.s3
    Copy to Clipboard Toggle word wrap

5.2. 계정 전체 STS 역할 및 정책 생성

ROSA(Red Hat OpenShift Service on AWS) CLI(rosa)를 사용하여 호스팅된 컨트롤 플레인(HCP) 클러스터가 있는 AWS(ROSA)에서 Red Hat OpenShift Service를 생성하기 전에 Operator 정책을 포함하여 필요한 계정 전체 역할 및 정책을 생성합니다.

참고

HCP 클러스터를 사용하는 ROSA에는 AWS 관리 정책이 연결된 계정 및 Operator 역할이 필요합니다. 고객 관리 정책은 지원되지 않습니다. HCP 클러스터의 ROSA 관리 정책에 대한 자세한 내용은 ROSA 계정 역할에 대한 AWS 관리 정책을 참조하십시오.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 사용 가능한 AWS 서비스 할당량이 있습니다.
  • AWS 콘솔에서 ROSA 서비스를 활성화했습니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다.
  • ROSA CLI를 사용하여 Red Hat 계정에 로그인했습니다.

절차

  1. AWS 계정에 없는 경우 필요한 계정 전체 STS 역할을 생성하고 다음 명령을 실행하여 정책을 연결합니다.

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 작업자 역할에 올바른 AWS 정책이 있는지 확인합니다.

    $ aws iam attach-role-policy \
    --role-name ManagedOpenShift-HCP-ROSA-Worker-Role \ 
    1
    
    --policy-arn "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
    Copy to Clipboard Toggle word wrap
    1
    이 역할에는 이전 단계에서 만든 접두사를 포함해야 합니다.
  3. 선택 사항: 다음 명령을 실행하여 접두사를 환경 변수로 설정합니다.

    $ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
    Copy to Clipboard Toggle word wrap
    • 다음 명령을 실행하여 변수 값을 확인합니다.

      $ echo $ACCOUNT_ROLES_PREFIX
      Copy to Clipboard Toggle word wrap

      출력 예

      ManagedOpenShift
      Copy to Clipboard Toggle word wrap

ROSA의 AWS 관리 IAM 정책에 대한 자세한 내용은 ROSA의 AWS 관리 IAM 정책을 참조하십시오.

5.3. OpenID Connect 구성 생성

AWS 클러스터에서 Red Hat OpenShift Service를 사용하는 경우 클러스터를 생성하기 전에 OpenID Connect(OIDC) 구성을 생성할 수 있습니다. 이 구성은 OpenShift Cluster Manager와 함께 사용하도록 등록됩니다.

사전 요구 사항

  • AWS에서 Red Hat OpenShift Service에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 설치 호스트에 최신 Red Hat OpenShift Service on AWS(ROSA) CLI를 설치하고 구성했습니다.

절차

  1. AWS 리소스와 함께 OIDC 구성을 생성하려면 다음 명령을 실행합니다.

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    이 명령은 다음 정보를 반환합니다.

    출력 예

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
    Copy to Clipboard Toggle word wrap

    클러스터를 생성할 때 OIDC 구성 ID를 제공해야 합니다. CLI 출력은 --mode auto 에 대해 이 값을 제공합니다. 그렇지 않으면 --mode 수동 에 대한 aws CLI 출력에 따라 이러한 값을 결정해야합니다.

  2. 선택 사항: 나중에 사용할 수 있도록 OIDC 구성 ID를 변수로 저장할 수 있습니다. 다음 명령을 실행하여 변수를 저장합니다.

    $ export OIDC_ID=<oidc_config_id>
    1
    Copy to Clipboard Toggle word wrap
    1
    위의 출력 예에서 OIDC 구성 ID는 13cdr6b입니다.
    • 다음 명령을 실행하여 변수 값을 확인합니다.

      $ echo $OIDC_ID
      Copy to Clipboard Toggle word wrap

      출력 예

      13cdr6b
      Copy to Clipboard Toggle word wrap

검증

  • 사용자 조직과 연결된 클러스터에 사용 가능한 OIDC 구성을 나열할 수 있습니다. 다음 명령을 실행합니다.

    $ rosa list oidc-config
    Copy to Clipboard Toggle word wrap

    출력 예

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    Copy to Clipboard Toggle word wrap

5.4. Operator 역할 및 정책 생성

HCP 클러스터와 함께 ROSA를 사용하는 경우 호스팅되는 컨트롤 플레인(HCP) 배포와 함께 ROSA(Red Hat OpenShift Service on AWS)에 필요한 Operator IAM 역할을 생성해야 합니다. 클러스터 Operator는 Operator 역할을 사용하여 백엔드 스토리지, 클라우드 공급자 인증 정보 관리, 클러스터에 대한 외부 액세스와 같은 클러스터 작업을 수행하는 데 필요한 임시 권한을 얻습니다.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 설치 호스트에 AWS ROSA CLI(rosa)에 최신 Red Hat OpenShift Service를 설치하고 구성했습니다.
  • 계정 전체 AWS 역할을 생성하셨습니다.

절차

  1. 다음 명령을 사용하여 접두사 이름을 환경 변수로 설정합니다.

    $ export OPERATOR_ROLES_PREFIX=<prefix_name>
    Copy to Clipboard Toggle word wrap
  2. Operator 역할을 생성하려면 다음 명령을 실행합니다.

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap

    다음 분석에서는 Operator 역할 생성에 대한 옵션을 제공합니다.

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX 
    1
    
    	--oidc-config-id=$OIDC_ID 
    2
    
    	--installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role 
    3
    Copy to Clipboard Toggle word wrap
    1
    이러한 Operator 역할을 생성할 때 접두사를 제공해야 합니다. 이렇게 하지 않으면 오류가 발생합니다. Operator 접두사에 대한 자세한 내용은 이 섹션의 추가 리소스를 참조하십시오.
    2
    이 값은 HCP 클러스터를 사용하여 ROSA용으로 생성한 OIDC 구성 ID입니다.
    3
    이 값은 ROSA 계정 역할을 생성할 때 생성한 설치 관리자 역할 ARN입니다.

    HCP 클러스터의 ROSA에 올바른 역할을 생성하려면 --hosted-cp 매개변수를 포함해야 합니다. 이 명령은 다음 정보를 반환합니다.

    출력 예

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 
    1
    
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 
    2
    
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    Copy to Clipboard Toggle word wrap

    1
    이 필드는 초기 생성 명령에서 설정한 접두사로 미리 채워집니다.
    2
    이 필드를 사용하려면 HCP 클러스터를 사용하여 ROSA에 대해 생성한 OIDC 구성을 선택해야 합니다.

    이제 Operator 역할이 생성되어 HCP 클러스터를 사용하여 ROSA를 생성할 준비가 되었습니다.

검증

  • ROSA 계정과 연결된 Operator 역할을 나열할 수 있습니다. 다음 명령을 실행합니다.

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    출력 예

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 
    1
    
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    Copy to Clipboard Toggle word wrap

    1
    명령을 실행한 후 AWS 계정과 연결된 모든 접두사를 표시하고 이 접두사와 연결된 역할 수를 기록합니다. 이러한 역할과 세부 정보를 모두 확인해야 하는 경우 세부 정보 프롬프트에 이러한 역할을 나열하도록 "예"를 입력합니다.

Red Hat OpenShift Service on AWS (ROSA) 명령줄 인터페이스(CLI)를 사용하여 클러스터를 생성하는 경우 기본 옵션을 선택하여 클러스터를 빠르게 생성할 수 있습니다.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 사용 가능한 AWS 서비스 할당량이 있습니다.
  • AWS 콘솔에서 ROSA 서비스를 활성화했습니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다. rosa 버전을 실행하여 현재 설치된 ROSA CLI 버전을 확인합니다. 최신 버전을 사용할 수 있는 경우 CLI는 이 업그레이드를 다운로드할 수 있는 링크를 제공합니다.
  • ROSA CLI를 사용하여 Red Hat 계정에 로그인했습니다.
  • OIDC 구성을 생성했습니다.
  • AWS 계정에 ELB(Elastic Load Balancing) 서비스 역할이 있는지 확인했습니다.

절차

  1. 다음 명령 중 하나를 사용하여 HCP 클러스터로 ROSA를 생성합니다.

    참고

    HCP 클러스터를 사용하여 ROSA를 생성할 때 기본 머신 Classless Inter-Domain Routing (CIDR)은 10.0.0.0/16 입니다. VPC 서브넷의 CIDR 범위에 해당하지 않는 경우 다음 명령에 --machine-cidr <address_block >을 추가합니다. AWS에서 Red Hat OpenShift Service의 기본 CIDR 범위에 대한 자세한 내용은 CIDR 범위 정의를 참조하십시오.

    • 환경 변수를 설정하지 않은 경우 다음 명령을 실행합니다.

      $ rosa create cluster --cluster-name=<cluster_name> \ 
      1
      
           --mode=auto --hosted-cp [--private] \
           --operator-roles-prefix <operator-role-prefix> \ 
      2
      
           --oidc-config-id <id-of-oidc-configuration> \
           --subnet-ids=<private-subnet-id> --region <region> \
           --machine-cidr 10.0.0.0/16 --service-cidr 172.30.0.0/16 \
           --pod-cidr 10.128.0.0/14 --host-prefix 23 \
           --billing-account <root-acct-id> \ 
      3
      
           --properties zero_egress:true
      Copy to Clipboard Toggle word wrap
      1
      클러스터 이름을 지정합니다. 클러스터 이름이 15자보다 긴 경우 openshiftapps.com에서 프로비저닝된 클러스터의 하위 도메인으로 자동 생성된 도메인 접두사가 포함됩니다. 하위 도메인을 사용자 지정하려면 --domain-prefix 플래그를 사용합니다. 도메인 접두사는 15자를 초과할 수 없으며 고유해야 하며 클러스터 생성 후에는 변경할 수 없습니다.
      2
      기본적으로 클러스터별 Operator 역할 이름 앞에는 클러스터 이름과 임의의 4자리 해시가 추가됩니다. 선택 옵션으로 역할 이름에 < cluster_name>-<hash >를 대체할 사용자 지정 접두사를 지정할 수 있습니다. 접두사는 클러스터별 Operator IAM 역할을 생성할 때 적용됩니다. 접두사에 대한 자세한 내용은 사용자 정의 Operator IAM 역할 접두사 정보를 참조하십시오.
      참고

      연결된 계정 전체 역할을 생성할 때 사용자 정의 ARN 경로를 지정한 경우 사용자 정의 경로가 자동으로 감지됩니다. 사용자 정의 경로는 이후 단계에서 생성할 때 클러스터별 Operator 역할에 적용됩니다.

      3
      모든 청구를 담당하는 AWS 계정을 제공합니다.
    • 환경 변수를 설정하는 경우 다음 명령을 실행하여 비공개적으로 사용 가능한 API를 사용하여 초기 머신 풀과 개인 사용 가능한 Ingress가 있는 송신 잠금을 사용하여 클러스터를 생성합니다.

      $ rosa create cluster --private --cluster-name=<cluster_name> \
          --mode=auto --hosted-cp --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
          --oidc-config-id=$OIDC_ID --subnet-ids=$SUBNET_IDS \
          --region <region> --machine-cidr 10.0.0.0/16 --service-cidr 172.30.0.0/16 \
          --pod-cidr 10.128.0.0/14 --host-prefix 23 --billing-account <root-acct-id> \
          --private --properties zero_egress:true
      Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 클러스터 상태를 확인합니다.

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap

    다음 상태 필드 변경 사항은 클러스터 설치가 진행됨에 따라 출력에 나열됩니다.

    • 보류 (사전 계정)
    • 설치 ( 진행 중인 DNS 설정)
    • 설치
    • Ready

      참고

      설치에 실패하거나 10분 이상 State 필드가 준비 상태가 아닌 경우 자세한 내용은 설치 문제 해결 설명서를 확인하십시오. 자세한 내용은 설치 문제 해결을 참조하십시오. Red Hat 지원에 문의하려면 AWS에서 Red Hat OpenShift Service에 대한 지원 받기를 참조하십시오.

  3. AWS 설치 프로그램 로그에서 Red Hat OpenShift Service를 확인하여 클러스터 생성 진행 상황을 추적합니다. 로그를 확인하려면 다음 명령을 실행합니다.

    $ rosa logs install --cluster=<cluster_name> --watch \ 
    1
    Copy to Clipboard Toggle word wrap
    1
    선택 사항: 설치가 진행되는 동안 새 로그 메시지를 감시하려면 --watch 인수를 사용합니다.

6장. 외부 인증을 사용하여 HCP 클러스터를 사용하여 ROSA 생성

외부 OpenID Connect(OIDC) ID 공급자를 사용하여 인증을 위해 토큰을 발행하여 기본 제공 OpenShift OAuth 서버를 대체하는 호스팅된 컨트롤 플레인(HCP) 클러스터를 사용하여 AWS(ROSA)에서 Red Hat OpenShift Service를 생성할 수 있습니다. 기본 제공 OpenShift OAuth 서버는 외부 OIDC ID 공급자를 포함한 다양한 ID 공급자와의 통합을 지원하지만 OAuth 서버 자체의 기능으로 제한됩니다. CLI와 같은 머신 간 워크플로를 용이하게 하기 위해 외부 OIDC ID 공급자를 ROSA와 HCP 클러스터와 직접 통합하고 기본 제공 OpenShift OAuth 서버를 사용할 때 사용할 수 없는 추가 기능을 제공할 수 있습니다.

중요

기존 ROSA 클러스터를 호스팅된 컨트롤 플레인 아키텍처로 업그레이드하거나 변환할 수 없으므로 HCP 기능과 함께 ROSA를 사용할 새 클러스터를 생성해야 합니다. 또한 외부 인증 공급자를 사용하여 내부 OAuth2 서버를 사용하도록 생성된 클러스터를 변환할 수 없습니다. 또한 새 클러스터를 생성해야 합니다.

중요

여러 AWS 계정에서 VPC를 공유하는 것은 현재 HCP를 사용하여 ROSA에서 지원되지 않습니다. HCP 클러스터의 ROSA를 다른 AWS 계정에서 공유하는 서브넷에 설치하지 마십시오. 자세한 내용은 "Single VPC에서 여러 ROSA 클러스터 지원 "을 참조하십시오.

참고

HCP 클러스터가 있는 ROSA는 STS(Security Token Service) 인증만 지원합니다.

6.1. HCP 사전 요구 사항이 있는 ROSA

HCP 클러스터를 사용하여 ROSA를 생성하려면 다음 단계를 완료해야 합니다.

6.2. 외부 인증 공급자를 사용하는 HCP 클러스터를 사용하여 ROSA 생성

ROSA CLI에서 --external-auth-providers-enabled 플래그를 사용하여 외부 인증 서비스를 사용하는 클러스터를 생성합니다.

참고

HCP 클러스터를 사용하여 ROSA를 생성할 때 기본 머신 Classless Inter-Domain Routing (CIDR)은 10.0.0.0/16 입니다. VPC 서브넷의 CIDR 범위에 해당하지 않는 경우 다음 명령에 --machine-cidr <address_block >을 추가합니다.

절차

  • OIDC_ID,SUBNET_IDS, OPERATOR_ROLES_PREFIX 변수를 사용하여 환경을 준비한 경우 클러스터를 생성할 때 해당 변수를 계속 사용할 수 있습니다. 예를 들어 다음 명령을 실행합니다.

    $ rosa create cluster --hosted-cp --subnet-ids=$SUBNET_IDS \
       --oidc-config-id=$OIDC_ID --cluster-name=<cluster_name> \
       --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
       --external-auth-providers-enabled
    Copy to Clipboard Toggle word wrap
  • 환경 변수를 설정하지 않은 경우 다음 명령을 실행합니다.

    $ rosa create cluster --cluster-name=<cluster_name> --sts --mode=auto \
        --hosted-cp --operator-roles-prefix <operator-role-prefix> \
        --oidc-config-id <ID-of-OIDC-configuration> \
        --external-auth-providers-enabled \
        --subnet-ids=<public-subnet-id>,<private-subnet-id>
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 클러스터 세부 정보에 외부 인증이 활성화되어 있는지 확인합니다.

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap
    Name:                       rosa-ext-test
    Display Name:               rosa-ext-test
    ID:                         <cluster_id>
    External ID:                <cluster_ext_id>
    Control Plane:              ROSA Service Hosted
    OpenShift Version:          4.18.0
    Channel Group:              stable
    DNS:                        <dns>
    AWS Account:                <AWS_id>
    AWS Billing Account:        <AWS_id>
    API URL:                    <ocm_api>
    Console URL:
    Region:                     us-east-1
    Availability:
     - Control Plane:           MultiAZ
     - Data Plane:              SingleAZ
    
    Nodes:
     - Compute (desired):       2
     - Compute (current):       0
    Network:
     - Type:                    OVNKubernetes
     - Service CIDR:            <service_cidr>
     - Machine CIDR:            <machine_cidr>
     - Pod CIDR:                <pod_cidr>
     - Host Prefix:             /23
     - Subnets:                 <subnet_ids>
    EC2 Metadata Http Tokens:   optional
    Role (STS) ARN:             arn:aws:iam::<AWS_id>:role/<account_roles_prefix>-HCP-ROSA-Installer-Role
    Support Role ARN:           arn:aws:iam::<AWS_id>:role/<account_roles_prefix>-HCP-ROSA-Support-Role
    Instance IAM Roles:
     - Worker:                  arn:aws:iam::<AWS_id>:role/<account_roles_prefix>-HCP-ROSA-Worker-Role
    Operator IAM Roles:
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-openshift-cloud-network-config-controller-clo
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-kube-system-capa-controller-manager
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-kube-system-control-plane-operator
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-kube-system-kms-provider
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-kube-system-kube-controller-manager
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-openshift-image-registry-installer-cloud-cred
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-openshift-ingress-operator-cloud-credentials
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-openshift-cluster-csi-drivers-ebs-cloud-crede
    Managed Policies:           Yes
    State:                      ready
    Private:                    No
    Created:                    Mar 29 2024 14:25:52 UTC
    User Workload Monitoring:   Enabled
    Details Page:               https://<url>
    OIDC Endpoint URL:          https://<endpoint> (Managed)
    Audit Log Forwarding:       Disabled
    External Authentication:    Enabled 
    1
    Copy to Clipboard Toggle word wrap
    1
    외부 인증 플래그가 활성화되어 있으며 이제 외부 인증 공급자를 생성할 수 있습니다.

6.3. 외부 인증 공급자 생성

외부 인증 공급자에 대해 활성화된 옵션을 사용하여 HCP 클러스터가 있는 ROSA를 생성한 후에는 ROSA CLI를 사용하여 공급자를 생성해야 합니다.

참고

ROSA CLI에서 rosa create|delete|list idp[s] 명령과 유사하게 rosa create external-auth-provider 를 사용하여 생성한 기존 ID 공급자를 편집할 수 없습니다. 대신 외부 인증 공급자를 삭제하고 새 공급자를 생성해야 합니다.

다음 표는 외부 인증 공급자를 생성할 때 사용할 수 있는 CLI 플래그를 보여줍니다.

Expand
CLI Flag설명

--cluster

클러스터의 이름 또는 ID입니다.

--name

외부 인증 공급자를 참조하는 데 사용되는 이름입니다.

--console-client-secret

이 문자열은 계정을 애플리케이션과 연결하는 데 사용되는 클라이언트 시크릿입니다. 클라이언트 시크릿을 포함하지 않으면 이 명령에서 공용 OIDC OAuthClient를 사용합니다.

--issuer-audiences

쉼표로 구분된 토큰 대상 목록입니다.

--issuer-url

토큰 발행자의 URL입니다.

--claim-mapping-username-claim

클러스터 ID의 사용자 이름을 구성하는 데 사용해야 하는 클레임의 이름입니다.

--claim-mapping-groups-claim

클러스터 ID에 대한 그룹 이름을 구성하는 데 사용해야 하는 클레임의 이름입니다.

절차

  • 대화형 명령 인터페이스를 사용하려면 다음 명령을 실행합니다.

    $ rosa create external-auth-provider -c <cluster_name>
    Copy to Clipboard Toggle word wrap
    I: Enabling interactive mode
    ? Name: 
    1
    
    ? Issuer audiences: 
    2
    
    ? The serving url of the token issuer: 
    3
    
    ? CA file path (optional): 
    4
    
    ? Claim mapping username: 
    5
    
    ? Claim mapping groups: 
    6
    
    ? Claim validation rule (optional): 
    7
    
    ? Console client id (optional): 
    8
    Copy to Clipboard Toggle word wrap
    1
    외부 인증 공급자의 이름입니다. 이 이름은 숫자와 대시가 있는 소문자여야 합니다.
    2
    이 인증 공급자가 토큰을 발행하는 대상 ID입니다.
    3
    토큰을 제공하는 발행자의 URL입니다.
    4
    선택 사항: 요청을 수행할 때 사용할 인증서 파일입니다.
    5
    이메일 사용과 같이 클러스터 ID의 사용자 이름을 구성하는 데 사용되는 클레임의 이름입니다.
    6
    ID 토큰을 클러스터 ID로 변환하는 방법(예: 그룹 사용 ).
    7
    선택 사항: 사용자를 인증하는 토큰 클레임을 확인하는 데 도움이 되는 규칙입니다. 이 필드는 :<required_value> 형식으로 포맷해야 합니다.
    8
    선택 사항: 앱 등록에서 콘솔에 사용하는 애플리케이션 또는 클라이언트 ID입니다.
  • 다음 명령을 사용하여 외부 인증 공급자를 생성하는 데 필요한 ID를 포함할 수 있습니다.

    rosa create external-auth-provider --cluster=<cluster_id> \
        --name=<provider_name> --issuer-url=<issuing_url> \
        --issuer-audiences=<audience_id> \
        --claim-mapping-username-claim=email \
        --claim-mapping-groups-claim=groups \
        --console-client-id=<client_id_for_app_registration> \
        --console-client-secret=<client_secret>
    Copy to Clipboard Toggle word wrap

    출력 예

    I: Successfully created an external authentication provider for cluster '<cluster_id>'
    Copy to Clipboard Toggle word wrap

검증

  • 외부 인증 공급자를 확인하려면 다음 옵션 중 하나를 실행합니다.

    • 다음 명령을 사용하여 지정된 클러스터의 외부 인증 구성을 나열합니다.

      $ rosa list external-auth-provider -c <cluster_name>
      Copy to Clipboard Toggle word wrap

      출력 예

      다음 예제에서는 구성된 Microsoft Entra ID 외부 인증 공급자를 보여줍니다.

      NAME        ISSUER URL
      m-entra-id  https://login.microsoftonline.com/<group_id>/v2.0
      Copy to Clipboard Toggle word wrap
    • 다음 명령을 사용하여 지정된 클러스터의 외부 인증 구성을 표시합니다.

      $ rosa describe external-auth-provider \
          -c <cluster_name> --name <name_of_external_authentication>
      Copy to Clipboard Toggle word wrap

      출력 예

      ID:                          ms-entra-id
      Cluster ID:                  <cluster_id>
      Issuer audiences:
                                   - <audience_id>
      Issuer Url:                  https://login.microsoftonline.com/<group_id>/v2.0
      Claim mappings group:        groups
      Claim mappings username:     email
      Copy to Clipboard Toggle word wrap

6.4. HCP 클러스터를 사용하여 ROSA에 대한 break glass 인증 정보 생성

HCP 클러스터 소유자가 있는 ROSA는 break glass 인증 정보를 사용하여 임시 관리 클라이언트 인증 정보를 생성하여 사용자 정의 OpenID Connect(OIDC) 토큰 발행자로 구성된 클러스터에 액세스할 수 있습니다. break glass 인증 정보를 생성하면 새 cluster-admin kubeconfig 파일이 생성됩니다. kubeconfig 파일에는 CLI에서 클라이언트를 올바른 클러스터 및 API 서버에 연결하는 데 사용하는 클러스터에 대한 정보가 포함되어 있습니다. 새로 생성된 kubeconfig 파일을 사용하여 HCP 클러스터에서 ROSA에 대한 액세스를 허용할 수 있습니다.

사전 요구 사항

  • 외부 인증이 활성화된 HCP 클러스터가 있는 ROSA를 생성했습니다. 자세한 내용은 외부 인증 공급자를 사용하는 HCP 클러스터를 사용하여 ROSA 생성 을 참조하십시오.
  • 외부 인증 공급자를 생성했습니다. 자세한 내용은 외부 인증 공급자 생성을 참조하십시오.
  • 클러스터 관리자 권한이 있는 계정이 있어야 합니다.

절차

  1. 다음 명령 중 하나를 사용하여 break glass 인증 정보를 생성합니다.

    • 대화형 명령 인터페이스를 사용하여 사용자 지정 설정을 대화식으로 지정하여 break glass 인증 정보를 생성하려면 다음 명령을 실행합니다.

      $ rosa create break-glass-credential -c <cluster_name> -i 
      1
      Copy to Clipboard Toggle word wrap
      1
      <cluster_name>을 클러스터 이름으로 바꿉니다.

      이 명령은 대화형 CLI 프로세스를 시작합니다.

      출력 예

      I: Enabling interactive mode
      ? Username (optional): 
      1
      
      ? Expiration duration (optional): 
      2
      
      I: Successfully created a break glass credential for cluster 'ac-hcp-test'.
      Copy to Clipboard Toggle word wrap

      1
      비워 두면 사용자 이름의 값은 임의로 생성된 username 값이 됩니다.
      2
      break glass 인증 정보의 최소 유효 기간은 10 분이며 최대 유효 기간은 24 시간입니다. 비워 두는 경우 expiration 기간 값은 기본적으로 24시간입니다.
    • 지정된 값이 있는 mycluster 라는 클러스터에 대한 중단 유리 인증 정보를 생성하려면 다음을 수행합니다.

      $ rosa create break-glass-credential -c mycluster --username test-username --expiration 1h
      Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 mycluster 라는 클러스터에 사용할 수 있는 break glass 인증 정보 ID, 상태 및 관련 사용자를 나열합니다.

    $ rosa list break-glass-credential -c mycluster
    Copy to Clipboard Toggle word wrap

    출력 예

    ID                                USERNAME    STATUS
    2a7jli9n4phe6c02ul7ti91djtv2o51d  test-user   issued
    Copy to Clipboard Toggle word wrap

    참고

    명령에 -o json 인수를 추가하여 JSON 출력에서 인증 정보를 볼 수도 있습니다.

  3. break glass 인증 정보의 상태를 보려면 다음 명령을 실행하여 <break_glass_credential_id>를 break glass 인증 정보 ID로 바꿉니다.

    $ rosa describe break-glass-credential <break_glass_credential_id> -c <cluster_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    ID:                                    2a7jli9n4phe6c02ul7ti91djtv2o51d
    Username:                              test-user
    Expire at:                             Dec 28 2026 10:23:05 EDT
    Status:                                issued
    Copy to Clipboard Toggle word wrap

    다음은 사용 가능한 Status 필드 값 목록입니다.

    • 유리 인증 정보가 발행되었으며 사용할 준비가 되어 있습니다.
    • expired off glass 인증 정보가 만료되었으며 더 이상 사용할 수 없습니다.
    • break glass 인증 정보를 생성하지 못했습니다. 이 경우 실패를 자세히 설명하는 서비스 로그가 표시됩니다. 서비스 로그에 대한 자세한 내용은 AWS 클러스터에서 Red Hat OpenShift Service의 서비스 로그 액세스를 참조하십시오. Red Hat 지원에 문의하려면 지원 받기를 참조하십시오.
    • awaiting_revocation break glass 인증 정보는 현재 취소되고 있습니다. 즉, 사용할 수 없습니다.
    • 유리 인증 정보가 취소되어 더 이상 사용할 수 없습니다.
  4. kubeconfig 를 검색하려면 다음 명령을 실행합니다.

    • kubeconfig 디렉터리를 생성합니다.

      $ mkdir ~/kubeconfigs
      Copy to Clipboard Toggle word wrap
    • 새로 생성된 kubeconfig 파일을 내보내 <cluster_name>을 클러스터 이름으로 교체합니다.

      $ export CLUSTER_NAME=<cluster_name> && export KUBECONFIG=~/kubeconfigs/break-glass-${CLUSTER_NAME}.kubeconfig
      Copy to Clipboard Toggle word wrap
    • kubeconfig 를 확인합니다.

      $ rosa describe break-glass-credential <break_glass_credential_id> -c mycluster --kubeconfig
      Copy to Clipboard Toggle word wrap

      출력 예

      apiVersion: v1
      clusters:
      - cluster:
          server: <server_url>
        name: cluster
      contexts:
      - context:
          cluster: cluster
          namespace: default
          user: test-username
        name: admin
      current-context: admin
      kind: Config
      preferences: {}
      users:
      - name: test-user
        user:
          client-certificate-data: <client-certificate-data> 
      1
      
          client-key-data: <client-key-data> 
      2
      Copy to Clipboard Toggle word wrap

      1
      client-certificate에는 Kubernetes CA(인증 기관)에서 서명한 사용자의 인증서가 포함되어 있습니다.
      2
      client-key에는 클라이언트 인증서에 서명한 키가 포함되어 있습니다.
  5. 선택 사항: kubeconfig 를 저장하려면 다음 명령을 실행합니다.

    $ rosa describe break-glass-credential <break_glass_credential_id> -c mycluster --kubeconfig > $KUBECONFIG
    Copy to Clipboard Toggle word wrap

6.5. 유리 인증 정보를 사용하여 HCP 클러스터로 ROSA에 액세스

break glass 인증 정보의 새 kubeconfig 를 사용하여 HCP 클러스터의 ROSA에 대한 임시 관리자 액세스 권한을 얻습니다.

사전 요구 사항

  • 외부 인증이 활성화된 HCP 클러스터를 사용하여 ROSA에 액세스할 수 있습니다. 자세한 내용은 외부 인증 공급자를 사용하는 HCP 클러스터를 사용하여 ROSA 생성 을 참조하십시오.
  • ockubectl CLI를 설치했습니다.
  • kubeconfig 를 구성했습니다. 자세한 내용은 HCP 클러스터를 사용하여 ROSA에 대한 break glass 인증 정보 생성을 참조하십시오.

절차

  1. 클러스터 세부 정보에 액세스합니다.

    $ rosa describe break-glass-credential <break_glass_credential_id> -c <cluster_name>  --kubeconfig > $KUBECONFIG
    Copy to Clipboard Toggle word wrap
  2. 클러스터의 노드를 나열합니다.

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                        STATUS   ROLES   AGE   VERSION
    ip-10-0-0-27.ec2.internal   Ready    worker  8m    v1.28.7+f1b5f6c
    ip-10-0-0-67.ec2.internal   Ready    worker  9m    v1.28.7+f1b5f6c
    Copy to Clipboard Toggle word wrap

  3. 올바른 인증 정보가 있는지 확인합니다.

    $ kubectl auth whoami
    Copy to Clipboard Toggle word wrap

    출력 예

    ATTRIBUTE    VALUE
    Username     system:customer-break-glass:test-user
    Groups       [system:masters system:authenticated]
    Copy to Clipboard Toggle word wrap

  4. 외부 OIDC 공급자에 정의된 그룹에 대해 ClusterRoleBinding 을 적용합니다. ClusterRoleBinding 은 Microsoft Entra ID에서 생성된 rosa-hcp-admins 그룹을 HCP 클러스터의 ROSA의 그룹에 매핑합니다.

    $ oc apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: rosa-hcp-admins
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - apiGroup: rbac.authorization.k8s.io
      kind: Group
      name: f715c264-ab90-45d5-8a29-2e91a609a895
    EOF
    Copy to Clipboard Toggle word wrap

    출력 예

    clusterrolebinding.rbac.authorization.k8s.io/rosa-hcp-admins created
    Copy to Clipboard Toggle word wrap

    참고

    ClusterRoleBinding 이 적용되면 HCP 클러스터가 포함된 ROSA가 구성되고 rosa CLI 및 Red Hat Hybrid Cloud Console 은 외부 OpenID Connect(OIDC) 공급자를 통해 인증됩니다. 이제 클러스터에 역할 할당 및 애플리케이션을 배포할 수 있습니다.

6.6. HCP 클러스터를 사용하여 ROSA에 대한 중단 유리 인증 정보 취소

revoke break-glass-credentials 명령을 사용하여 언제든지 프로비저닝한 모든 중단 유리 인증 정보에 대한 액세스를 취소할 수 있습니다.

사전 요구 사항

  • 유리 인증 정보를 생성했습니다.
  • 클러스터 소유자입니다.

절차

  • 다음 명령을 실행하여 HCP 클러스터를 사용하여 ROSA의 중단 유리 인증 정보를 취소합니다.

    중요

    이 명령을 실행하면 클러스터와 관련된 모든 중단 유리 인증 정보에 대한 액세스 권한이 취소됩니다.

    $ rosa revoke break-glass-credentials -c <cluster_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <cluster_name>을 클러스터 이름으로 바꿉니다.

    출력 예

    ? Are you sure you want to revoke all the break glass credentials on cluster 'my-cluster'?: Yes
    I: Successfully requested revocation for all break glass credentials from cluster 'my-cluster'
    Copy to Clipboard Toggle word wrap

검증

  • 취소 프로세스는 몇 분 정도 걸릴 수 있습니다. 다음 명령 중 하나를 실행하여 클러스터의 break glass 인증 정보가 취소되었는지 확인할 수 있습니다.

    • 모든 break glass 인증 정보를 나열하고 각 인증 정보의 상태를 확인합니다.

      $ rosa list break-glass-credential -c <cluster_name>
      Copy to Clipboard Toggle word wrap

      출력 예

      ID                                USERNAME    STATUS
      2330dbs0n8m3chkkr25gkkcd8pnj3lk2  test-user   awaiting_revocation
      Copy to Clipboard Toggle word wrap

    • 개별 인증 정보를 확인하여 상태를 확인할 수도 있습니다.

      $ rosa describe break-glass-credential <break_glass_credential_id> -c <cluster_name>
      Copy to Clipboard Toggle word wrap

      출력 예

      ID:                                    2330dbs0n8m3chkkr25gkkcd8pnj3lk2
      Username:                              test-user
      Expire at:                             Dec 28 2026 10:23:05 EDT
      Status:                                issued
      Revoked at:                            Dec 27 2026 15:30:33 EDT
      Copy to Clipboard Toggle word wrap

6.7. 외부 인증 공급자 삭제

ROSA CLI를 사용하여 외부 인증 공급자를 삭제합니다.

절차

  1. 다음 명령을 실행하여 클러스터에 외부 인증 공급자를 표시합니다.

    $ rosa list external-auth-provider -c <cluster_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME        ISSUER URL
    entra-test  https://login.microsoftonline.com/<group_id>/v2.0
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 외부 인증 공급자를 삭제합니다.

    $ rosa delete external-auth-provider <name_of_provider> -c <cluster_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    ? Are you sure you want to delete external authentication provider entra-test on cluster rosa-ext-test? Yes
    I: Successfully deleted external authentication provider 'entra-test' from cluster 'rosa-ext-test'
    Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 실행하여 클러스터의 외부 인증 공급자를 쿼리합니다.

    $ rosa list external-auth-provider -c <cluster_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    E: there are no external authentication providers for this cluster
    Copy to Clipboard Toggle word wrap

7장. CNI 플러그인 없이 HCP 클러스터를 사용하는 ROSA

호스팅된 컨트롤 플레인(HCP) 클러스터에서 AWS(ROSA)에서 Red Hat OpenShift Service를 생성할 때 자체 CNI(Container Network Interface) 플러그인을 사용할 수 있습니다. CNI 없이 HCP 클러스터를 사용하여 ROSA를 생성하고 클러스터 생성 후 자체 CNI 플러그인을 설치할 수 있습니다.

중요

자체 CNI를 사용하기로 선택한 고객의 경우 CNI 플러그인 지원 책임은 선택한 CNI 공급 업체와 협력하여 고객에게 달려 있습니다.

HCP를 사용하는 ROSA의 기본 플러그인은 OVN-Kubernetes 네트워크 플러그인 입니다. 이 플러그인은 HCP를 사용하는 ROSA에 대해 유일하게 지원되는 CNI 플러그인입니다.

HCP 클러스터와 함께 ROSA에 대한 자체 CNI를 사용하기로 선택한 경우 클러스터를 생성하기 전에 플러그인 공급 업체에서 상용 지원을 받는 것이 좋습니다. Red Hat 지원은 자체 CNI 사용을 선택한 고객의 Pod 트래픽에 Pod와 같은 CNI 관련 문제를 지원할 수 없습니다. Red Hat은 여전히 CNI 이외의 모든 문제에 대한 지원을 제공합니다. Red Hat의 CNI 관련 지원이 필요한 경우 기본 OVN-Kubernetes 네트워크 플러그인을 사용하여 클러스터를 설치해야 합니다. 자세한 내용은 담당 매트릭스 를 참조하십시오.

7.1. CNI 플러그인 없이 HCP 클러스터를 사용하여 ROSA 생성

7.1.1. 사전 요구 사항

7.1.2. 계정 전체 STS 역할 및 정책 생성

ROSA(Red Hat OpenShift Service on AWS) CLI(rosa)를 사용하여 호스팅된 컨트롤 플레인(HCP) 클러스터가 있는 AWS(ROSA)에서 Red Hat OpenShift Service를 생성하기 전에 Operator 정책을 포함하여 필요한 계정 전체 역할 및 정책을 생성합니다.

참고

HCP 클러스터를 사용하는 ROSA에는 AWS 관리 정책이 연결된 계정 및 Operator 역할이 필요합니다. 고객 관리 정책은 지원되지 않습니다. HCP 클러스터의 ROSA 관리 정책에 대한 자세한 내용은 ROSA 계정 역할에 대한 AWS 관리 정책을 참조하십시오.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 사용 가능한 AWS 서비스 할당량이 있습니다.
  • AWS 콘솔에서 ROSA 서비스를 활성화했습니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다.
  • ROSA CLI를 사용하여 Red Hat 계정에 로그인했습니다.

절차

  1. AWS 계정에 없는 경우 필요한 계정 전체 STS 역할을 생성하고 다음 명령을 실행하여 정책을 연결합니다.

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 다음 명령을 실행하여 접두사를 환경 변수로 설정합니다.

    $ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
    Copy to Clipboard Toggle word wrap
    • 다음 명령을 실행하여 변수 값을 확인합니다.

      $ echo $ACCOUNT_ROLES_PREFIX
      Copy to Clipboard Toggle word wrap

      출력 예

      ManagedOpenShift
      Copy to Clipboard Toggle word wrap

ROSA의 AWS 관리 IAM 정책에 대한 자세한 내용은 ROSA의 AWS 관리 IAM 정책을 참조하십시오.

7.1.3. OpenID Connect 구성 생성

AWS 클러스터에서 Red Hat OpenShift Service를 사용하는 경우 클러스터를 생성하기 전에 OpenID Connect(OIDC) 구성을 생성할 수 있습니다. 이 구성은 OpenShift Cluster Manager와 함께 사용하도록 등록됩니다.

사전 요구 사항

  • AWS에서 Red Hat OpenShift Service에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 설치 호스트에 최신 Red Hat OpenShift Service on AWS(ROSA) CLI를 설치하고 구성했습니다.

절차

  1. AWS 리소스와 함께 OIDC 구성을 생성하려면 다음 명령을 실행합니다.

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    이 명령은 다음 정보를 반환합니다.

    출력 예

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
    Copy to Clipboard Toggle word wrap

    클러스터를 생성할 때 OIDC 구성 ID를 제공해야 합니다. CLI 출력은 --mode auto 에 대해 이 값을 제공합니다. 그렇지 않으면 --mode 수동 에 대한 aws CLI 출력에 따라 이러한 값을 결정해야합니다.

  2. 선택 사항: 나중에 사용할 수 있도록 OIDC 구성 ID를 변수로 저장할 수 있습니다. 다음 명령을 실행하여 변수를 저장합니다.

    $ export OIDC_ID=<oidc_config_id>
    1
    Copy to Clipboard Toggle word wrap
    1
    위의 출력 예에서 OIDC 구성 ID는 13cdr6b입니다.
    • 다음 명령을 실행하여 변수 값을 확인합니다.

      $ echo $OIDC_ID
      Copy to Clipboard Toggle word wrap

      출력 예

      13cdr6b
      Copy to Clipboard Toggle word wrap

검증

  • 사용자 조직과 연결된 클러스터에 사용 가능한 OIDC 구성을 나열할 수 있습니다. 다음 명령을 실행합니다.

    $ rosa list oidc-config
    Copy to Clipboard Toggle word wrap

    출력 예

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    Copy to Clipboard Toggle word wrap

7.1.4. Operator 역할 및 정책 생성

HCP 클러스터와 함께 ROSA를 사용하는 경우 호스팅되는 컨트롤 플레인(HCP) 배포와 함께 ROSA(Red Hat OpenShift Service on AWS)에 필요한 Operator IAM 역할을 생성해야 합니다. 클러스터 Operator는 Operator 역할을 사용하여 백엔드 스토리지, 클라우드 공급자 인증 정보 관리, 클러스터에 대한 외부 액세스와 같은 클러스터 작업을 수행하는 데 필요한 임시 권한을 얻습니다.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 설치 호스트에 AWS ROSA CLI(rosa)에 최신 Red Hat OpenShift Service를 설치하고 구성했습니다.
  • 계정 전체 AWS 역할을 생성하셨습니다.

절차

  1. 다음 명령을 사용하여 접두사 이름을 환경 변수로 설정합니다.

    $ export OPERATOR_ROLES_PREFIX=<prefix_name>
    Copy to Clipboard Toggle word wrap
  2. Operator 역할을 생성하려면 다음 명령을 실행합니다.

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap

    다음 분석에서는 Operator 역할 생성에 대한 옵션을 제공합니다.

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX 
    1
    
    	--oidc-config-id=$OIDC_ID 
    2
    
    	--installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role 
    3
    Copy to Clipboard Toggle word wrap
    1
    이러한 Operator 역할을 생성할 때 접두사를 제공해야 합니다. 이렇게 하지 않으면 오류가 발생합니다. Operator 접두사에 대한 자세한 내용은 이 섹션의 추가 리소스를 참조하십시오.
    2
    이 값은 HCP 클러스터를 사용하여 ROSA용으로 생성한 OIDC 구성 ID입니다.
    3
    이 값은 ROSA 계정 역할을 생성할 때 생성한 설치 관리자 역할 ARN입니다.

    HCP 클러스터의 ROSA에 올바른 역할을 생성하려면 --hosted-cp 매개변수를 포함해야 합니다. 이 명령은 다음 정보를 반환합니다.

    출력 예

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 
    1
    
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 
    2
    
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    Copy to Clipboard Toggle word wrap

    1
    이 필드는 초기 생성 명령에서 설정한 접두사로 미리 채워집니다.
    2
    이 필드를 사용하려면 HCP 클러스터를 사용하여 ROSA에 대해 생성한 OIDC 구성을 선택해야 합니다.

    이제 Operator 역할이 생성되어 HCP 클러스터를 사용하여 ROSA를 생성할 준비가 되었습니다.

검증

  • ROSA 계정과 연결된 Operator 역할을 나열할 수 있습니다. 다음 명령을 실행합니다.

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    출력 예

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 
    1
    
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    Copy to Clipboard Toggle word wrap

    1
    명령을 실행한 후 AWS 계정과 연결된 모든 접두사를 표시하고 이 접두사와 연결된 역할 수를 기록합니다. 이러한 역할과 세부 정보를 모두 확인해야 하는 경우 세부 정보 프롬프트에 이러한 역할을 나열하도록 "예"를 입력합니다.

7.2. 클러스터 생성

AWS (ROSA) 명령줄 인터페이스(CLI)에서 Red Hat OpenShift Service를 사용하여 클러스터를 생성하는 경우 선택적 플래그 --no-cni 를 추가하여 CNI 플러그인 없이 클러스터를 생성할 수 있습니다.

사전 요구 사항

  • HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
  • 사용 가능한 AWS 서비스 할당량이 있습니다.
  • AWS 콘솔에서 ROSA 서비스를 활성화했습니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다. rosa 버전을 실행하여 현재 설치된 ROSA CLI 버전을 확인합니다. 최신 버전을 사용할 수 있는 경우 CLI는 이 업그레이드를 다운로드할 수 있는 링크를 제공합니다.
  • ROSA CLI를 사용하여 Red Hat 계정에 로그인했습니다.
  • OIDC 구성을 생성했습니다.
  • AWS 계정에 ELB(Elastic Load Balancing) 서비스 역할이 있는지 확인했습니다.

절차

  1. 다음 명령 중 하나를 사용하여 HCP 클러스터를 사용하여 ROSA를 생성할 수 있습니다.

    참고

    HCP 클러스터를 사용하여 ROSA를 생성할 때 기본 머신 Classless Inter-Domain Routing (CIDR)은 10.0.0.0/16 입니다. VPC 서브넷의 CIDR 범위에 해당하지 않는 경우 다음 명령에 --machine-cidr <address_block >을 추가합니다. AWS의 Red Hat OpenShift Service의 기본 CIDR 범위에 대한 자세한 내용은 CIDR 범위 정의를 참조하십시오.

    • 다음 명령을 실행하여 공개적으로 사용 가능한 API, 공개적으로 사용 가능한 Ingress, CNI 플러그인을 사용하여 클러스터를 생성합니다.

      $ rosa create cluster --cluster-name=<cluster_name> \
          --sts --mode=auto --hosted-cp --operator-roles-prefix <operator-role-prefix> \
          --oidc-config-id <ID-of-OIDC-configuration> --subnet-ids=<public-subnet-id>,<private-subnet-id> --no-cni
      Copy to Clipboard Toggle word wrap
    • 다음 명령을 실행하여 단일 초기 머신 풀, 비공개로 사용 가능한 API, 비공개로 사용 가능한 Ingress, CNI 플러그인을 사용하여 클러스터를 생성합니다.

      $ rosa create cluster --private --cluster-name=<cluster_name> \
          --sts --mode=auto --hosted-cp --subnet-ids=<private-subnet-id> --no-cni
      Copy to Clipboard Toggle word wrap
    • OIDC_ID,SUBNET_IDS, OPERATOR_ROLES_PREFIX 변수를 사용하여 환경을 준비한 경우 CNI 플러그인 없이 클러스터를 생성할 때 해당 변수를 계속 사용할 수 있습니다. 예를 들어 다음 명령을 실행합니다.

      $ rosa create cluster --hosted-cp --subnet-ids=$SUBNET_IDS --oidc-config-id=$OIDC_ID --cluster-name=<cluster_name> --operator-roles-prefix=$OPERATOR_ROLES_PREFIX --no-cni
      Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 클러스터 상태를 확인합니다.

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap
    중요

    준비 상태에 도달한 후에도 클러스터에 처음 로그인하면 자체 CNI 플러그인을 설치할 때까지 노드는 여전히 준비되지 않은 상태가 됩니다. CNI 설치 후 노드가 준비 됨으로 변경됩니다.

    클러스터 설치가 진행됨에 따라 다음 상태 필드 변경 사항이 출력에 나열됩니다.

    • 보류 (사전 계정)
    • 설치 ( 진행 중인 DNS 설정)
    • 설치
    • Ready

      참고

      설치에 실패하거나 10분 이상 State 필드가 준비 상태가 아닌 경우 자세한 내용은 설치 문제 해결 설명서를 확인하십시오. 자세한 내용은 설치 문제 해결을 참조하십시오. Red Hat 지원에 문의하려면 AWS에서 Red Hat OpenShift Service에 대한 지원 받기를 참조하십시오.

  3. AWS 설치 프로그램 로그에서 Red Hat OpenShift Service를 확인하여 클러스터 생성 진행 상황을 추적합니다. 로그를 확인하려면 다음 명령을 실행합니다.

    $ rosa logs install --cluster=<cluster_name> --watch 
    1
    Copy to Clipboard Toggle word wrap
    1
    선택 사항: 설치가 진행되는 동안 새 로그 메시지를 감시하려면 --watch 인수를 사용합니다.

7.2.1. CNI 플러그인이 없는 클러스터에 대해 예상되는 동작

HCP 클러스터 설치가 완료된 ROSA가 있지만 CNI 플러그인 없이는 클러스터가 작동할 수 없습니다. 노드가 준비되지 않았으므로 워크로드를 배포할 수 없습니다. 예를 들어 AWS 클러스터 웹 콘솔의 Red Hat OpenShift Service를 사용할 수 없으므로 OpenShift CLI(oc)를 사용하여 클러스터에 로그인해야 합니다. 또한 HAProxy 기반 Ingress 컨트롤러, 이미지 레지스트리 및 prometheus 기반 모니터링 스택과 같은 기타 OpenShift 구성 요소가 실행되지 않습니다. 이는 CNI 공급자를 설치할 때까지 예상되는 동작입니다.

7.3. 다음 단계

  • CNI 플러그인을 설치합니다. 그러면 노드가 not ready 상태로 변경됩니다.
  • ROSA 클러스터 문서에 액세스하여 ROSA 클러스터에 액세스합니다.

8장. HCP 클러스터를 사용하여 ROSA 삭제

호스팅된 컨트롤 플레인(HCP) 클러스터가 있는 AWS(ROSA)에서 Red Hat OpenShift Service를 삭제하려면 Red Hat OpenShift Cluster Manager 또는 ROSA CLI(명령줄 인터페이스)(rosa)를 사용할 수 있습니다. 클러스터를 삭제한 후 클러스터에서 사용하는 AWS IAM(Identity and Access Management) 리소스도 삭제할 수 있습니다.

8.1. HCP 클러스터 및 클러스터별 IAM 리소스를 사용하여 ROSA 삭제

ROSA CLI(명령줄 인터페이스) 또는 Red Hat OpenShift Cluster Manager를 사용하여 HCP 클러스터로 ROSA를 삭제할 수 있습니다.

클러스터를 삭제한 후 ROSA CLI를 사용하여 AWS 계정의 클러스터별 IAM(Identity and Access Management) 리소스를 정리할 수 있습니다. 클러스터별 리소스에는 Operator 역할 및 OpenID Connect(OIDC) 공급자가 포함됩니다.

참고

클러스터 삭제 및 프로세스에서 리소스가 사용되므로 IAM 리소스를 제거하기 전에 클러스터 삭제를 완료해야 합니다.

애드온이 설치되면 클러스터를 삭제하기 전에 추가 기능이 제거되므로 클러스터 삭제 시간이 오래 걸립니다. 시간 양은 애드온의 수와 크기에 따라 다릅니다.

사전 요구 사항

  • HCP 클러스터가 있는 ROSA를 설치했습니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다.

절차

  1. 다음 명령을 실행하여 클러스터 ID, 클러스터별 Operator 역할의 ARMN(Amazon Resource Names) 및 OIDC 공급자의 끝점 URL을 가져옵니다.

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    Name:                       test_cluster
    Domain Prefix:              test_cluster
    Display Name:               test_cluster
    ID:                         <cluster_id> 
    1
    
    External ID:                <external_id>
    Control Plane:              ROSA Service Hosted
    OpenShift Version:          4.18.0
    Channel Group:              stable
    DNS:                        test_cluster.l3cn.p3.openshiftapps.com
    AWS Account:                <AWS_id>
    AWS Billing Account:        <AWS_id>
    API URL:                    https://api.test_cluster.l3cn.p3.openshiftapps.com:443
    Console URL:
    Region:                     us-east-1
    Availability:
     - Control Plane:           MultiAZ
     - Data Plane:              SingleAZ
    
    Nodes:
     - Compute (desired):       2
     - Compute (current):       0
    Network:
     - Type:                    OVNKubernetes
     - Service CIDR:            172.30.0.0/16
     - Machine CIDR:            10.0.0.0/16
     - Pod CIDR:                10.128.0.0/14
     - Host Prefix:             /23
     - Subnets:                 <subnet_ids>
    EC2 Metadata Http Tokens:   optional
    Role (STS) ARN:             arn:aws:iam::<AWS_id>:role/test_cluster-HCP-ROSA-Installer-Role
    Support Role ARN:           arn:aws:iam::<AWS_id>:role/test_cluster-HCP-ROSA-Support-Role
    Instance IAM Roles:
     - Worker:                  arn:aws:iam::<AWS_id>:role/test_cluster-HCP-ROSA-Worker-Role
    Operator IAM Roles: 
    2
    
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-cloud-network-config-controller-cloud-crede
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-image-registry-installer-cloud-credentials
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-ingress-operator-cloud-credentials
     - arn:aws:iam::<AWS_id>:role/test_cluster-kube-system-kube-controller-manager
     - arn:aws:iam::<AWS_id>:role/test_cluster-kube-system-capa-controller-manager
     - arn:aws:iam::<AWS_id>:role/test_cluster-kube-system-control-plane-operator
     - arn:aws:iam::<AWS_id>:role/hcpcluster-kube-system-kms-provider
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-cluster-csi-drivers-ebs-cloud-credentials
    Managed Policies:           Yes
    State:                      ready
    Private:                    No
    Created:                    Apr 16 2024 20:32:06 UTC
    User Workload Monitoring:   Enabled
    Details Page:               https://console.redhat.com/openshift/details/s/<cluster_id>
    OIDC Endpoint URL:          https://oidc.op1.openshiftapps.com/<cluster_id> (Managed) 
    3
    
    Audit Log Forwarding:       Disabled
    External Authentication:    Disabled
    Copy to Clipboard Toggle word wrap

    1
    클러스터 ID를 나열합니다.
    2
    클러스터별 Operator 역할의 ARN을 지정합니다. 예를 들어 샘플 출력에서 Machine Config Operator에 필요한 역할에 대한 ARN은 arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-machine-api-aws-cloud-credentials 입니다.
    3
    클러스터별 OIDC 공급자의 끝점 URL을 표시합니다.
    중요

    클러스터를 삭제한 후 ROSA CLI를 사용하여 클러스터별 STS 리소스를 삭제하려면 클러스터 ID가 필요합니다.

  2. OpenShift Cluster Manager 또는 ROSA CLI(rosa)를 사용하여 클러스터를 삭제합니다.

    • OpenShift Cluster Manager를 사용하여 클러스터를 삭제하려면 다음을 수행합니다.

      1. OpenShift Cluster Manager 로 이동합니다.
      2. 클러스터 옆에 있는 옵션 메뉴 kebab 를 클릭하고 클러스터 삭제 를 선택합니다.
      3. 클러스터 이름을 프롬프트에 입력하고 삭제 를 클릭합니다.
    • ROSA CLI를 사용하여 클러스터를 삭제하려면 다음을 수행합니다.

      1. 다음 명령을 실행하여 < cluster_name> 을 클러스터의 이름 또는 ID로 바꿉니다.

        $ rosa delete cluster --cluster=<cluster_name> --watch
        Copy to Clipboard Toggle word wrap
        중요

        Operator 역할 및 OIDC 공급자를 제거하기 전에 클러스터 삭제가 완료될 때까지 기다려야 합니다.

  3. 다음 명령을 실행하여 클러스터별 Operator IAM 역할을 삭제합니다.

    $ rosa delete operator-roles --prefix <operator_role_prefix>
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하여 OIDC 공급자를 삭제합니다.

    $ rosa delete oidc-provider --oidc-config-id <oidc_config_id>
    Copy to Clipboard Toggle word wrap

문제 해결

8.2. 계정 전체 IAM 리소스 삭제

계정 전체 AWS IAM(Identity and Access Management) 리소스에 의존하는 호스팅된 컨트롤 플레인(HCP) 클러스터를 사용하여 AWS(ROSA)에서 모든 Red Hat OpenShift Service를 삭제한 후 계정 전체 리소스를 삭제할 수 있습니다.

Red Hat OpenShift Cluster Manager를 사용하여 HCP 클러스터와 함께 ROSA를 더 이상 설치할 필요가 없는 경우 OpenShift Cluster Manager 및 사용자 IAM 역할도 삭제할 수 있습니다.

중요

동일한 AWS 계정의 다른 ROSA와 HCP 클러스터에서 계정 전체 IAM 역할 및 정책을 사용할 수 있습니다. 다른 클러스터에 필요하지 않은 경우에만 리소스를 제거합니다.

OpenShift Cluster Manager를 사용하여 동일한 AWS 계정의 AWS 클러스터에서 다른 Red Hat OpenShift Service를 설치, 관리 및 삭제하려면 OpenShift Cluster Manager 및 사용자 IAM 역할이 필요합니다. OpenShift Cluster Manager를 사용하여 계정의 AWS 클러스터에 Red Hat OpenShift Service를 더 이상 설치할 필요가 없는 경우에만 역할을 제거합니다. 삭제 전에 이러한 역할이 제거된 경우 클러스터 복구에 대한 자세한 내용은 클러스터 배포 문제 해결에서 "삭제할 수 없는 클러스터 복구"를 참조하십시오.

8.2.1. 계정 전체 IAM 역할 및 정책 삭제

이 섹션에서는 계정 전체 Operator 정책과 함께 HCP 배포와 함께 ROSA에 대해 생성한 계정 전체 IAM 역할 및 정책을 삭제하는 단계를 제공합니다. 계정 전체 AWS IAM(Identity and Access Management) 역할 및 정책을 삭제하는 HCP 클러스터를 사용하는 모든 ROSA를 삭제한 후에만 삭제할 수 있습니다.

중요

동일한 AWS 계정의 다른 Red Hat OpenShift Service에서 계정 전체 IAM 역할 및 정책을 사용할 수 있습니다. 다른 클러스터에 필요하지 않은 경우에만 역할을 제거합니다.

사전 요구 사항

  • 삭제하려는 계정 전체 IAM 역할이 있습니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다.

절차

  1. 계정 전체 역할을 삭제합니다.

    1. ROSA CLI(rosa)를 사용하여 AWS 계정의 계정 전체 역할을 나열합니다.

      $ rosa list account-roles
      Copy to Clipboard Toggle word wrap

      출력 예

      I: Fetching account roles
      ROLE NAME                                 ROLE TYPE      ROLE ARN                                                                 OPENSHIFT VERSION  AWS Managed
      ManagedOpenShift-HCP-ROSA-Installer-Role  Installer      arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-HCP-ROSA-Installer-Role  4.18               Yes
      ManagedOpenShift-HCP-ROSA-Support-Role    Support        arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-HCP-ROSA-Support-Role    4.18               Yes
      ManagedOpenShift-HCP-ROSA-Worker-Role     Worker         arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-HCP-ROSA-Worker-Role     4.18               Yes
      Copy to Clipboard Toggle word wrap

    2. 계정 전체 역할을 삭제합니다.

      $ rosa delete account-roles --prefix <prefix> --mode auto 
      1
      Copy to Clipboard Toggle word wrap
      1
      --<prefix> 인수를 포함해야 합니다. & lt;prefix >를 삭제할 계정 전체 역할의 접두사로 바꿉니다. 계정 전체 역할을 생성할 때 사용자 지정 접두사를 지정하지 않은 경우 기본 접두사인 ManagedOpenShift 를 지정합니다.
      중요

      계정 전체 IAM 역할은 동일한 AWS 계정의 다른 ROSA 클러스터에서 사용할 수 있습니다. 다른 클러스터에 필요하지 않은 경우에만 역할을 제거합니다.

      출력 예

      W: There are no classic account roles to be deleted
      I: Deleting hosted CP account roles
      ? Delete the account role 'delete-rosa-HCP-ROSA-Installer-Role'? Yes
      I: Deleting account role 'delete-rosa-HCP-ROSA-Installer-Role'
      ? Delete the account role 'delete-rosa-HCP-ROSA-Support-Role'? Yes
      I: Deleting account role 'delete-rosa-HCP-ROSA-Support-Role'
      ? Delete the account role 'delete-rosa-HCP-ROSA-Worker-Role'? Yes
      I: Deleting account role 'delete-rosa-HCP-ROSA-Worker-Role'
      I: Successfully deleted the hosted CP account roles
      Copy to Clipboard Toggle word wrap

  2. 계정 전체 인라인 및 Operator 정책을 삭제합니다.

    1. AWS IAM 콘솔정책 페이지에서 계정 전체 역할 및 정책을 생성할 때 지정한 접두사로 정책 목록을 필터링합니다.

      참고

      계정 전체 역할을 생성할 때 사용자 지정 접두사를 지정하지 않은 경우 기본 접두사인 ManagedOpenShift 를 검색합니다.

    2. AWS IAM 콘솔 을 사용하여 계정 전체 인라인 정책 및 Operator 정책을 삭제합니다. AWS IAM 콘솔을 사용하여 IAM 정책 삭제에 대한 자세한 내용은 AWS 문서의 IAM 정책 삭제 를 참조하십시오.

      중요

      동일한 AWS 계정의 다른 ROSA에서 계정 전체 인라인 및 Operator IAM 정책을 사용할 수 있습니다. 다른 클러스터에 필요하지 않은 경우에만 역할을 제거합니다.

8.2.2. OpenShift Cluster Manager 및 사용자 IAM 역할 연결 해제 및 삭제

Red Hat OpenShift Cluster Manager를 사용하여 HCP 클러스터로 ROSA를 설치할 때 Red Hat 조직에 연결되는 OpenShift Cluster Manager 및 사용자 IAM(Identity and Access Management) 역할도 생성합니다. 클러스터를 삭제한 후 ROSA CLI(rosa)를 사용하여 역할을 연결 해제하고 삭제할 수 있습니다.

중요

OpenShift Cluster Manager를 사용하여 동일한 AWS 계정에서 HCP를 사용하여 다른 ROSA를 설치하고 관리하려면 OpenShift Cluster Manager 및 사용자 IAM 역할이 필요합니다. 더 이상 OpenShift Cluster Manager를 사용하여 HCP 클러스터와 함께 ROSA를 설치할 필요가 없는 경우에만 역할을 제거합니다.

사전 요구 사항

  • OpenShift Cluster Manager 및 사용자 IAM 역할을 생성하여 Red Hat 조직에 연결합니다.
  • 설치 호스트에 최신 ROSA CLI(rosa)를 설치하고 구성했습니다.
  • Red Hat 조직에는 조직 관리자 권한이 있습니다.

절차

  1. Red Hat 조직에서 OpenShift Cluster Manager IAM 역할을 연결 해제하고 역할을 삭제합니다.

    1. AWS 계정의 OpenShift Cluster Manager IAM 역할을 나열합니다.

      $ rosa list ocm-roles
      Copy to Clipboard Toggle word wrap

      출력 예

      I: Fetching ocm roles
      ROLE NAME                                                     ROLE ARN                                                                                         LINKED  ADMIN  AWS Managed
      ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>  arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>  Yes      Yes     Yes
      Copy to Clipboard Toggle word wrap

    2. OpenShift Cluster Manager IAM 역할이 이전 명령의 출력에 연결된 것으로 표시되면 다음 명령을 실행하여 Red Hat 조직의 역할을 연결 해제합니다.

      $ rosa unlink ocm-role --role-arn <arn> 
      1
      Copy to Clipboard Toggle word wrap
      1
      & lt;arn >을 OpenShift Cluster Manager IAM 역할의 ARM(Amazon Resource Name)으로 바꿉니다. ARN은 이전 명령의 출력에 지정됩니다. 이전 예에서 ARN은 arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id > 형식으로 되어 있습니다.

      출력 예

      I: Unlinking OCM role
      ? Unlink the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' role from organization '<red_hat_organization_id>'? Yes
      I: Successfully unlinked role-arn 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' from organization account '<red_hat_organization_id>'
      Copy to Clipboard Toggle word wrap

    3. OpenShift Cluster Manager IAM 역할 및 정책을 삭제합니다.

      $ rosa delete ocm-role --role-arn <arn>
      Copy to Clipboard Toggle word wrap

      출력 예

      I: Deleting OCM role
      ? OCM Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>
      ? Delete 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' ocm role? Yes
      ? OCM role deletion mode: auto 
      1
      
      I: Successfully deleted the OCM role
      Copy to Clipboard Toggle word wrap

      1
      삭제 모드를 지정합니다. 자동 모드를 사용하여 OpenShift Cluster Manager IAM 역할 및 정책을 자동으로 삭제할 수 있습니다. 수동 모드에서 ROSA CLI는 역할 및 정책을 삭제하는 데 필요한 aws 명령을 생성합니다. 수동 모드를 사용하면 aws 명령을 수동으로 실행하기 전에 세부 정보를 검토할 수 있습니다.
  2. Red Hat 조직에서 사용자 IAM 역할을 연결 해제하고 역할을 삭제합니다.

    1. AWS 계정의 사용자 IAM 역할을 나열합니다.

      $ rosa list user-roles
      Copy to Clipboard Toggle word wrap

      출력 예

      I: Fetching user roles
      ROLE NAME                                  ROLE ARN                                                                  LINKED
      ManagedOpenShift-User-<ocm_user_name>-Role  arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role  Yes
      Copy to Clipboard Toggle word wrap

    2. 사용자 IAM 역할이 이전 명령의 출력에 연결된 것으로 표시되면 Red Hat 조직의 역할을 연결 해제합니다.

      $ rosa unlink user-role --role-arn <arn> 
      1
      Copy to Clipboard Toggle word wrap
      1
      & lt;arn >을 사용자 IAM 역할의 Amazon 리소스 이름(ARN)으로 바꿉니다. ARN은 이전 명령의 출력에 지정됩니다. 위 예에서 ARN은 arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role 형식으로 되어 있습니다.

      출력 예

      I: Unlinking user role
      ? Unlink the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role' role from the current account '<ocm_user_account_id>'? Yes
      I: Successfully unlinked role ARN 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role' from account '<ocm_user_account_id>'
      Copy to Clipboard Toggle word wrap

    3. 사용자 IAM 역할을 삭제합니다.

      $ rosa delete user-role --role-arn <arn>
      Copy to Clipboard Toggle word wrap

      출력 예

      I: Deleting user role
      ? User Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role
      ? Delete the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role' role from the AWS account? Yes
      ? User role deletion mode: auto 
      1
      
      I: Successfully deleted the user role
      Copy to Clipboard Toggle word wrap

      1
      삭제 모드를 지정합니다. 자동 모드를 사용하여 사용자 IAM 역할을 자동으로 삭제할 수 있습니다. 수동 모드에서 ROSA CLI는 역할을 삭제하는 데 필요한 aws 명령을 생성합니다. 수동 모드를 사용하면 aws 명령을 수동으로 실행하기 전에 세부 정보를 검토할 수 있습니다.

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat