17.4. 클러스터 배포
17.4.1. 튜토리얼: 배포 방법 선택
이 튜토리얼에서는 클러스터를 배포하는 다양한 방법을 간략하게 설명합니다. 기본 설정 및 요구 사항에 가장 적합한 배포 방법을 선택합니다.
17.4.1.1. 배포 옵션
원하는 경우:
- 필요한 CLI 명령만 - 간단한 CLI 가이드
- 사용자 인터페이스 - 간단한 UI 가이드
- 세부 정보가 있는 CLI 명령 - 자세한 CLI 가이드
- 세부 정보가 있는 사용자 인터페이스 - 자세한 UI 가이드
위의 모든 배포 옵션은 이 튜토리얼에서 잘 작동합니다. 이 튜토리얼을 처음 수행하는 경우 Simple CLI 가이드가 가장 간단하고 권장되는 방법입니다.
17.4.2. 튜토리얼: 간단한 CLI 가이드
이 페이지에서는 CLI(명령줄 인터페이스)를 사용하여 AWS(ROSA) 클러스터에 Red Hat OpenShift Service를 배포하는 최소 명령 목록을 간략하게 설명합니다.
이 간단한 배포는 튜토리얼 설정에 적합하지만 프로덕션에 사용되는 클러스터는 보다 자세한 방법으로 배포해야 합니다.
17.4.2.1. 사전 요구 사항
- 설치 튜토리얼에서 사전 요구 사항을 완료했습니다.
17.4.2.2. 계정 역할 생성
각 AWS 계정 및 Y-stream OpenShift 버전에 대해 다음 명령을 한 번 실행합니다.
rosa create account-roles --mode auto --yes
17.4.2.3. 클러스터 배포
다음 명령을 실행하여 자체 클러스터 이름을 대체하여 기본 구성으로 클러스터를 생성합니다.
rosa create cluster --cluster-name <cluster-name> --sts --mode auto --yes
다음 명령을 실행하여 클러스터 상태를 확인합니다.
rosa list clusters
17.4.3. 튜토리얼: 자세한 CLI 가이드
이 튜토리얼에서는 ROSA CLI를 사용하여 ROSA 클러스터를 배포하는 자세한 단계를 간략하게 설명합니다.
17.4.3.1. CLI 배포 모드
ROSA 클러스터를 배포하는 방법은 두 가지가 있습니다. 하나는 자동이며 더 빠르고 수동 작업을 수행합니다. 다른 하나는 수동이며 추가 명령을 실행해야 하며 생성되는 역할 및 정책을 검사할 수 있습니다. 이 튜토리얼은 두 가지 옵션을 모두 문서화합니다.
클러스터를 빠르게 생성하려면 자동 옵션을 사용합니다. 생성되는 역할 및 정책을 탐색하는 것을 선호하는 경우 수동 옵션을 사용합니다.
관련 명령에서 --mode
플래그를 사용하여 배포 모드를 선택합니다.
--mode
의 유효한 옵션은 다음과 같습니다.
-
수동
: 역할 및 정책이 생성되어 현재 디렉터리에 저장됩니다. 제공된 명령을 다음 단계로 수동으로 실행해야 합니다. 이 옵션을 사용하면 정책 및 역할을 생성하기 전에 검토할 수 있습니다. -
Auto
: 현재 AWS 계정을 사용하여 역할 및 정책이 자동으로 생성되고 적용됩니다.
이 튜토리얼에 두 가지 배포 방법을 사용할 수 있습니다. 자동
모드가 빨라지고 단계가 줄어듭니다.
17.4.3.2. 배포 워크플로
전체 배포 워크플로는 다음 단계를 따릅니다.
-
Rosa create account-roles
- 이는 각 계정에 대해 한 번만 실행됩니다. 생성된 계정 역할은 동일한 y-stream 버전의 더 많은 클러스터에 대해 다시 생성할 필요가 없습니다. -
Rosa create cluster
-
Rosa create operator-roles
- 수동 모드의 경우에만 사용됩니다. -
Rosa create oidc-provider
- 수동 모드의 경우에만 사용됩니다.
동일한 y-stream 버전의 동일한 계정에 있는 각 추가 클러스터에 대해 자동 모드의 경우 2단계만 필요합니다. 수동 모드에서는 2~4 단계가 필요합니다.
17.4.3.3. 자동 모드
ROSA CLI에서 클러스터를 신속하게 생성하기 위한 역할 및 정책 생성을 자동화하려면 이 방법을 사용합니다.
17.4.3.3.1. 계정 역할 생성
이 계정에 ROSA를 처음 배포하고 계정 역할을 아직 생성하지 않은 경우 Operator 정책을 포함하여 계정 전체 역할 및 정책을 생성합니다.
다음 명령을 실행하여 계정 전체 역할을 생성합니다.
rosa create account-roles --mode auto --yes
출력 예
I: Creating roles using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-ControlPlane-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role' I: Created role 'ManagedOpenShift-Worker-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role' I: Created role 'ManagedOpenShift-Support-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role' I: Created role 'ManagedOpenShift-Installer-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-machine-api-aws-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cloud-credential-operator-cloud-crede' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-ingress-operator-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cluster-csi-drivers-ebs-cloud-credent' I: To create a cluster with these roles, run the following command: rosa create cluster --sts
17.4.3.3.2. 클러스터 생성
다음 명령을 실행하여 모든 기본 옵션이 있는 클러스터를 생성합니다.
rosa create cluster --cluster-name <cluster-name> --sts --mode auto --yes
또한 필요한 Operator 역할 및 OIDC 공급자가 생성됩니다. 클러스터에 사용 가능한 모든 옵션을 보려면 대화형 모드에서 --help
플래그 또는 --interactive
를 사용합니다.
입력 예
$ rosa create cluster --cluster-name my-rosa-cluster --sts --mode auto --yes
출력 예
I: Creating cluster 'my-rosa-cluster' I: To view a list of clusters and their status, run 'rosa list clusters' I: Cluster 'my-rosa-cluster' has been created. I: Once the cluster is installed you will need to add an Identity Provider before you can login into the cluster. See 'rosa create idp --help' for more information. I: To determine when your cluster is Ready, run 'rosa describe cluster -c my-rosa-cluster'. I: To watch your cluster installation logs, run 'rosa logs install -c my-rosa-cluster --watch'. Name: my-rosa-cluster ID: 1mlhulb3bo0l54ojd0ji000000000000 External ID: OpenShift Version: Channel Group: stable DNS: my-rosa-cluster.ibhp.p1.openshiftapps.com AWS Account: 000000000000 API URL: Console URL: Region: us-west-2 Multi-AZ: false Nodes: - Master: 3 - Infra: 2 - Compute: 2 Network: - Service CIDR: 172.30.0.0/16 - Machine CIDR: 10.0.0.0/16 - Pod CIDR: 10.128.0.0/14 - Host Prefix: /23 STS Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role Support Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role Instance IAM Roles: - Master: arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role - Worker: arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role Operator IAM Roles: - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-image-registry-installer-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-ingress-operator-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-cluster-csi-drivers-ebs-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-machine-api-aws-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-cloud-credential-operator-cloud-credential-oper State: waiting (Waiting for OIDC configuration) Private: No Created: Oct 28 2021 20:28:09 UTC Details Page: https://console.redhat.com/openshift/details/s/1wupmiQy45xr1nN000000000000 OIDC Endpoint URL: https://rh-oidc.s3.us-east-1.amazonaws.com/1mlhulb3bo0l54ojd0ji000000000000
17.4.3.3.2.1. 기본 구성
기본 설정은 다음과 같습니다.
노드:
- 컨트롤 플레인 노드 세 개
- 인프라 노드 2개
- 작업자 노드 2개
- 자동 스케일링 없음
- 자세한 내용은 ec2 인스턴스에 대한 설명서를 참조하십시오.
-
region:
aws
CLI에 대해 구성된 대로 네트워킹 IP 범위:
- 머신 CIDR: 10.0.0.0/16
- 서비스 CIDR: 172.30.0.0/16
- Pod CIDR: 10.128.0.0/14
- 새 VPC
- 암호화를 위한 기본 AWS KMS 키
-
rosa
에서 사용할 수 있는 OpenShift의 최신 버전 - 단일 가용성 영역
- 퍼블릭 클러스터
17.4.3.3.3. 설치 상태 확인
다음 명령 중 하나를 실행하여 클러스터 상태를 확인합니다.
상태에 대한 자세한 보기를 보려면 다음을 실행합니다.
rosa describe cluster --cluster <cluster-name>
상태의 abridged 뷰의 경우 다음을 실행합니다.
rosa list clusters
- 클러스터 상태가 "대기 중"에서 "설치"로 변경됩니다. 이 작업은 약 40분 정도 걸립니다.
- 상태가 "준비"로 변경되면 클러스터가 설치됩니다.
17.4.3.4. 수동 모드
클러스터에 적용하기 전에 역할 및 정책을 검토하려면 수동 방법을 사용합니다. 이 방법을 사용하려면 역할 및 정책을 생성하려면 몇 가지 추가 명령을 실행해야 합니다.
이 섹션에서는 --interactive
모드를 사용합니다. 이 섹션의 필드에 대한 설명은 대화형 모드에 대한 설명서를 참조하십시오.
17.4.3.4.1. 계정 역할 생성
이 계정에 ROSA를 처음 배포하고 계정 역할을 아직 생성하지 않은 경우 Operator 정책을 포함하여 계정 전체 역할 및 정책을 생성합니다. 명령은 현재 디렉터리의 계정에 필요한 역할 및 정책에 필요한 JSON 파일을 생성합니다. 이러한 오브젝트를 생성하기 위해 실행해야 하는
aws
CLI 명령도 출력합니다.다음 명령을 실행하여 필요한 파일을 생성하고 추가 명령을 출력합니다.
rosa create account-roles --mode manual
출력 예
I: All policy files saved to the current directory I: Run the following commands to create the account roles and policies: aws iam create-role \ --role-name ManagedOpenShift-Worker-Role \ --assume-role-policy-document file://sts_instance_worker_trust_policy.json \ --tags Key=rosa_openshift_version,Value=4.8 Key=rosa_role_prefix,Value=ManagedOpenShift Key=rosa_role_type,Value=instance_worker aws iam put-role-policy \ --role-name ManagedOpenShift-Worker-Role \ --policy-name ManagedOpenShift-Worker-Role-Policy \ --policy-document file://sts_instance_worker_permission_policy.json
현재 디렉터리의 내용을 확인하여 새 파일을 확인합니다.
aws
CLI를 사용하여 이러한 각 오브젝트를 생성합니다.출력 예
$ ls openshift_cloud_credential_operator_cloud_credential_operator_iam_ro_creds_policy.json sts_instance_controlplane_permission_policy.json openshift_cluster_csi_drivers_ebs_cloud_credentials_policy.json sts_instance_controlplane_trust_policy.json openshift_image_registry_installer_cloud_credentials_policy.json sts_instance_worker_permission_policy.json openshift_ingress_operator_cloud_credentials_policy.json sts_instance_worker_trust_policy.json openshift_machine_api_aws_cloud_credentials_policy.json sts_support_permission_policy.json sts_installer_permission_policy.json sts_support_trust_policy.json sts_installer_trust_policy.json
선택 사항: 파일을 열어 생성할 항목을 검토합니다. 예를 들어
sts_installer_permission_policy.json
을 열면 다음이 표시됩니다.출력 예
$ cat sts_installer_permission_policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AssociateDhcpOptions", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachNetworkInterface", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", [...]
ROSA 클러스터 설명서의 IAM 정보 리소스 의 내용을 볼 수도 있습니다.
-
1 단계에 나열된
aws
명령을 실행합니다. 생성한 JSON 파일과 동일한 디렉터리에 있는 경우 복사하여 붙여넣을 수 있습니다.
17.4.3.4.2. 클러스터 생성
aws
명령이 성공적으로 실행된 후 다음 명령을 실행하여 대화형 모드에서 ROSA 클러스터 생성을 시작합니다.rosa create cluster --interactive --sts
필드에 대한 설명은 ROSA 설명서 를 참조하십시오.
이 튜토리얼의 목적을 위해 다음 값을 복사한 다음 입력합니다.
Cluster name: my-rosa-cluster OpenShift version: <choose version> External ID (optional): <leave blank> Operator roles prefix: <accept default> Multiple availability zones: No AWS region: <choose region> PrivateLink cluster: No Install into an existing VPC: No Enable Customer Managed key: No Compute nodes instance type: m5.xlarge Enable autoscaling: No Compute nodes: 2 Machine CIDR: <accept default> Service CIDR: <accept default> Pod CIDR: <accept default> Host prefix: <accept default> Encrypt etcd data (optional): No Disable Workload monitoring: No
출력 예
I: Creating cluster 'my-rosa-cluster' I: To create this cluster again in the future, you can run: rosa create cluster --cluster-name my-rosa-cluster --role-arn arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role --support-role-arn arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role --master-iam-role arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role --worker-iam-role arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role --operator-roles-prefix my-rosa-cluster --region us-west-2 --version 4.8.13 --compute-nodes 2 --machine-cidr 10.0.0.0/16 --service-cidr 172.30.0.0/16 --pod-cidr 10.128.0.0/14 --host-prefix 23 I: To view a list of clusters and their status, run 'rosa list clusters' I: Cluster 'my-rosa-cluster' has been created. I: Once the cluster is installed you will need to add an Identity Provider before you can login into the cluster. See 'rosa create idp --help' for more information. Name: my-rosa-cluster ID: 1t6i760dbum4mqltqh6o000000000000 External ID: OpenShift Version: Channel Group: stable DNS: my-rosa-cluster.abcd.p1.openshiftapps.com AWS Account: 000000000000 API URL: Console URL: Region: us-west-2 Multi-AZ: false Nodes: - Control plane: 3 - Infra: 2 - Compute: 2 Network: - Service CIDR: 172.30.0.0/16 - Machine CIDR: 10.0.0.0/16 - Pod CIDR: 10.128.0.0/14 - Host Prefix: /23 STS Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role Support Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role Instance IAM Roles: - Control plane: arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role - Worker: arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role Operator IAM Roles: - arn:aws:iam::000000000000:role/my-rosa-cluster-w7i6-openshift-ingress-operator-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-w7i6-openshift-cluster-csi-drivers-ebs-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-w7i6-openshift-cloud-network-config-controller-cloud-cre - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-machine-api-aws-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-cloud-credential-operator-cloud-credentia - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-image-registry-installer-cloud-credential State: waiting (Waiting for OIDC configuration) Private: No Created: Jul 1 2022 22:13:50 UTC Details Page: https://console.redhat.com/openshift/details/s/2BMQm8xz8Hq5yEN000000000000 OIDC Endpoint URL: https://rh-oidc.s3.us-east-1.amazonaws.com/1t6i760dbum4mqltqh6o000000000000 I: Run the following commands to continue the cluster creation: rosa create operator-roles --cluster my-rosa-cluster rosa create oidc-provider --cluster my-rosa-cluster I: To determine when your cluster is Ready, run 'rosa describe cluster -c my-rosa-cluster'. I: To watch your cluster installation logs, run 'rosa logs install -c my-rosa-cluster --watch'.
참고다음 두 단계가 완료될 때까지 클러스터 상태는 "대기 중"으로 유지됩니다.
17.4.3.4.3. Operator 역할 생성
위 단계에서는 실행할 다음 명령을 출력합니다. 이러한 역할은 각 클러스터에 대해 한 번 생성해야 합니다. 역할을 생성하려면 다음 명령을 실행합니다.
rosa create operator-roles --mode manual --cluster <cluster-name>
출력 예
I: Run the following commands to create the operator roles: aws iam create-role \ --role-name my-rosa-cluster-openshift-image-registry-installer-cloud-credentials \ --assume-role-policy-document file://operator_image_registry_installer_cloud_credentials_policy.json \ --tags Key=rosa_cluster_id,Value=1mkesci269png3tck000000000000000 Key=rosa_openshift_version,Value=4.8 Key=rosa_role_prefix,Value= Key=operator_namespace,Value=openshift-image-registry Key=operator_name,Value=installer-cloud-credentials aws iam attach-role-policy \ --role-name my-rosa-cluster-openshift-image-registry-installer-cloud-credentials \ --policy-arn arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden [...]
-
각
aws
명령을 실행합니다.
17.4.3.4.4. OIDC 공급자 생성
다음 명령을 실행하여 OIDC 공급자를 생성합니다.
rosa create oidc-provider --mode manual --cluster <cluster-name>
그러면 실행해야 하는
aws
명령이 표시됩니다.출력 예
I: Run the following commands to create the OIDC provider: $ aws iam create-open-id-connect-provider \ --url https://rh-oidc.s3.us-east-1.amazonaws.com/1mkesci269png3tckknhh0rfs2da5fj9 \ --client-id-list openshift sts.amazonaws.com \ --thumbprint-list a9d53002e97e00e043244f3d170d000000000000 $ aws iam create-open-id-connect-provider \ --url https://rh-oidc.s3.us-east-1.amazonaws.com/1mkesci269png3tckknhh0rfs2da5fj9 \ --client-id-list openshift sts.amazonaws.com \ --thumbprint-list a9d53002e97e00e043244f3d170d000000000000
- 이제 클러스터가 설치 프로세스를 계속합니다.
17.4.3.4.5. 설치 상태 확인
다음 명령 중 하나를 실행하여 클러스터 상태를 확인합니다.
상태에 대한 자세한 보기를 보려면 다음을 실행합니다.
rosa describe cluster --cluster <cluster-name>
상태의 abridged 뷰의 경우 다음을 실행합니다.
rosa list clusters
- 클러스터 상태가 "대기 중"에서 "설치"로 변경됩니다. 이 작업은 약 40분 정도 걸립니다.
- 상태가 "준비"로 변경되면 클러스터가 설치됩니다.
17.4.3.5. Red Hat Hybrid Cloud Console URL 가져오기
하이브리드 클라우드 콘솔 URL을 가져오려면 다음 명령을 실행합니다.
rosa describe cluster -c <cluster-name> | grep Console
이제 클러스터가 성공적으로 배포되었습니다. 다음 튜토리얼에서는 클러스터를 즉시 사용할 수 있도록 관리자 사용자를 생성하는 방법을 보여줍니다.
17.4.4. 튜토리얼: 간단한 UI 가이드
이 페이지에서는 UI(사용자 인터페이스)를 사용하여 ROSA 클러스터를 배포하는 최소 명령 목록을 간략하게 설명합니다.
이 간단한 배포는 튜토리얼 설정에 적합하지만 프로덕션에 사용되는 클러스터는 보다 자세한 방법으로 배포해야 합니다.
17.4.4.1. 사전 요구 사항
- 설치 튜토리얼에서 사전 요구 사항을 완료했습니다.
17.4.4.2. 계정 역할 생성
각 AWS 계정 및 Y-stream OpenShift 버전에 대해 다음 명령을 한 번 실행합니다.
rosa create account-roles --mode auto --yes
17.4.4.3. Red Hat OpenShift Cluster Manager 역할 생성
다음 명령을 실행하여 각 AWS 계정에 대해 하나의 OpenShift Cluster Manager 역할을 생성합니다.
rosa create ocm-role --mode auto --admin --yes
다음 명령을 실행하여 각 AWS 계정에 대해 하나의 OpenShift Cluster Manager 사용자 역할을 생성합니다.
rosa create user-role --mode auto --yes
- OpenShift Cluster Manager 를 사용하여 AWS 계정, 클러스터 옵션을 선택하고 배포를 시작합니다.
OpenShift Cluster Manager UI는 클러스터 상태를 표시합니다.
17.4.5. 튜토리얼: 자세한 UI 가이드
이 튜토리얼에서는 Red Hat OpenShift Cluster Manager UI(사용자 인터페이스)를 사용하여 AWS(ROSA) 클러스터에 Red Hat OpenShift Service를 배포하는 자세한 단계를 간략하게 설명합니다.
17.4.5.1. 배포 워크플로
전체 배포 워크플로는 다음 단계를 따릅니다.
- 계정 전체 역할 및 정책을 생성합니다.
AWS 계정을 Red Hat 계정과 연결합니다.
- Red Hat OpenShift Cluster Manager 역할을 생성하고 연결합니다.
- 사용자 역할을 생성하고 연결합니다.
- 클러스터를 생성합니다.
1단계는 AWS 계정에 처음 배포하는 경우에만 수행해야 합니다. 2 단계는 UI를 처음 사용하는 경우에만 수행해야 합니다. 동일한 y-stream 버전의 연속 클러스터의 경우 클러스터를 생성하기만 하면 됩니다.
17.4.5.2. 계정 전체 역할 생성
이전 배포의 계정 역할이 이미 있는 경우 이 단계를 건너뜁니다. 연결된 AWS 계정을 선택한 후 UI가 기존 역할을 감지합니다.
이 계정에 ROSA를 처음 배포하고 계정 역할을 아직 생성하지 않은 경우 Operator 정책을 포함하여 계정 전체 역할 및 정책을 생성합니다.
터미널에서 다음 명령을 실행하여 계정 전체 역할을 생성합니다.
$ rosa create account-roles --mode auto --yes
출력 예
I: Creating roles using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-ControlPlane-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role' I: Created role 'ManagedOpenShift-Worker-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role' I: Created role 'ManagedOpenShift-Support-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role' I: Created role 'ManagedOpenShift-Installer-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-machine-api-aws-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cloud-credential-operator-cloud-crede' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-ingress-operator-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cluster-csi-drivers-ebs-cloud-credent' I: To create a cluster with these roles, run the following command: rosa create cluster --sts
17.4.5.3. AWS 계정과 Red Hat 계정 연결
이 단계에서는 ROSA를 배포할 때 사용할 AWS 계정을 OpenShift Cluster Manager에 지시합니다.
이미 AWS 계정을 연결한 경우 이 단계를 건너뜁니다.
- OpenShift Cluster Manager 를 방문하여 Red Hat Hybrid Cloud Console을 열고 Red Hat 계정에 로그인합니다.
- 클러스터 생성을 클릭합니다.
AWS(ROSA)의 Red Hat OpenShift Service로 아래로 스크롤하고 Create Cluster 를 클릭합니다.
드롭다운 메뉴가 표시됩니다. 웹 인터페이스 를 클릭합니다.
"AWS 컨트롤 플레인 유형 선택"에서 Classic 을 선택합니다. 그런 다음 다음을 클릭합니다.
- 연결된 AWS 인프라 계정 에서 드롭 박스를 클릭합니다. AWS 계정을 아직 연결하지 않은 경우 dropbox가 비어 있을 수 있습니다.
새 AWS 계정을 연결하는 방법을 클릭합니다.
사이드바는 새 AWS 계정을 연결하는 데 필요한 지침과 함께 표시됩니다.
17.4.5.4. OpenShift Cluster Manager 역할 생성 및 연결
다음 명령을 실행하여 OpenShift Cluster Manager 역할이 있는지 확인합니다.
$ rosa list ocm-role
UI에는 두 가지 수준의 권한으로 OpenShift Cluster Manager 역할을 생성하는 명령이 표시됩니다.
- 기본 OpenShift Cluster Manager 역할: OpenShift Cluster Manager에서 계정에 대한 읽기 전용 액세스 권한을 부여하여 클러스터를 생성하기 전에 ROSA에 필요한 역할과 정책이 있는지 확인할 수 있습니다. CLI를 사용하여 필요한 역할, 정책 및 OIDC 공급자를 수동으로 생성해야 합니다.
admin OpenShift Cluster Manager 역할: OpenShift Cluster Manager 추가 권한을 부여하여 ROSA에 필요한 역할, 정책 및 OIDC 공급자를 생성합니다. 이를 사용하면 OpenShift Cluster Manager에서 필요한 리소스를 생성할 수 있으므로 ROSA 클러스터를 더 빠르게 배포할 수 있습니다.
이러한 역할에 대한 자세한 내용은 문서의 OpenShift Cluster Manager 역할 및 권한 섹션을 참조하십시오.
이 튜토리얼의 목적을 위해 가장 빠르고 간단한 접근 방식으로 Admin OpenShift Cluster Manager 역할을 사용합니다.
명령을 복사하여 사이드바에서 Admin OpenShift Cluster Manager 역할을 생성하거나 터미널로 전환하고 다음 명령을 입력합니다.
$ rosa create ocm-role --mode auto --admin --yes
이 명령은 OpenShift Cluster Manager 역할을 생성하여 Red Hat 계정과 연결합니다.
출력 예
I: Creating ocm role I: Creating role using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-OCM-Role-12561000' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-OCM-Role-12561000' I: Linking OCM role I: Successfully linked role-arn 'arn:aws:iam::000000000000:role/ManagedOpenShift-OCM-Role-12561000' with organization account '1MpZfntsZeUdjWHg7XRgP000000'
- 2단계: 사용자 역할을 클릭합니다.
17.4.5.4.1. 기타 OpenShift Cluster Manager 역할 생성 옵션
수동 모드: AWS CLI 명령을 직접 실행하려는 경우
auto
대신 모드를manual
로 정의할 수 있습니다. CLI는 AWS 명령을 출력하고 관련 JSON 파일은 현재 디렉터리에 생성됩니다.다음 명령을 사용하여 수동 모드에서 OpenShift Cluster Manager 역할을 생성합니다.
$ rosa create ocm-role --mode manual --admin --yes
기본 OpenShift Cluster Manager 역할: OpenShift Cluster Manager에서 계정에 대한 읽기 전용 액세스 권한을 부여하려면 기본 OpenShift Cluster Manager 역할을 생성합니다. 그런 다음 CLI를 사용하여 필요한 역할, 정책 및 OIDC 공급자를 수동으로 생성해야 합니다.
다음 명령을 사용하여 기본 OpenShift Cluster Manager 역할을 생성합니다.
$ rosa create ocm-role --mode auto --yes
17.4.5.5. OpenShift Cluster Manager 사용자 역할 생성
사용자 역할 문서에 정의된 대로 ROSA가 AWS ID를 확인할 수 있도록 사용자 역할을 생성해야 합니다. 이 역할에는 권한이 없으며 설치 프로그램 계정과 OpenShift Cluster Manager 역할 리소스 간에 신뢰 관계를 생성하는 데만 사용됩니다.
다음 명령을 실행하여 사용자 역할이 이미 있는지 확인합니다.
$ rosa list user-role
다음 명령을 실행하여 사용자 역할을 생성하고 이를 Red Hat 계정에 연결합니다.
$ rosa create user-role --mode auto --yes
출력 예
I: Creating User role I: Creating ocm user role using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-User-rosa-user-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-User-rosa-user-Role' I: Linking User role I: Successfully linked role ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-User-rosa-user-Role' with account '1rbOQez0z5j1YolInhcXY000000'
참고이전과 마찬가지로 AWS CLI 명령을 직접 실행하려는 경우
--mode 설명서
를 정의할 수 있습니다. CLI는 AWS 명령을 출력하고 관련 JSON 파일은 현재 디렉터리에 생성됩니다. 역할을 연결해야 합니다.- 3단계: 계정 역할을 클릭합니다.
17.4.5.6. 계정 역할 생성
다음 명령을 실행하여 계정 역할을 생성합니다.
$ rosa create account-roles --mode auto
- OK 를 클릭하여 사이드바를 닫습니다.
17.4.5.7. 성공적인 계정 연결 확인
- 이제 Associated AWS 인프라 계정 드롭다운 메뉴에서 AWS 계정이 표시됩니다. 계정이 표시되면 계정 연결에 성공했습니다.
- 계정을 선택합니다.
아래에 채워진 계정 역할 ARN이 표시됩니다.
- 다음을 클릭합니다.
17.4.5.8. 클러스터 생성
이 튜토리얼의 목적을 위해 다음과 같이 선택합니다.
클러스터 설정
- 클러스터 이름: & lt;pick a name\>
- 버전: & lt;select latest version\>
- region: & lt;select region\>
- 가용성: 단일 영역
- 사용자 워크로드 모니터링 활성화: 체크 아웃
- 추가 etcd 암호화 활성화: 선택되지 않은 상태로 두십시오.
- 고객 키를 사용하여 영구 볼륨 암호화: 선택되지 않은 상태로 둡니다.
- 다음을 클릭합니다.
머신 풀의 기본 설정을 그대로 둡니다.
기본 머신 풀 설정
- 컴퓨팅 노드 인스턴스 유형: m5.xlarge - 4 vCPU 16GiB RAM
- 자동 스케일링 활성화: 선택되지 않음
- 컴퓨팅 노드 수: 2
- 노드 레이블을 비워 둡니다
- 다음을 클릭합니다.
17.4.5.8.1. 네트워킹
- 구성의 기본값을 모두 그대로 둡니다.
- 다음을 클릭합니다.
- CIDR 범위의 기본값을 모두 그대로 둡니다.
- 다음을 클릭합니다.
17.4.5.8.2. 클러스터 역할 및 정책
이 튜토리얼의 경우 Auto 를 선택된 상태로 둡니다. 클러스터 배포 프로세스를 더 쉽고 빠르게 수행할 수 있습니다.
이전에 기본 OpenShift Cluster Manager 역할을 선택한 경우 수동 모드만 사용할 수 있습니다. Operator 역할 및 OIDC 공급자를 수동으로 생성해야 합니다. "클러스터 업데이트" 섹션을 완료하고 클러스터 생성을 시작한 후 아래의 "기본 OpenShift Cluster Manager 역할" 섹션을 참조하십시오.
17.4.5.8.3. 클러스터 업데이트
- 이 섹션의 모든 옵션을 기본값으로 둡니다.
17.4.5.8.4. 클러스터 검토 및 생성
- 클러스터 구성의 콘텐츠를 검토합니다.
- 클러스터 생성을 클릭합니다.
17.4.5.8.5. 설치 진행 상황 모니터링
현재 페이지를 방문하여 설치 진행 상황을 모니터링합니다. 약 40분 정도 소요됩니다.
17.4.5.9. 기본 OpenShift Cluster Manager 역할
위에서 설명한 Admin OpenShift Cluster Manager 역할을 생성한 경우 전체 섹션을 무시합니다. OpenShift Cluster Manager가 리소스를 생성합니다.
이전에 기본 OpenShift Cluster Manager 역할을 생성한 경우 클러스터 설치를 계속하기 전에 두 개의 요소를 수동으로 생성해야 합니다.
- Operator 역할
- OIDC 공급자
17.4.5.9.1. Operator 역할 생성
팝업 창에 실행할 명령이 표시됩니다.
터미널의 창에서 명령을 실행하여 대화형 모드를 시작합니다. 또는 간단히 하려면 다음 명령을 실행하여 Operator 역할을 생성합니다.
$ rosa create operator-roles --mode auto --cluster <cluster-name> --yes
출력 예
I: Creating roles using 'arn:aws:iam::000000000000:user/rosauser' I: Created role 'rosacluster-b736-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-ingress-operator-cloud-credentials' I: Created role 'rosacluster-b736-openshift-cluster-csi-drivers-ebs-cloud-credent' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-cluster-csi-drivers-ebs-cloud-credent' I: Created role 'rosacluster-b736-openshift-cloud-network-config-controller-cloud' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-cloud-network-config-controller-cloud' I: Created role 'rosacluster-b736-openshift-machine-api-aws-cloud-credentials' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-machine-api-aws-cloud-credentials' I: Created role 'rosacluster-b736-openshift-cloud-credential-operator-cloud-crede' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-cloud-credential-operator-cloud-crede' I: Created role 'rosacluster-b736-openshift-image-registry-installer-cloud-creden' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-image-registry-installer-cloud-creden'
17.4.5.9.2. OIDC 공급자 생성
터미널에서 다음 명령을 실행하여 OIDC 공급자를 생성합니다.
$ rosa create oidc-provider --mode auto --cluster <cluster-name> --yes
출력 예
I: Creating OIDC provider using 'arn:aws:iam::000000000000:user/rosauser' I: Created OIDC provider with ARN 'arn:aws:iam::000000000000:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/1tt4kvrr2kha2rgs8gjfvf0000000000'
17.4.6. 튜토리얼: 호스팅 컨트롤 플레인 (HCP) 가이드
이 워크샵에 따라 호스팅되는 컨트롤 플레인(HCP) 클러스터가 있는 AWS(ROSA)에 샘플 Red Hat OpenShift Service를 배포합니다. 그런 다음 다음 튜토리얼에서 클러스터를 사용할 수 있습니다.
튜토리얼 목표
클러스터 사전 요구 사항을 생성하는 방법을 알아봅니다.
- 샘플 VPC(가상 프라이빗 클라우드) 생성
- 샘플 OpenID Connect(OIDC) 리소스 생성
- 환경 변수 샘플 생성
- 샘플 ROSA 클러스터 배포
사전 요구 사항
- ROSA 버전 1.2.31 이상
- AWS(Amazon Web Service) CLI(명령줄 인터페이스)
-
ROSA CLI (
rosa
)
17.4.6.1. 클러스터 사전 요구 사항 생성
HCP 클러스터를 사용하여 ROSA를 배포하기 전에 VPC 및 OIDC 리소스가 모두 있어야 합니다. 먼저 이러한 리소스를 만들 것입니다. ROSA는 BYO-VPC(Bring Your Own VPC) 모델을 사용합니다.
17.4.6.1.1. VPC 생성
ROSA를 사용할 수 있는 리전을 사용하도록 AWS CLI(
aws
)가 구성되어 있는지 확인합니다. 다음 명령을 실행하여 AWS CLI에서 지원하는 리전을 참조하십시오.$ rosa list regions --hosted-cp
VPC를 생성합니다. 이 튜토리얼의 경우 다음 스크립트 는 VPC 및 필요한 구성 요소를 생성합니다.
aws
CLI에 구성된 리전을 사용합니다.#!/bin/bash set -e ########## # This script will create the network requirements for a ROSA cluster. This will be # a public cluster. This creates: # - VPC # - Public and private subnets # - Internet Gateway # - Relevant route tables # - NAT Gateway # # This will automatically use the region configured for the aws cli # ########## VPC_CIDR=10.0.0.0/16 PUBLIC_CIDR_SUBNET=10.0.1.0/24 PRIVATE_CIDR_SUBNET=10.0.0.0/24 # Create VPC echo -n "Creating VPC..." VPC_ID=$(aws ec2 create-vpc --cidr-block $VPC_CIDR --query Vpc.VpcId --output text) # Create tag name aws ec2 create-tags --resources $VPC_ID --tags Key=Name,Value=$CLUSTER_NAME # Enable dns hostname aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-hostnames echo "done." # Create Public Subnet echo -n "Creating public subnet..." PUBLIC_SUBNET_ID=$(aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block $PUBLIC_CIDR_SUBNET --query Subnet.SubnetId --output text) aws ec2 create-tags --resources $PUBLIC_SUBNET_ID --tags Key=Name,Value=$CLUSTER_NAME-public echo "done." # Create private subnet echo -n "Creating private subnet..." PRIVATE_SUBNET_ID=$(aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block $PRIVATE_CIDR_SUBNET --query Subnet.SubnetId --output text) aws ec2 create-tags --resources $PRIVATE_SUBNET_ID --tags Key=Name,Value=$CLUSTER_NAME-private echo "done." # Create an internet gateway for outbound traffic and attach it to the VPC. echo -n "Creating internet gateway..." IGW_ID=$(aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text) echo "done." aws ec2 create-tags --resources $IGW_ID --tags Key=Name,Value=$CLUSTER_NAME aws ec2 attach-internet-gateway --vpc-id $VPC_ID --internet-gateway-id $IGW_ID > /dev/null 2>&1 echo "Attached IGW to VPC." # Create a route table for outbound traffic and associate it to the public subnet. echo -n "Creating route table for public subnet..." PUBLIC_ROUTE_TABLE_ID=$(aws ec2 create-route-table --vpc-id $VPC_ID --query RouteTable.RouteTableId --output text) aws ec2 create-tags --resources $PUBLIC_ROUTE_TABLE_ID --tags Key=Name,Value=$CLUSTER_NAME echo "done." aws ec2 create-route --route-table-id $PUBLIC_ROUTE_TABLE_ID --destination-cidr-block 0.0.0.0/0 --gateway-id $IGW_ID > /dev/null 2>&1 echo "Created default public route." aws ec2 associate-route-table --subnet-id $PUBLIC_SUBNET_ID --route-table-id $PUBLIC_ROUTE_TABLE_ID > /dev/null 2>&1 echo "Public route table associated" # Create a NAT gateway in the public subnet for outgoing traffic from the private network. echo -n "Creating NAT Gateway..." NAT_IP_ADDRESS=$(aws ec2 allocate-address --domain vpc --query AllocationId --output text) NAT_GATEWAY_ID=$(aws ec2 create-nat-gateway --subnet-id $PUBLIC_SUBNET_ID --allocation-id $NAT_IP_ADDRESS --query NatGateway.NatGatewayId --output text) aws ec2 create-tags --resources $NAT_IP_ADDRESS --resources $NAT_GATEWAY_ID --tags Key=Name,Value=$CLUSTER_NAME sleep 10 echo "done." # Create a route table for the private subnet to the NAT gateway. echo -n "Creating a route table for the private subnet to the NAT gateway..." PRIVATE_ROUTE_TABLE_ID=$(aws ec2 create-route-table --vpc-id $VPC_ID --query RouteTable.RouteTableId --output text) aws ec2 create-tags --resources $PRIVATE_ROUTE_TABLE_ID $NAT_IP_ADDRESS --tags Key=Name,Value=$CLUSTER_NAME-private aws ec2 create-route --route-table-id $PRIVATE_ROUTE_TABLE_ID --destination-cidr-block 0.0.0.0/0 --gateway-id $NAT_GATEWAY_ID > /dev/null 2>&1 aws ec2 associate-route-table --subnet-id $PRIVATE_SUBNET_ID --route-table-id $PRIVATE_ROUTE_TABLE_ID > /dev/null 2>&1 echo "done." # echo "***********VARIABLE VALUES*********" # echo "VPC_ID="$VPC_ID # echo "PUBLIC_SUBNET_ID="$PUBLIC_SUBNET_ID # echo "PRIVATE_SUBNET_ID="$PRIVATE_SUBNET_ID # echo "PUBLIC_ROUTE_TABLE_ID="$PUBLIC_ROUTE_TABLE_ID # echo "PRIVATE_ROUTE_TABLE_ID="$PRIVATE_ROUTE_TABLE_ID # echo "NAT_GATEWAY_ID="$NAT_GATEWAY_ID # echo "IGW_ID="$IGW_ID # echo "NAT_IP_ADDRESS="$NAT_IP_ADDRESS echo "Setup complete." echo "" echo "To make the cluster create commands easier, please run the following commands to set the environment variables:" echo "export PUBLIC_SUBNET_ID=$PUBLIC_SUBNET_ID" echo "export PRIVATE_SUBNET_ID=$PRIVATE_SUBNET_ID"
추가 리소스
- VPC 요구 사항에 대한 자세한 내용은 VPC 설명서 를 참조하십시오.
스크립트는 명령을 출력합니다. 나중에 사용할 서브넷 ID를 저장하려면 명령을 환경 변수로 설정합니다. 명령을 복사하고 실행합니다.
$ export PUBLIC_SUBNET_ID=$PUBLIC_SUBNET_ID $ export PRIVATE_SUBNET_ID=$PRIVATE_SUBNET_ID
다음 명령을 실행하여 환경 변수를 확인합니다.
$ echo "Public Subnet: $PUBLIC_SUBNET_ID"; echo "Private Subnet: $PRIVATE_SUBNET_ID"
출력 예
Public Subnet: subnet-0faeeeb0000000000 Private Subnet: subnet-011fe340000000000
17.4.6.1.2. OIDC 구성 생성
이 튜토리얼에서는 OIDC 구성을 생성할 때 자동 모드를 사용합니다. 또한 나중에 사용할 수 있도록 OIDC ID를 환경 변수로 저장합니다. 명령은 ROSA CLI를 사용하여 클러스터의 고유한 OIDC 구성을 생성합니다.
다음 명령을 실행하여 OIDC 구성을 생성합니다.
$ export OIDC_ID=$(rosa create oidc-config --mode auto --managed --yes -o json | jq -r '.id')
17.4.6.2. 추가 환경 변수 생성
다음 명령을 실행하여 환경 변수를 설정합니다. 이러한 변수를 사용하면 명령을 실행하여 ROSA 클러스터를 더 쉽게 생성할 수 있습니다.
$ export CLUSTER_NAME=<cluster_name> $ export REGION=<VPC_region>
작은 정보rosa whoami
를 실행하여 VPC 리전을 찾습니다.
17.4.6.3. 클러스터 생성
선택 사항: 다음 명령을 실행하여 Operator 정책 및 AWS IAM 역할 및 정책을 포함하여 계정 전체 역할 및 정책을 생성합니다.
중요이 계정에 ROSA를 처음 배포하고 아직 계정 역할 및 정책을 생성하지 않은 경우에만 이 단계를 완료합니다.
$ rosa create account-roles --mode auto --yes
다음 명령을 실행하여 클러스터를 생성합니다.
$ rosa create cluster --cluster-name $CLUSTER_NAME \ --subnet-ids ${PUBLIC_SUBNET_ID},${PRIVATE_SUBNET_ID} \ --hosted-cp \ --region $REGION \ --oidc-config-id $OIDC_ID \ --sts --mode auto --yes
약 10분 후에 클러스터가 준비되었습니다. 클러스터에는 선택한 리전에서 세 개의 AWS 가용성 영역에 걸쳐 컨트롤 플레인이 있으며 AWS 계정에 두 개의 작업자 노드를 생성합니다.
17.4.6.4. 설치 상태 확인
다음 명령 중 하나를 실행하여 클러스터 상태를 확인합니다.
클러스터 상태에 대한 자세한 보기를 보려면 다음을 실행합니다.
$ rosa describe cluster --cluster $CLUSTER_NAME
클러스터 상태에 대한 abridged 뷰의 경우 다음을 실행합니다.
$ rosa list clusters
로그가 진행 중인 것을 확인하려면 다음을 실행합니다.
$ rosa logs install --cluster $CLUSTER_NAME --watch
- 상태가 "준비"로 변경되면 클러스터가 설치됩니다. 작업자 노드가 온라인 상태가 되는 데 몇 분이 더 걸릴 수 있습니다.