5장. 호스팅된 컨트롤 플레인 관리
5.1. AWS에서 호스트된 컨트롤 플레인 관리 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services)에서 OpenShift Container Platform에 호스팅되는 컨트롤 플레인을 사용하는 경우 인프라 요구 사항은 설정에 따라 다릅니다.
5.1.1. AWS 인프라 및 IAM 권한을 관리하기 위한 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services)에서 OpenShift Container Platform에 대해 호스팅된 컨트롤 플레인을 구성하려면 다음 인프라 요구 사항을 충족해야 합니다.
- 호스팅된 클러스터를 생성하기 전에 호스팅된 컨트롤 플레인을 구성했습니다.
- AWS IAM(Identity and Access Management) 역할 및 AWS STS(Security Token Service) 인증 정보를 생성하셨습니다.
5.1.1.1. AWS의 인프라 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services)에서 호스팅되는 컨트롤 플레인을 사용하는 경우 인프라 요구 사항은 다음 카테고리에 적합합니다.
- 임의의 AWS 계정에서 HyperShift Operator에 대한 사전 요구 사항 및 관리되지 않는 인프라
- 호스트 클러스터 AWS 계정에서 사전 요구 사항 및 관리되지 않는 인프라
- 관리 AWS 계정에서 호스팅되는 컨트롤 플레인 관리 인프라
- 호스트 클러스터 AWS 계정에서 호스팅된 컨트롤 플레인 관리 인프라
- 호스트 클러스터 AWS 계정의 Kubernetes 관리 인프라
Prerequired는 호스팅된 컨트롤 플레인이 제대로 작동하려면 AWS 인프라가 필요하다는 것을 의미합니다. Unmanaged는 Operator 또는 컨트롤러가 사용자를 위한 인프라를 생성하지 않음을 의미합니다.
5.1.1.2. AWS 계정의 HyperShift Operator에 대한 관리되지 않는 인프라 링크 복사링크가 클립보드에 복사되었습니다!
임의의 AWS(Amazon Web Services) 계정은 호스팅된 컨트롤 플레인 서비스 공급자에 따라 다릅니다.
자체 관리형 호스팅 컨트롤 플레인에서 클러스터 서비스 공급자는 AWS 계정을 제어합니다. 클러스터 서비스 공급자는 클러스터 컨트롤 플레인을 호스팅하고 가동 시간을 담당하는 관리자입니다. 관리형 호스팅 컨트롤 플레인에서 AWS 계정은 Red Hat에 속합니다.
HyperShift Operator에 대한 사전 필수 및 관리되지 않는 인프라에서 다음 인프라 요구 사항이 관리 클러스터 AWS 계정에 적용됩니다.
S3 버킷 1개
- OpenID Connect(OIDC)
Route 53 호스팅 영역
- 호스팅된 클러스터의 프라이빗 및 공용 항목을 호스트하는 도메인
5.1.1.3. 관리 AWS 계정에 대한 관리되지 않는 인프라 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 클러스터 AWS(Amazon Web Services) 계정에서 인프라가 필수적이고 관리되지 않는 경우 모든 액세스 모드에 대한 인프라 요구 사항은 다음과 같습니다.
- VPC 1개
- DHCP 옵션 1개
두 개의 서브넷
- 내부 데이터 플레인 서브넷인 프라이빗 서브넷
- 데이터 플레인에서 인터넷에 액세스할 수 있는 공용 서브넷
- 하나의 인터넷 게이트웨이
- 탄력적 IP 1개
- NAT 게이트웨이 1개
- 하나의 보안 그룹(작업자 노드)
- 두 개의 경로 테이블(개인 1개 및 공용)
- 두 개의 Route 53 호스팅 영역
다음 항목에 대한 할당량이 충분합니다.
- 퍼블릭 호스팅 클러스터를 위한 하나의 Ingress 서비스 로드 밸런서
- 프라이빗 호스팅 클러스터용 프라이빗 링크 끝점 1개
개인 링크 네트워킹이 작동하려면 호스팅된 클러스터 AWS 계정의 끝점 영역이 관리 클러스터 AWS 계정의 서비스 끝점에 의해 해결되는 인스턴스의 영역과 일치해야 합니다. AWS에서 영역 이름은 us-east-2b와 같은 별칭이며, 다른 계정의 동일한 영역에 매핑되지는 않습니다. 결과적으로 개인 링크가 작동하려면 관리 클러스터에 해당 리전의 모든 영역에 서브넷 또는 작업자가 있어야 합니다.
5.1.1.4. 관리 AWS 계정에 대한 인프라 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
관리 AWS 계정의 호스팅된 컨트롤 플레인에서 인프라를 관리하는 경우 클러스터의 퍼블릭, 프라이빗 또는 조합 여부에 따라 인프라 요구 사항이 다릅니다.
퍼블릭 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
네트워크 로드 밸런서: 로드 밸런서 Kube API 서버
- Kubernetes에서 보안 그룹을 생성합니다.
volumes
- etcd의 경우 (고용도에 따라 1개 또는 3개)
- OVN-Kube의 경우
프라이빗 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
- 네트워크 로드 밸런서: 로드 밸런서 개인 라우터
- 엔드포인트 서비스(개인 링크)
퍼블릭 및 프라이빗 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
- 네트워크 로드 밸런서: 로드 밸런서 공용 라우터
- 네트워크 로드 밸런서: 로드 밸런서 개인 라우터
- 엔드포인트 서비스(개인 링크)
volumes
- etcd의 경우 (고용도에 따라 1개 또는 3개)
- OVN-Kube의 경우
5.1.1.5. 호스트 클러스터의 AWS 계정에 대한 인프라 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 클러스터 AWS(Amazon Web Services) 계정의 호스팅된 컨트롤 플레인에서 인프라를 관리하는 경우 클러스터의 퍼블릭, 프라이빗 또는 조합 여부에 따라 인프라 요구 사항이 다릅니다.
퍼블릭 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
-
노드 풀에는
Role
및RolePolicy
가 정의된 EC2 인스턴스가 있어야 합니다.
프라이빗 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
- 각 가용성 영역에 대해 하나의 개인 링크 끝점
- 노드 풀용 EC2 인스턴스
퍼블릭 및 프라이빗 클러스터가 있는 계정의 경우 인프라 요구 사항은 다음과 같습니다.
- 각 가용성 영역에 대해 하나의 개인 링크 끝점
- 노드 풀용 EC2 인스턴스
5.1.1.6. 호스트 클러스터 AWS 계정의 Kubernetes 관리 인프라 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes가 호스팅 클러스터 AWS(Amazon Web Services) 계정에서 인프라를 관리하는 경우 인프라 요구 사항은 다음과 같습니다.
- 기본 Ingress의 네트워크 로드 밸런서
- 레지스트리의 S3 버킷
5.1.2. IAM(Identity and Access Management) 권한 링크 복사링크가 클립보드에 복사되었습니다!
호스트된 컨트롤 플레인의 컨텍스트에서 소비자는 ARM(Amazon Resource Name) 역할을 생성합니다. 소비자 는 권한 파일을 생성하기 위한 자동화된 프로세스입니다. 소비자는 CLI 또는 OpenShift Cluster Manager일 수 있습니다. 호스팅된 컨트롤 플레인은 최소 권한 구성 요소의 원칙을 세분적으로 활성화하여 모든 구성 요소가 자체 역할을 사용하여 AWS(Amazon Web Services) 오브젝트를 운영하거나 생성하며 역할이 제품이 정상적으로 작동하는 데 필요한 것으로 제한됩니다.
호스트된 클러스터는 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
명령을 사용하여 클러스터를 생성하거나 적용하기 전에 이를 수정하도록 클라우드 인프라 부분을 별도로 생성할 수 있습니다.
클라우드 인프라 부분을 별도로 생성하려면 AWS(Amazon Web Services) 인프라를 생성하고 AWS Identity and Access(IAM) 리소스를 생성하고 클러스터를 생성해야 합니다.
5.1.3.1. AWS 인프라를 별도로 생성 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services) 인프라를 생성하려면 VPC(Virtual Private Cloud) 및 클러스터에 대한 기타 리소스를 생성해야 합니다. AWS 콘솔 또는 인프라 자동화 및 프로비저닝 툴을 사용할 수 있습니다. AWS 콘솔을 사용하는 방법은 AWS 문서의 VPC 및 기타 VPC 리소스 생성 을 참조하십시오.
VPC에는 NAT(네트워크 주소 변환) 게이트웨이 및 인터넷 게이트웨이와 같은 외부 액세스를 위한 프라이빗 및 퍼블릭 서브넷 및 리소스가 포함되어야 합니다. VPC 외에도 클러스터 수신을 위한 프라이빗 호스팅 영역이 필요합니다. Private
Link(프라이빗 또는 PublicAndPrivate
액세스 모드)를 사용하는 클러스터를 생성하는 경우 PrivateLink에 대한 추가 호스팅 영역이 필요합니다.
다음 예제 구성을 사용하여 호스팅된 클러스터에 대한 AWS 인프라를 생성합니다.
- 1
- &
lt;pull_secret_name
>을 풀 시크릿 이름으로 바꿉니다. - 2
- &
lt;etcd_encryption_key_name&
gt;을 etcd 암호화 키 이름으로 바꿉니다. - 3
- &
lt;ssh_key_name
>을 SSH 키 이름으로 바꿉니다. - 4
- &
lt;hosted_cluster_name&
gt;을 호스트된 클러스터 이름으로 바꿉니다. - 5
- &
lt;dns_domain&
gt;을example.com
과 같은 기본 DNS 도메인으로 바꿉니다. - 6
- &
lt;infra_id
>를 호스팅된 클러스터와 연결된 IAM 리소스를 식별하는 값으로 바꿉니다. - 7
- &
lt;issuer_url
>을 발행자 URL로 바꿉니다. 이 URL은infra_id
값으로 끝납니다. 예: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
- &
lt;node_pool_name&
gt;을NodePool
리소스의 이름으로 바꿉니다. - 11
- &
lt;instance_profile_name&
gt;을 AWS 인스턴스의 이름으로 바꿉니다.
5.1.3.2. AWS IAM 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services)에서 다음 IAM 리소스를 생성해야 합니다.
- STS 인증을 활성화하는 데 필요한 IAM의 OpenID Connect(OIDC) ID 공급자입니다.
- Kubernetes 컨트롤러 관리자, 클러스터 API 공급자 및 레지스트리와 같이 공급자와 상호 작용하는 모든 구성 요소에 대해 별도의 7가지 역할
- 클러스터의 모든 작업자 인스턴스에 할당된 프로필인 인스턴스 프로필
5.1.3.3. 호스팅 클러스터를 별도로 생성 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services)에서 호스팅 클러스터를 별도로 생성할 수 있습니다.
호스팅 클러스터를 별도로 생성하려면 다음 명령을 입력합니다.
- 1
- &
lt;infra_id
>를create infra aws
명령에 지정한 것과 동일한 ID로 바꿉니다. 이 값은 호스팅된 클러스터와 연결된 IAM 리소스를 식별합니다. - 2
- &
lt;hosted_cluster_name&
gt;을 호스트된 클러스터 이름으로 바꿉니다. - 3
- &
lt;path_to_sts_credential_file
>을create infra aws
명령에 지정한 것과 동일한 이름으로 바꿉니다. - 4
- &
lt;path_to_pull_secret
>을 유효한 OpenShift Container Platform 풀 시크릿이 포함된 파일 이름으로 바꿉니다. - 5
--generate-ssh
플래그는 선택 사항이지만 작업자에게 SSH를 사용해야 하는 경우 포함할 수 있습니다. SSH 키는 사용자를 위해 생성되며 호스팅된 클러스터와 동일한 네임스페이스에 시크릿으로 저장됩니다.- 6
- <
role_name
>을 Amazon Resource Name(ARN)으로 바꿉니다. 예를 들면arn:aws:iam::820196288204:role/myrole
입니다. Amazon 리소스 이름(ARN)을 지정합니다(예:arn:aws:iam::820196288204:role/myrole
). ARN 역할에 대한 자세한 내용은 "IAM(Identity and Access Management) 권한"을 참조하십시오.
명령에 --render
플래그를 추가하고 클러스터에 적용하기 전에 리소스를 편집할 수 있는 파일로 출력을 리디렉션할 수도 있습니다.
명령을 실행하면 다음 리소스가 클러스터에 적용됩니다.
- 네임스페이스
- 풀 시크릿이 있는 시크릿
-
A
HostedCluster
-
A
NodePool
- 컨트롤 플레인 구성 요소에 대한 세 가지 AWS STS 시크릿
-
--generate-ssh
플래그를 지정한 경우 SSH 키 시크릿 1개
5.1.4. 호스트 클러스터를 단일 아키텍처에서 다중 아키텍처로 전환 링크 복사링크가 클립보드에 복사되었습니다!
단일 아키텍처 64비트 AMD 호스팅 클러스터를 AWS(Amazon Web Services)의 다중 아키텍처 호스팅 클러스터로 전환하여 클러스터에서 실행 중인 워크로드 비용을 줄일 수 있습니다. 예를 들어 64비트 ARM으로 전환하면서 64비트 AMD에서 기존 워크로드를 실행할 수 있으며 중앙 Kubernetes 클러스터에서 이러한 워크로드를 관리할 수 있습니다.
단일 아키텍처 호스팅 클러스터는 하나의 특정 CPU 아키텍처로만 노드 풀을 관리할 수 있습니다. 그러나 다중 아키텍처 호스팅 클러스터는 다른 CPU 아키텍처로 노드 풀을 관리할 수 있습니다. AWS에서 다중 아키텍처 호스팅 클러스터는 64비트 AMD 및 64비트 ARM 노드 풀을 모두 관리할 수 있습니다.
사전 요구 사항
- Kubernetes Operator용 다중 클러스터 엔진과 함께 RHACM(Red Hat Advanced Cluster Management)에 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
- &
lt;4.y.z
>를 사용하는 지원되는 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
- &
lt;4.y.z
>를 사용하는 지원되는 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
- &
lt;4.y.z
>를 사용하는 지원되는 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
- &
lt;4.y.z
>를 사용하는 지원되는 OpenShift Container Platform 버전으로 바꿉니다.
64비트 ARM 노드 풀 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.6. 호스트 클러스터의 AWS 태그 추가 또는 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 인스턴스 관리자는 호스팅된 클러스터를 다시 만들 필요 없이 AWS(Amazon Web Services) 태그를 추가하거나 업데이트할 수 있습니다. 태그는 관리 및 자동화를 위해 AWS 리소스에 연결된 키-값 쌍입니다.
다음과 같은 목적으로 태그를 사용할 수 있습니다.
- 액세스 제어 관리.
- 추적 또는 표시.
- 클라우드 IAM 조건부 권한 관리.
- 태그를 기반으로 리소스 집계. 예를 들어 태그를 쿼리하여 리소스 사용량 및 청구 비용을 계산할 수 있습니다.
EFS 액세스 지점, 로드 밸런서 리소스, Amazon EBS 볼륨, IAM 사용자, AWS S3 등 다양한 유형의 리소스에 대한 태그를 추가하거나 업데이트할 수 있습니다.
네트워크 로드 밸런서에서는 태그를 추가하거나 업데이트할 수 없습니다. AWS 로드 밸런서는 HostedCluster
리소스에 있는 태그를 조정합니다. 태그를 추가하거나 업데이트하려고 하면 로드 밸런서가 태그를 덮어씁니다.
또한 호스팅된 컨트롤 플레인에서 직접 생성하는 기본 보안 그룹 리소스에서 태그를 업데이트할 수 없습니다.
사전 요구 사항
- AWS에서 호스팅된 클러스터에 대한 클러스터 관리자 권한이 있어야 합니다.
프로세스
EFS 액세스 지점에 대한 태그를 추가하거나 업데이트하려면 1단계와 2단계를 완료합니다. 다른 유형의 리소스에 대한 태그를 추가하거나 업데이트하는 경우 2단계만 완료합니다.
aws-efs-csi-driver-operator
서비스 계정에서 다음 예와 같이 두 개의 주석을 추가합니다. 클러스터에서 실행되는 AWS EKS Pod ID Webhook에서 EFS Operator가 사용하는 Pod에 AWS 역할을 올바르게 할당하려면 이러한 주석이 필요합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Operator Pod를 삭제하거나
aws-efs-csi-driver-operator
배포를 다시 시작합니다.
HostedCluster
리소스에서 다음 예와 같이resourceTags
필드에 정보를 입력합니다.HostedCluster
리소스 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 1
- 리소스에 추가할 태그를 지정합니다.
5.1.7. AWS에서 노드 풀 용량 블록 구성 링크 복사링크가 클립보드에 복사되었습니다!
호스트 클러스터를 생성한 후 AWS(Amazon Web Services)에서 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.33.4 ip-10-0-134-183.ec2.internal Ready worker 4h5m v1.33.4
NAME STATUS ROLES AGE VERSION ip-10-0-132-74.ec2.internal Ready worker 17m v1.33.4 ip-10-0-134-183.ec2.internal Ready worker 4h5m v1.33.4
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