5장. 호스팅된 컨트롤 플레인 관리
5.1. AWS에서 호스팅된 제어 평면 관리 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Web Services(AWS)에서 OpenShift Container Platform에 호스팅된 제어 평면을 사용하는 경우 인프라 요구 사항은 설정에 따라 달라집니다.
5.1.1. AWS 인프라 및 IAM 권한을 관리하기 위한 필수 조건 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Web Services(AWS)에서 OpenShift Container Platform에 대한 호스팅 제어 평면을 구성하려면 다음 인프라 요구 사항을 충족해야 합니다.
- 호스팅 클러스터를 생성하기 전에 호스팅 제어 평면을 구성해야 합니다.
- AWS Identity and Access Management(IAM) 역할과 AWS Security Token Service(STS) 자격 증명을 생성했습니다.
5.1.1.1. AWS 인프라 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Web Services(AWS)에서 호스팅된 제어 평면을 사용하는 경우 인프라 요구 사항은 다음 범주에 해당합니다.
- 임의의 AWS 계정에서 HyperShift Operator를 위한 사전 요구 사항 및 관리되지 않는 인프라
- 호스팅된 클러스터 AWS 계정의 필수 및 관리되지 않는 인프라
- 관리 AWS 계정의 호스팅 제어 플레인 관리 인프라
- 호스팅된 클러스터 AWS 계정의 호스팅 제어 플레인 관리 인프라
- 호스팅된 클러스터 AWS 계정의 Kubernetes 관리 인프라
필수 조건은 호스팅된 제어 평면이 제대로 작동하려면 AWS 인프라가 필요하다는 것을 의미합니다. 관리되지 않는다는 것은 운영자나 관리자가 사용자를 위해 인프라를 생성하지 않는다는 것을 의미합니다.
5.1.1.2. AWS 계정의 HyperShift Operator에 대한 관리되지 않는 인프라 링크 복사링크가 클립보드에 복사되었습니다!
임의의 Amazon Web Services(AWS) 계정은 호스팅된 제어 평면 서비스 제공자에 따라 달라집니다.
자체 관리형 호스팅 제어 평면에서는 클러스터 서비스 공급자가 AWS 계정을 제어합니다. 클러스터 서비스 제공자는 클러스터 제어 평면을 호스팅하고 가동 시간에 대한 책임을 지는 관리자입니다. 관리형 호스팅 제어 평면에서 AWS 계정은 Red Hat에 속합니다.
HyperShift Operator의 필수 및 관리되지 않는 인프라에서 관리 클러스터 AWS 계정에 대한 다음 인프라 요구 사항이 적용됩니다.
S3 버킷 1개
- OpenID Connect(OIDC)
53번 국도 호스팅 구역
- 호스팅된 클러스터에 대한 개인 및 공개 항목을 호스팅하는 도메인
5.1.1.3. 관리 AWS 계정에 대한 관리되지 않는 인프라 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
인프라가 호스팅 클러스터 Amazon Web Services(AWS) 계정에서 사전 요구되고 관리되지 않는 경우 모든 액세스 모드에 대한 인프라 요구 사항은 다음과 같습니다.
- 하나의 VPC
- 하나의 DHCP 옵션
두 개의 서브넷
- 내부 데이터 플레인 서브넷인 개인 서브넷
- 데이터 플레인에서 인터넷에 액세스할 수 있도록 하는 공용 서브넷
- 하나의 인터넷 게이트웨이
- 하나의 탄력적 IP
- 하나의 NAT 게이트웨이
- 하나의 보안 그룹(워커 노드)
- 두 개의 경로 테이블(하나는 비공개이고 하나는 공개)
- 2개의 Route 53 호스팅 구역
다음 품목에 대한 할당량이 충분합니다.
- 공용 호스팅 클러스터를 위한 하나의 Ingress 서비스 로드 밸런서
- 개인 호스팅 클러스터를 위한 하나의 개인 링크 엔드포인트
개인 링크 네트워킹이 작동하려면 호스팅 클러스터 AWS 계정의 엔드포인트 영역이 관리 클러스터 AWS 계정의 서비스 엔드포인트에서 확인되는 인스턴스의 영역과 일치해야 합니다. AWS에서 영역 이름은 us-east-2b와 같은 별칭이며, 반드시 다른 계정의 동일한 영역에 매핑되는 것은 아닙니다. 결과적으로 개인 링크가 작동하려면 관리 클러스터에 해당 지역의 모든 영역에 서브넷이나 작업자가 있어야 합니다.
5.1.1.4. 관리 AWS 계정에 대한 인프라 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
인프라가 관리 AWS 계정의 호스팅된 제어 평면에 의해 관리되는 경우, 클러스터가 공개형, 비공개형 또는 이들의 조합형인지에 따라 인프라 요구 사항이 달라집니다.
공개 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
네트워크 로드 밸런서: Kube API 서버 로드 밸런서
- 쿠버네티스는 보안 그룹을 생성합니다.
볼륨
- etcd의 경우(고가용성에 따라 1개 또는 3개)
- OVN-Kube용
개인 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
- 네트워크 로드 밸런서: 로드 밸런서 개인 라우터
- 엔드포인트 서비스(개인 링크)
공개 및 비공개 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
- 네트워크 로드 밸런서: 로드 밸런서 공용 라우터
- 네트워크 로드 밸런서: 로드 밸런서 개인 라우터
- 엔드포인트 서비스(개인 링크)
볼륨
- etcd의 경우(고가용성에 따라 1개 또는 3개)
- OVN-Kube용
5.1.1.5. 호스팅 클러스터의 AWS 계정에 대한 인프라 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
인프라가 호스팅 클러스터 Amazon Web Services(AWS) 계정의 호스팅 제어 평면에서 관리되는 경우, 클러스터가 공개, 비공개 또는 조합인지에 따라 인프라 요구 사항이 달라집니다.
공개 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
-
노드 풀에는
Role
과RolePolicy
가 정의된 EC2 인스턴스가 있어야 합니다.
개인 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
- 각 가용성 영역에 대한 하나의 개인 링크 엔드포인트
- 노드 풀을 위한 EC2 인스턴스
공개 및 비공개 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
- 각 가용성 영역에 대한 하나의 개인 링크 엔드포인트
- 노드 풀을 위한 EC2 인스턴스
5.1.1.6. 호스팅된 클러스터 AWS 계정의 Kubernetes 관리 인프라 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes가 호스팅된 클러스터 Amazon Web Services(AWS) 계정에서 인프라를 관리하는 경우 인프라 요구 사항은 다음과 같습니다.
- 기본 Ingress를 위한 네트워크 로드 밸런서
- 레지스트리를 위한 S3 버킷
5.1.2. ID 및 액세스 관리(IAM) 권한 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 제어 평면의 컨텍스트에서 소비자는 Amazon 리소스 이름(ARN) 역할을 생성할 책임이 있습니다. 소비자는 권한 파일을 생성하는 자동화된 프로세스입니다. 소비자는 CLI 또는 OpenShift 클러스터 관리자일 수 있습니다. 호스팅된 제어 평면은 최소 권한 구성 요소의 원칙을 존중하기 위해 세분성을 활성화할 수 있습니다. 즉, 각 구성 요소는 자체 역할을 사용하여 Amazon Web Services(AWS) 객체를 작동하거나 생성하고 해당 역할은 제품이 정상적으로 작동하는 데 필요한 것으로 제한됩니다.
호스팅된 클러스터는 ARN 역할을 입력으로 받고 소비자는 각 구성 요소에 대한 AWS 권한 구성을 만듭니다. 결과적으로 해당 구성 요소는 STS 및 사전 구성된 OIDC IDP를 통해 인증할 수 있습니다.
다음 역할은 제어 평면에서 실행되고 데이터 평면에서 작동하는 호스팅된 제어 평면의 일부 구성 요소에 의해 사용됩니다.
-
controlPlaneOperatorARN
-
imageRegistryARN
-
ingressARN
-
kubeCloudControllerARN
-
nodePoolManagementARN
-
storageARN
-
networkARN
다음 예제에서는 호스팅된 클러스터의 IAM 역할에 대한 참조를 보여줍니다.
호스팅된 제어 평면이 사용하는 역할은 다음 예에서 표시됩니다.
ingressARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow imageRegistryARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow storageARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow networkARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubeCloudControllerARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nodePoolManagementARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow controlPlaneOperatorARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.3. AWS 인프라와 IAM 리소스를 별도로 생성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 hcp create cluster aws
명령은 호스팅된 클러스터로 클라우드 인프라를 생성하고 적용합니다. 클라우드 인프라 부분을 별도로 생성한 후 hcp create cluster aws
명령을 사용하여 클러스터만 생성하거나, 렌더링하여 적용하기 전에 수정할 수 있습니다.
클라우드 인프라 부분을 별도로 생성하려면 Amazon Web Services(AWS) 인프라를 생성하고, AWS Identity and Access(IAM) 리소스를 생성하고, 클러스터를 생성해야 합니다.
5.1.3.1. AWS 인프라를 별도로 생성 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Web Services(AWS) 인프라를 생성하려면 클러스터에 대한 VPC(가상 사설 클라우드) 및 기타 리소스를 생성해야 합니다. AWS 콘솔이나 인프라 자동화 및 프로비저닝 도구를 사용할 수 있습니다. AWS 콘솔을 사용하는 방법에 대한 자세한 내용은 AWS 설명서에서 VPC 및 기타 VPC 리소스 만들기를 참조하세요.
VPC에는 외부 액세스를 위한 개인 및 공용 서브넷과 리소스(예: 네트워크 주소 변환(NAT) 게이트웨이 및 인터넷 게이트웨이)가 포함되어야 합니다. VPC 외에도 클러스터의 유입을 위한 개인 호스팅 영역이 필요합니다. PrivateLink( Private
또는 PublicAndPrivate
액세스 모드)를 사용하는 클러스터를 생성하는 경우 PrivateLink에 대한 추가 호스팅 영역이 필요합니다.
다음 예제 구성을 사용하여 호스팅된 클러스터에 대한 AWS 인프라를 만듭니다.
- 1
<pull_secret_name>을
풀 시크릿의 이름으로 바꾸세요.- 2
<etcd_encryption_key_name>을
etcd 암호화 키의 이름으로 바꾸세요.- 3
<ssh_key_name>을
SSH 키 이름으로 바꾸세요.- 4
<hosted_cluster_name>을
호스팅 클러스터의 이름으로 바꾸세요.- 5
<dns_domain>을
example.com
과 같은 기본 DNS 도메인으로 바꾸세요.- 6
<infra_id>를
호스팅된 클러스터와 연결된 IAM 리소스를 식별하는 값으로 바꿉니다.- 7
<issuer_url>을
infra_id
값으로 끝나는 발급자 URL로 바꾸세요. 예를 들어,https://example-hosted-us-west-1.s3.us-west-1.amazonaws.com/example-hosted-infra-id
.- 8
<subnet_xxx>를
서브넷 ID로 바꾸세요. 개인 서브넷과 공용 서브넷 모두에 태그가 지정되어야 합니다. 공용 서브넷의 경우kubernetes.io/role/elb=1을
사용합니다. 개인 서브넷의 경우kubernetes.io/role/internal-elb=1을
사용합니다.- 9
<vpc_xxx>를
VPC ID로 바꾸세요.- 10
<node_pool_name>을
NodePool
리소스의 이름으로 바꾸세요.- 11
<instance_profile_name>을
AWS 인스턴스의 이름으로 바꾸세요.
5.1.3.2. AWS IAM 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Web Services(AWS)에서는 다음 IAM 리소스를 생성해야 합니다.
- STS 인증을 활성화하는 데 필요한 IAM의 OpenID Connect(OIDC) ID 공급자입니다 .
- Kubernetes 컨트롤러 관리자, 클러스터 API 공급자, 레지스트리와 같이 공급자와 상호 작용하는 모든 구성 요소에 대해 별도로 지정된 7가지 역할
- 클러스터의 모든 작업자 인스턴스에 할당되는 프로필인 인스턴스 프로필
5.1.3.3. 호스팅 클러스터를 별도로 생성 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Web Services(AWS)에서 호스팅 클러스터를 별도로 생성할 수 있습니다.
호스팅된 클러스터를 별도로 생성하려면 다음 명령을 입력하세요.
- 1
<infra_id>를
create infra aws
명령에서 지정한 것과 동일한 ID로 바꾸세요. 이 값은 호스팅된 클러스터와 연결된 IAM 리소스를 식별합니다.- 2
<hosted_cluster_name>을
호스팅 클러스터의 이름으로 바꾸세요.- 3
<path_to_sts_credential_file>을
create infra aws
명령에서 지정한 것과 동일한 이름으로 바꾸세요.- 4
<path_to_pull_secret>을
유효한 OpenShift Container Platform 풀 비밀이 포함된 파일 이름으로 바꾸세요.- 5
--generate-ssh
플래그는 선택 사항이지만, 작업자에 SSH를 사용해야 하는 경우 포함하는 것이 좋습니다. SSH 키가 생성되어 호스팅된 클러스터와 동일한 네임스페이스에 비밀로 저장됩니다.- 6
<role_name>을
Amazon 리소스 이름(ARN)으로 바꿉니다(예:arn:aws:iam::820196288204:role/myrole
). Amazon 리소스 이름(ARN)을 지정합니다(예:arn:aws:iam::820196288204:role/myrole
). ARN 역할에 대한 자세한 내용은 "IAM(ID 및 액세스 관리) 권한"을 참조하세요.
명령에 --render
플래그를 추가하고 클러스터에 적용하기 전에 리소스를 편집할 수 있는 파일로 출력을 리디렉션할 수도 있습니다.
명령을 실행하면 다음 리소스가 클러스터에 적용됩니다.
- 네임스페이스
- 당신의 풀 시크릿을 이용한 비밀
-
A
HostedCluster
-
A
NodePool
- 제어 평면 구성 요소를 위한 세 가지 AWS STS 비밀
-
--generate-ssh
플래그를 지정한 경우 SSH 키 비밀 하나가 생성됩니다.
5.1.4. 단일 아키텍처에서 다중 아키텍처로 호스팅 클러스터 전환 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Web Services(AWS)에서 단일 아키텍처 64비트 AMD 호스팅 클러스터를 다중 아키텍처 호스팅 클러스터로 전환하면 클러스터에서 워크로드를 실행하는 데 드는 비용을 줄일 수 있습니다. 예를 들어, 64비트 ARM으로 전환하는 동안 64비트 AMD에서 기존 워크로드를 실행할 수 있으며, 이러한 워크로드를 중앙 Kubernetes 클러스터에서 관리할 수 있습니다.
단일 아키텍처 호스팅 클러스터는 특정 CPU 아키텍처 하나만의 노드 풀을 관리할 수 있습니다. 하지만 다중 아키텍처 호스팅 클러스터는 서로 다른 CPU 아키텍처를 갖춘 노드 풀을 관리할 수 있습니다. AWS에서는 다중 아키텍처 호스팅 클러스터가 64비트 AMD와 64비트 ARM 노드 풀을 모두 관리할 수 있습니다.
사전 요구 사항
- Kubernetes Operator용 멀티클러스터 엔진이 포함된 Red Hat Advanced Cluster Management(RHACM)에서 AWS용 OpenShift Container Platform 관리 클러스터를 설치했습니다.
- OpenShift Container Platform 릴리스 페이로드의 64비트 AMD 변형을 사용하는 기존 단일 아키텍처 호스팅 클러스터가 있습니다.
- OpenShift Container Platform 릴리스 페이로드의 동일한 64비트 AMD 변형을 사용하고 기존 호스팅 클러스터에서 관리되는 기존 노드 풀입니다.
다음 명령줄 도구를 설치했는지 확인하세요.
-
oc
-
kubectl
-
hcp
-
skopeo
-
프로세스
다음 명령을 실행하여 단일 아키텍처 호스팅 클러스터의 기존 OpenShift Container Platform 릴리스 이미지를 검토하세요.
oc get hostedcluster/<hosted_cluster_name> \ -o jsonpath='{.spec.release.image}'
$ oc get hostedcluster/<hosted_cluster_name> \
1 -o jsonpath='{.spec.release.image}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<hosted_cluster_name>을
호스팅 클러스터 이름으로 바꾸세요.
출력 예
quay.io/openshift-release-dev/ocp-release:<4.y.z>-x86_64
quay.io/openshift-release-dev/ocp-release:<4.y.z>-x86_64
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<4.yz>를
사용하는 지원되는 OpenShift Container Platform 버전으로 바꾸세요.
OpenShift Container Platform 릴리스 이미지에서 태그 대신 다이제스트를 사용하는 경우 릴리스 이미지의 다중 아키텍처 태그 버전을 찾으세요.
다음 명령을 실행하여 OpenShift Container Platform 버전에 대한
OCP_VERSION
환경 변수를 설정합니다.OCP_VERSION=$(oc image info quay.io/openshift-release-dev/ocp-release@sha256:ac78ebf77f95ab8ff52847ecd22592b545415e1ff6c7ff7f66bf81f158ae4f5e \ -o jsonpath='{.config.config.Labels["io.openshift.release"]}')
$ OCP_VERSION=$(oc image info quay.io/openshift-release-dev/ocp-release@sha256:ac78ebf77f95ab8ff52847ecd22592b545415e1ff6c7ff7f66bf81f158ae4f5e \ -o jsonpath='{.config.config.Labels["io.openshift.release"]}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 릴리스 이미지의 다중 아키텍처 태그 버전에 대한
MULTI_ARCH_TAG
환경 변수를 설정합니다.MULTI_ARCH_TAG=$(skopeo inspect docker://quay.io/openshift-release-dev/ocp-release@sha256:ac78ebf77f95ab8ff52847ecd22592b545415e1ff6c7ff7f66bf81f158ae4f5e \ | jq -r '.RepoTags' | sed 's/"//g' | sed 's/,//g' \ | grep -w "$OCP_VERSION-multi$" | xargs)
$ MULTI_ARCH_TAG=$(skopeo inspect docker://quay.io/openshift-release-dev/ocp-release@sha256:ac78ebf77f95ab8ff52847ecd22592b545415e1ff6c7ff7f66bf81f158ae4f5e \ | jq -r '.RepoTags' | sed 's/"//g' | sed 's/,//g' \ | grep -w "$OCP_VERSION-multi$" | xargs)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 다중 아키텍처 릴리스 이미지 이름에 대한
IMAGE
환경 변수를 설정합니다.IMAGE=quay.io/openshift-release-dev/ocp-release:$MULTI_ARCH_TAG
$ IMAGE=quay.io/openshift-release-dev/ocp-release:$MULTI_ARCH_TAG
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다중 아키텍처 이미지 다이제스트 목록을 보려면 다음 명령을 실행하세요.
oc image info $IMAGE
$ oc image info $IMAGE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
OS DIGEST linux/amd64 sha256:b4c7a91802c09a5a748fe19ddd99a8ffab52d8a31db3a081a956a87f22a22ff8 linux/ppc64le sha256:66fda2ff6bd7704f1ba72be8bfe3e399c323de92262f594f8e482d110ec37388 linux/s390x sha256:b1c1072dc639aaa2b50ec99b530012e3ceac19ddc28adcbcdc9643f2dfd14f34 linux/arm64 sha256:7b046404572ac96202d82b6cb029b421dddd40e88c73bbf35f602ffc13017f21
OS DIGEST linux/amd64 sha256:b4c7a91802c09a5a748fe19ddd99a8ffab52d8a31db3a081a956a87f22a22ff8 linux/ppc64le sha256:66fda2ff6bd7704f1ba72be8bfe3e399c323de92262f594f8e482d110ec37388 linux/s390x sha256:b1c1072dc639aaa2b50ec99b530012e3ceac19ddc28adcbcdc9643f2dfd14f34 linux/arm64 sha256:7b046404572ac96202d82b6cb029b421dddd40e88c73bbf35f602ffc13017f21
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
호스팅된 클러스터를 단일 아키텍처에서 다중 아키텍처로 전환:
호스팅된 클러스터에 대해 다중 아키텍처 OpenShift Container Platform 릴리스 이미지를 설정하려면 호스팅된 클러스터와 동일한 OpenShift Container Platform 버전을 사용해야 합니다. 다음 명령을 실행합니다.
oc patch -n clusters hostedclusters/<hosted_cluster_name> -p \ '{"spec":{"release":{"image":"quay.io/openshift-release-dev/ocp-release:<4.x.y>-multi"}}}' \ --type=merge
$ oc patch -n clusters hostedclusters/<hosted_cluster_name> -p \ '{"spec":{"release":{"image":"quay.io/openshift-release-dev/ocp-release:<4.x.y>-multi"}}}' \
1 --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<4.yz>를
사용하는 지원되는 OpenShift Container Platform 버전으로 바꾸세요.
다음 명령을 실행하여 호스팅된 클러스터에 다중 아키텍처 이미지가 설정되었는지 확인하세요.
oc get hostedcluster/<hosted_cluster_name> \ -o jsonpath='{.spec.release.image}'
$ oc get hostedcluster/<hosted_cluster_name> \ -o jsonpath='{.spec.release.image}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 실행하여
HostedControlPlane
리소스의 상태가진행
중인지 확인하세요.oc get hostedcontrolplane -n <hosted_control_plane_namespace> -oyaml
$ oc get hostedcontrolplane -n <hosted_control_plane_namespace> -oyaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
HostedCluster
리소스의 상태가진행
중인지 확인하세요.oc get hostedcluster <hosted_cluster_name> \ -n <hosted_cluster_namespace> -oyaml
$ oc get hostedcluster <hosted_cluster_name> \ -n <hosted_cluster_namespace> -oyaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 노드 풀이
HostedControlPlane
리소스에서 다중 아키텍처 릴리스 이미지를 사용하고 있는지 확인하세요.oc get hostedcontrolplane -n clusters-example -oyaml
$ oc get hostedcontrolplane -n clusters-example -oyaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<4.yz>를
사용하는 지원되는 OpenShift Container Platform 버전으로 바꾸세요.
참고다중 아키텍처 OpenShift Container Platform 릴리스 이미지는
HostedCluster
,HostedControlPlane
리소스 및 호스팅 제어 평면 Pod에서 업데이트됩니다. 하지만 릴리스 이미지 전환은 호스팅된 클러스터와 노드 풀 사이에서 분리되어 있기 때문에 기존 노드 풀은 다중 아키텍처 이미지와 함께 자동으로 전환되지 않습니다. 새로운 다중 아키텍처 호스팅 클러스터에 새 노드 풀을 만들어야 합니다.
다음 단계
- 다중 아키텍처 호스팅 클러스터에서 노드 풀 생성
5.1.5. 다중 아키텍처 호스팅 클러스터에서 노드 풀 생성 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 클러스터를 단일 아키텍처에서 다중 아키텍처로 전환한 후 64비트 AMD 및 64비트 ARM 아키텍처를 기반으로 하는 컴퓨팅 머신에 노드 풀을 만듭니다.
프로세스
다음 명령을 입력하여 64비트 ARM 아키텍처를 기반으로 노드 풀을 만듭니다.
hcp create nodepool aws \ --cluster-name <hosted_cluster_name> \ --name <nodepool_name> \ --node-count=<node_count> \ --arch arm64
$ hcp create nodepool aws \ --cluster-name <hosted_cluster_name> \
1 --name <nodepool_name> \
2 --node-count=<node_count> \
3 --arch arm64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 64비트 AMD 아키텍처를 기반으로 노드 풀을 만듭니다.
hcp create nodepool aws \ --cluster-name <hosted_cluster_name> \ --name <nodepool_name> \ --node-count=<node_count> \ --arch amd64
$ hcp create nodepool aws \ --cluster-name <hosted_cluster_name> \
1 --name <nodepool_name> \
2 --node-count=<node_count> \
3 --arch amd64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 입력하여 노드 풀이 다중 아키텍처 릴리스 이미지를 사용하고 있는지 확인하세요.
oc get nodepool/<nodepool_name> -oyaml
$ oc get nodepool/<nodepool_name> -oyaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 64비트 AMD 노드 풀에 대한 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<4.yz>를
사용하는 지원되는 OpenShift Container Platform 버전으로 바꾸세요.
64비트 ARM 노드 풀에 대한 예제 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.6. 호스팅된 클러스터에 대한 AWS 태그 추가 또는 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 인스턴스 관리자는 호스팅된 클러스터를 다시 만들지 않고도 Amazon Web Services(AWS) 태그를 추가하거나 업데이트할 수 있습니다. 태그는 관리 및 자동화를 위해 AWS 리소스에 첨부되는 키-값 쌍입니다.
다음과 같은 목적으로 태그를 사용할 수 있습니다.
- 접근 제어 관리.
- 환불 또는 쇼백 추적.
- 클라우드 IAM 조건부 권한 관리.
- 태그를 기준으로 리소스를 집계합니다. 예를 들어, 태그를 쿼리하여 리소스 사용량과 청구 비용을 계산할 수 있습니다.
EFS 액세스 포인트, 로드 밸런서 리소스, Amazon EBS 볼륨, IAM 사용자, AWS S3를 비롯한 여러 유형의 리소스에 대한 태그를 추가하거나 업데이트할 수 있습니다.
네트워크 로드 밸런서에서는 태그를 추가하거나 업데이트할 수 없습니다. AWS 로드 밸런서는 HostedCluster
리소스에 있는 모든 태그를 조정합니다. 태그를 추가하거나 업데이트하려고 하면 로드 밸런서가 태그를 덮어씁니다.
또한 호스팅된 제어 평면에서 직접 생성된 기본 보안 그룹 리소스에서는 태그를 업데이트할 수 없습니다.
사전 요구 사항
- AWS에서 호스팅된 클러스터에 대한 클러스터 관리자 권한이 있어야 합니다.
프로세스
EFS 액세스 포인트에 대한 태그를 추가하거나 업데이트하려면 1단계와 2단계를 완료하세요. 다른 유형의 리소스에 대한 태그를 추가하거나 업데이트하는 경우 2단계만 완료하세요.
aws-efs-csi-driver-operator
서비스 계정에서 다음 예와 같이 두 개의 주석을 추가합니다. 이러한 주석은 클러스터에서 실행되는 AWS EKS Pod ID 웹훅이 EFS 운영자가 사용하는 Pod에 AWS 역할을 올바르게 할당할 수 있도록 하는 데 필요합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Operator 포드를 삭제하거나
aws-efs-csi-driver-operator
배포를 다시 시작합니다.
HostedCluster
리소스에서 다음 예와 같이resourceTags
필드에 정보를 입력합니다.HostedCluster
리소스 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 1
- 리소스에 추가하려는 태그를 지정하세요.
5.1.7. AWS에서 노드 풀 용량 블록 구성 링크 복사링크가 클립보드에 복사되었습니다!
호스팅 클러스터를 만든 후 Amazon Web Services(AWS)에서 GPU(그래픽 처리 장치) 예약을 위한 노드 풀 용량 블록을 구성할 수 있습니다.
프로세스
다음 명령을 실행하여 AWS에서 GPU 예약을 생성합니다.
중요GPU 예약 영역은 호스팅된 클러스터 영역과 일치해야 합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 최소 수수료 용량 블록을 구매하세요.
aws ec2 purchase-capacity-block \ --capacity-block-offering-id "${MIN_FEE_ID}" \ --instance-platform "Linux/UNIX"\ --tag-specifications 'ResourceType=capacity-reservation,Tags=[{Key=usage-cluster-type,Value=hypershift-hosted}]' \ --output json > "${CR_OUTPUT_FILE}"
$ aws ec2 purchase-capacity-block \ --capacity-block-offering-id "${MIN_FEE_ID}" \
1 --instance-platform "Linux/UNIX"\
2 --tag-specifications 'ResourceType=capacity-reservation,Tags=[{Key=usage-cluster-type,Value=hypershift-hosted}]' \
3 --output json > "${CR_OUTPUT_FILE}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 용량 예약 ID를 설정하는 환경 변수를 만듭니다.
CB_RESERVATION_ID=$(jq -r '.CapacityReservation.CapacityReservationId' "${CR_OUTPUT_FILE}")
$ CB_RESERVATION_ID=$(jq -r '.CapacityReservation.CapacityReservationId' "${CR_OUTPUT_FILE}")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GPU 예약이 가능해질 때까지 몇 분간 기다리세요.
다음 명령을 실행하여 GPU 예약을 사용할 노드 풀을 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예제 구성을 사용하여
NodePool
리소스에capacityReservation
설정을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 노드 풀 구성을 적용합니다.
oc apply -f /tmp/np.yaml
$ oc apply -f /tmp/np.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 새 노드 풀이 성공적으로 생성되었는지 확인하세요.
oc get np -n clusters
$ oc get np -n clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters cb-np cb-np-hcp 1 1 False False 4.20.0-0.nightly-2025-06-05-224220 False False
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters cb-np cb-np-hcp 1 1 False False 4.20.0-0.nightly-2025-06-05-224220 False False
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 호스팅된 클러스터에 새 컴퓨팅 노드가 생성되었는지 확인하세요.
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS ROLES AGE VERSION ip-10-0-132-74.ec2.internal Ready worker 17m v1.32.5 ip-10-0-134-183.ec2.internal Ready worker 4h5m v1.32.5
NAME STATUS ROLES AGE VERSION ip-10-0-132-74.ec2.internal Ready worker 17m v1.32.5 ip-10-0-134-183.ec2.internal Ready worker 4h5m v1.32.5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.7.1. 노드 풀 용량 블록을 구성한 후 호스팅된 클러스터 삭제 링크 복사링크가 클립보드에 복사되었습니다!
노드 풀 용량 블록을 구성한 후에는 선택적으로 호스팅된 클러스터를 삭제하고 HyperShift Operator를 제거할 수 있습니다.
프로세스
호스팅된 클러스터를 파괴하려면 다음 예제 명령을 실행하세요.
hcp destroy cluster aws \ --name cb-np-hcp \ --aws-creds $HOME/.aws/credentials \ --namespace clusters \ --region us-east-2
$ hcp destroy cluster aws \ --name cb-np-hcp \ --aws-creds $HOME/.aws/credentials \ --namespace clusters \ --region us-east-2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HyperShift Operator를 제거하려면 다음 명령을 실행하세요.
hcp install render --format=yaml | oc delete -f -
$ hcp install render --format=yaml | oc delete -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow