1.3. HCP 사전 요구 사항이 있는 ROSA
HCP 클러스터를 사용하여 ROSA를 생성하려면 다음 항목이 있어야 합니다.
- 구성된 VPC(가상 프라이빗 클라우드)
- 계정 전체 역할
- OIDC 구성
- Operator 역할
1.3.1. HCP 클러스터를 사용하여 ROSA용 가상 프라이빗 클라우드 생성
HCP 클러스터를 사용하여 ROSA를 생성하려면 VPC(Virtual Private Cloud)가 있어야 합니다. 다음 방법을 사용하여 VPC를 생성할 수 있습니다.
- Terraform 템플릿을 사용하여 VPC 생성
- AWS 콘솔에서 VPC 리소스 수동 생성
Terraform 지침은 테스트 및 시연을 목적으로 합니다. 자체 설치를 수행하려면 VPC를 일부 수정해야 합니다. 또한 이 Terraform 스크립트를 사용할 때 클러스터를 설치하려는 리전과 동일한 지역에 있는지 확인해야 합니다. 이 예제에서는 us-east-2 를 사용합니다.
Terraform을 사용하여 가상 사설 클라우드 생성
Terraform은 설정된 템플릿을 사용하여 다양한 리소스를 생성할 수 있는 툴입니다. 다음 프로세스는 HCP 클러스터를 사용하여 ROSA를 생성하는 데 필요한 기본 옵션을 사용합니다. Terraform 사용에 대한 자세한 내용은 추가 리소스를 참조하십시오.
사전 요구 사항
- 시스템에 Terraform 버전 1.4.0 이상을 설치했습니다.
- 시스템에 Git을 설치했습니다.
절차
쉘 프롬프트를 열고 다음 명령을 실행하여 Terraform VPC 리포지토리를 복제합니다.
$ git clone https://github.com/openshift-cs/terraform-vpc-example
다음 명령을 실행하여 생성된 디렉터리로 이동합니다.
$ cd terraform-vpc-example
다음 명령을 실행하여 Terraform 파일을 시작합니다.
$ terraform init
이 프로세스가 완료되면 초기화를 확인하는 메시지가 표시됩니다.
기존 Terraform 템플릿을 기반으로 VPC Terraform 계획을 빌드하려면
plan명령을 실행합니다. AWS 리전을 포함해야 합니다. 클러스터 이름을 지정하도록 선택할 수 있습니다.rosa.tfplan파일은테라폼계획이 완료된 후hypershift-tf디렉토리에 추가됩니다. 자세한 옵션은 Terraform VPC 리포지토리의 README 파일을 참조하십시오.$ terraform plan -out rosa.tfplan -var region=<region> [-var cluster_name=<cluster_name>]
다음 명령을 실행하여 VPC를 빌드하려면 이 계획 파일을 적용합니다.
$ terraform apply rosa.tfplan
선택 사항: 다음 명령을 실행하여 HCP 클러스터로 ROSA를 생성할 때 사용할 Terraform-provisioned 개인, 공용 및 머신 풀 서브넷 ID 값을 환경 변수로 캡처할 수 있습니다.
$ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
검증
다음 명령을 사용하여 변수가 올바르게 설정되었는지 확인할 수 있습니다.
$ echo $SUBNET_IDS
샘플 출력
$ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
추가 리소스
- 필요에 맞게 VPC를 사용자 정의할 때 사용할 수 있는 모든 옵션의 자세한 목록은 Terraform VPC 리포지터리를 참조하십시오.
수동으로 가상 프라이빗 클라우드 생성
Terraform을 사용하는 대신 VPC(Virtual Private Cloud)를 수동으로 생성하도록 선택하는 경우 AWS 콘솔의 VPC 페이지로 이동합니다. VPC는 다음 표에 표시된 요구 사항을 충족해야 합니다.
표 1.3. VPC에 대한 요구사항
| 요구 사항 | 세부 정보 |
|---|---|
| VPC 이름 | 클러스터를 생성할 때 특정 VPC 이름과 ID가 있어야합니다. |
| CIDR 범위 | VPC CIDR 범위는 머신 CIDR과 일치해야 합니다. |
| 가용성 영역 | 단일 영역에 하나의 가용성 영역이 필요하며, 다중 영역의 가용성 영역인 경우 3개가 필요합니다. |
| 퍼블릭 서브넷 | NAT 게이트웨이가 있는 공용 서브넷이 한 개 있어야 합니다. |
| DNS 호스트 이름 및 확인 | DNS 호스트 이름 및 확인이 활성화되어 있는지 확인해야 합니다. |
1.3.2. 계정 전체 STS 역할 및 정책 생성
ROSA(Red Hat OpenShift Service on AWS) CLI, rosa 를 사용하여 호스팅된 컨트롤 플레인(HCP) 클러스터가 있는 AWS(ROSA)에서 Red Hat OpenShift Service를 생성하기 전에 Operator 정책을 포함하여 필요한 계정 전체 역할 및 정책을 생성합니다.
사전 요구 사항
- HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
- 사용 가능한 AWS 서비스 할당량이 있습니다.
- AWS 콘솔에서 ROSA 서비스를 활성화했습니다.
설치 호스트에 최신 ROSA CLI(
rosa)를 설치하고 구성했습니다.참고HCP 클러스터와 함께 ROSA를 성공적으로 설치하려면 최신 버전의 ROSA CLI(
rosa)를 사용합니다.- ROSA CLI를 사용하여 Red Hat 계정에 로그인했습니다.
절차
AWS 계정에 없는 경우 다음 명령을 실행하여 필요한 계정 전체 STS 역할 및 정책을 생성합니다.
$ rosa create account-roles --force-policy-creation
--force-policy-creation매개변수는 존재하는 기존 역할 및 정책을 업데이트합니다. 역할 및 정책이 없는 경우 명령에서 이러한 리소스를 대신 생성합니다.
1.3.3. OpenID Connect 구성 생성
HCP 클러스터와 함께 ROSA를 사용하는 경우 클러스터를 생성하기 전에 OIDC(OpenID Connect) 구성을 생성해야 합니다. 이 구성은 OpenShift Cluster Manager와 함께 사용하도록 등록됩니다.
사전 요구 사항
- HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
- AWS에서 Red Hat OpenShift Service에 대한 AWS 사전 요구 사항을 완료했습니다.
-
설치 호스트에 최신 Red Hat OpenShift Service on AWS(ROSA) CLI를 설치하고 구성했습니다.
절차
AWS 리소스와 함께 OIDC 구성을 생성하려면 다음 명령을 실행합니다.
$ rosa create oidc-config --mode=auto --yes
이 명령은 다음 정보를 반환합니다.
샘플 출력
? 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'
클러스터를 생성할 때 OIDC 구성 ID를 제공해야 합니다. CLI 출력은
--mode auto에 대해 이 값을 제공합니다. 그렇지 않으면--mode 수동에 대한awsCLI 출력에 따라 이러한 값을 결정해야합니다.선택 사항: 나중에 사용할 수 있도록 OIDC 구성 ID를 변수로 저장할 수 있습니다. 다음 명령을 실행하여 변수를 저장합니다.
$ export OIDC_ID=30f5dqmk
다음 명령으로 실행하여 변수 값을 확인합니다.
$ echo $OIDC_ID
샘플 출력
$ 30f5dqmk
검증
사용자 조직과 연결된 클러스터에 사용 가능한 OIDC 구성을 나열할 수 있습니다. 다음 명령을 실행합니다.
$ rosa list oidc-config
샘플 출력
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
1.3.4. Operator 역할 및 정책 생성
HCP 클러스터와 함께 ROSA를 사용하는 경우 HCP(Hosted Control Planes) 배포에서 Red Hat OpenShift Service on AWS(ROSA)에 필요한 Operator IAM 역할을 생성해야 합니다. 클러스터 Operator는 Operator 역할을 사용하여 백엔드 스토리지, 클라우드 공급자 인증 정보 관리, 클러스터에 대한 외부 액세스와 같은 클러스터 작업을 수행하는 데 필요한 임시 권한을 얻습니다.
사전 요구 사항
- HCP를 사용하여 ROSA에 대한 AWS 사전 요구 사항을 완료했습니다.
-
설치 호스트에 최신 Red Hat OpenShift Service on AWS(ROSA) CLI를 설치하고 구성했습니다.
- 계정 전체 AWS 역할을 생성하셨습니다.
절차
Operator 역할을 생성하려면 다음 명령을 실행합니다.
$ rosa create operator-roles --hosted-cp --prefix <prefix-name> --oidc-config-id <oidc-config-id>
다음 분석에서는 Operator 역할 생성에 대한 옵션을 제공합니다.
$ rosa create operator-roles --hosted-cp --prefix <prefix-name> 1 --oidc-config-id <oidc-config-id> 2
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>-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
이제 Operator 역할이 생성되어 HCP 클러스터를 사용하여 ROSA를 생성할 준비가 되었습니다.
검증
ROSA 계정과 연결된 Operator 역할을 나열할 수 있습니다. 다음 명령을 실행합니다.
$ rosa list operator-roles
샘플 출력
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- 1
- 명령을 실행한 후 AWS 계정과 연결된 모든 접두사를 표시하고 이 접두사와 연결된 역할 수를 기록합니다. 이러한 역할과 세부 정보를 모두 확인해야 하는 경우 세부 정보 프롬프트에 이러한 역할을 나열하도록 "예"를 입력합니다.
추가 리소스
- Operator 접두사에 대한 자세한 내용은 사용자 정의 Operator IAM 역할 접두사 정보를 참조하십시오.