3.4. GCP에서 다중 아키텍처 컴퓨팅 머신이 있는 클러스터 생성
다중 아키텍처 컴퓨팅 머신이 있는 GCP(Google Cloud Platform) 클러스터를 생성하려면 먼저 다중 아키텍처 설치 프로그램 바이너리를 사용하여 단일 아키텍처 GCP 설치 관리자 프로비저닝 클러스터를 생성해야 합니다. AWS 설치에 대한 자세한 내용은 사용자 지정을 사용하여 GCP에 클러스터 설치를 참조하십시오.
단일 아키텍처 컴퓨팅 머신이 있는 현재 클러스터를 다중 아키텍처 컴퓨팅 머신이 있는 클러스터로 마이그레이션할 수도 있습니다. 자세한 내용은 다중 아키텍처 컴퓨팅 머신이 있는 클러스터로 마이그레이션 을 참조하십시오.
다중 아키텍처 클러스터를 생성한 후 다양한 아키텍처가 있는 노드를 클러스터에 추가할 수 있습니다.
현재 GCP용 64비트 ARM 머신에서 보안 부팅이 지원되지 않습니다.
3.4.1. 클러스터 호환성 확인
다른 아키텍처의 컴퓨팅 노드를 클러스터에 추가하려면 먼저 클러스터가 다중 아키텍처 호환인지 확인해야 합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다.
프로세스
-
OpenShift CLI(
oc
)에 로그인합니다. 다음 명령을 실행하여 클러스터에서 아키텍처 페이로드를 사용하는지 확인할 수 있습니다.
$ oc adm release info -o jsonpath="{ .metadata.metadata}"
검증
다음 출력이 표시되면 클러스터에서 다중 아키텍처 페이로드를 사용하고 있습니다.
{ "release.openshift.io/architecture": "multi", "url": "https://access.redhat.com/errata/<errata_version>" }
그런 다음 클러스터에 다중 아키텍처 컴퓨팅 노드 추가를 시작할 수 있습니다.
다음 출력이 표시되면 클러스터에서 다중 아키텍처 페이로드를 사용하지 않습니다.
{ "url": "https://access.redhat.com/errata/<errata_version>" }
중요클러스터가 다중 아키텍처 컴퓨팅 머신을 지원하도록 클러스터를 마이그레이션하려면 다중 아키텍처 컴퓨팅 머신이 있는 클러스터로 마이그레이션 절차를 따르십시오.
3.4.2. GCP 클러스터에 다중 아키텍처 컴퓨팅 머신 세트 추가
다중 아키텍처 클러스터를 생성한 후 다른 아키텍처로 노드를 추가할 수 있습니다.
다음과 같은 방법으로 다중 아키텍처 컴퓨팅 머신을 다중 아키텍처 클러스터에 추가할 수 있습니다.
- 64비트 ARM 컨트롤 플레인 시스템을 사용하고 이미 64비트 ARM 컴퓨팅 시스템을 포함하는 클러스터에 64비트 x86 컴퓨팅 시스템을 추가합니다. 이 경우 64비트 x86은 보조 아키텍처로 간주됩니다.
- 64비트 x86 컨트롤 플레인 시스템을 사용하고 이미 64비트 x86 컴퓨팅 시스템을 포함하는 클러스터에 64비트 ARM 컴퓨팅 머신을 추가합니다. 이 경우 64비트 ARM은 보조 아키텍처로 간주됩니다.
클러스터에 보조 아키텍처 노드를 추가하기 전에 Multiarch Tuning Operator를 설치하고 ClusterPodPlacementConfig
사용자 정의 리소스를 배포하는 것이 좋습니다. 자세한 내용은 "Multiarch Tuning Operator를 사용하여 다중 아키텍처 클러스터에서 워크로드 관리"를 참조하십시오.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. - 설치 프로그램을 사용하여 다중 아키텍처 설치 프로그램 바이너리를 사용하여 64비트 x86 또는 64비트 ARM 단일 아키텍처 GCP 클러스터를 생성했습니다.
프로세스
-
OpenShift CLI(
oc
)에 로그인합니다. YAML 파일을 생성하고 클러스터에서 64비트 ARM 또는 64비트 x86 컴퓨팅 노드를 제어하는 컴퓨팅 머신 세트를 생성하는 구성을 추가합니다.
GCP 64비트 ARM 또는 64비트 x86 컴퓨팅 노드의
MachineSet
오브젝트 예apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 name: <infrastructure_id>-w-a namespace: openshift-machine-api spec: replicas: 1 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-w-a template: metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: <role> 2 machine.openshift.io/cluster-api-machine-type: <role> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-w-a spec: metadata: labels: node-role.kubernetes.io/<role>: "" providerSpec: value: apiVersion: gcpprovider.openshift.io/v1beta1 canIPForward: false credentialsSecret: name: gcp-cloud-credentials deletionProtection: false disks: - autoDelete: true boot: true image: <path_to_image> 3 labels: null sizeGb: 128 type: pd-ssd gcpMetadata: 4 - key: <custom_metadata_key> value: <custom_metadata_value> kind: GCPMachineProviderSpec machineType: n1-standard-4 5 metadata: creationTimestamp: null networkInterfaces: - network: <infrastructure_id>-network subnetwork: <infrastructure_id>-worker-subnet projectID: <project_name> 6 region: us-central1 7 serviceAccounts: - email: <infrastructure_id>-w@<project_name>.iam.gserviceaccount.com scopes: - https://www.googleapis.com/auth/cloud-platform tags: - <infrastructure_id>-worker userDataSecret: name: worker-user-data zone: us-central1-a
- 1
- 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다. 다음 명령을 실행하여 인프라 ID를 가져올 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 2
- 추가할 역할 노드 레이블을 지정합니다.
- 3
- 현재 컴퓨팅 머신 세트에 사용되는 이미지의 경로를 지정합니다. 이미지 경로에 프로젝트 및 이미지 이름이 필요합니다.
프로젝트 및 이미지 이름에 액세스하려면 다음 명령을 실행합니다.
$ oc get configmap/coreos-bootimages \ -n openshift-machine-config-operator \ -o jsonpath='{.data.stream}' | jq \ -r '.architectures.aarch64.images.gcp'
출력 예
"gcp": { "release": "415.92.202309142014-0", "project": "rhcos-cloud", "name": "rhcos-415-92-202309142014-0-gcp-aarch64" }
출력의
project
및name
매개변수를 사용하여 머신 세트의 이미지 필드 경로를 생성합니다. 이미지 경로는 다음 형식을 따라야 합니다.$ projects/<project>/global/images/<image_name>
- 4
- 선택 사항:
key:value
쌍 형식으로 사용자 지정 메타데이터를 지정합니다. 사용 사례의 예는 사용자 정의 메타데이터 설정에 대한 GCP 설명서를 참조하십시오. - 5
- 선택한 OS 이미지의 CPU 아키텍처에 맞는 머신 유형을 지정합니다. 자세한 내용은 "64비트 ARM 인프라에서 GCP의 인스턴스 유형 테스트"을 참조하십시오.
- 6
- 클러스터에 사용하는 GCP 프로젝트의 이름을 지정합니다.
- 7
- 리전을 지정합니다. 예를 들면
us-central1
입니다. 선택한 영역에 필요한 아키텍처가 있는 시스템이 있는지 확인합니다.
다음 명령을 실행하여 컴퓨팅 머신 세트를 생성합니다.
$ oc create -f <file_name> 1
- 1
- &
lt;file_name
>을 YAML 파일의 이름으로 컴퓨팅 머신 세트 구성으로 바꿉니다. 예:gcp-arm64-machine-set-0.yaml
또는gcp-amd64-machine-set-0.yaml
.
검증
다음 명령을 실행하여 컴퓨팅 머신 세트 목록을 확인합니다.
$ oc get machineset -n openshift-machine-api
출력에 생성한 머신 세트가 포함되어야 합니다.
출력 예
NAME DESIRED CURRENT READY AVAILABLE AGE <infrastructure_id>-gcp-machine-set-0 2 2 2 2 10m
다음 명령을 실행하여 노드가 준비되고 예약 가능한지 확인할 수 있습니다.
$ oc get nodes