11.2. 클러스터 API 시작하기
Machine API 및 Cluster API는 유사한 리소스가 있는 별도의 API 그룹입니다. 이러한 API 그룹을 사용하여 OpenShift Container Platform 클러스터에서 인프라 리소스 관리를 자동화할 수 있습니다.
클러스터 API를 사용하여 머신을 관리하는 것은 기술 프리뷰 기능만 해당합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
3개의 제어 평면 노드, 3개의 컴퓨팅 노드가 있고 기본 구성 옵션을 사용하는 표준 OpenShift Container Platform 클러스터를 설치하는 경우 설치 프로그램은 openshift-machine-api
네임스페이스에 다음 인프라 리소스를 프로비저닝합니다.
- 3개의 컨트롤 플레인 머신을 관리하는 하나의 컨트롤 플레인 머신 세트입니다.
- 3개의 컴퓨팅 머신을 관리하는 하나 이상의 컴퓨팅 머신 세트입니다.
- 스팟 인스턴스를 관리하는 하나의 머신 상태 점검입니다.
Cluster API를 사용하여 인프라 리소스 관리를 지원하는 클러스터를 설치할 때 설치 프로그램은 openshift-cluster-api
네임스페이스에 다음 리소스를 프로비저닝합니다.
- 클러스터 리소스 1개
- 공급자별 인프라 클러스터 리소스 1개
Machine API 리소스를 클러스터 API 리소스로 마이그레이션하는 클러스터에서는 양방향 동기화 컨트롤러에서 이러한 기본 리소스를 자동으로 생성합니다. 자세한 내용은 클러스터 API 리소스로 머신 API 리소스 마이그레이션을 참조하십시오.
11.2.1. Cluster API 기본 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
Machine API 리소스를 클러스터 API 리소스로 마이그레이션하지 않는 클러스터의 경우 openshift-cluster-api
네임스페이스에서 다음 Cluster API 리소스를 수동으로 생성해야 합니다.
- 컴퓨팅 머신 세트에 해당하는 하나 이상의 머신 템플릿입니다.
- 3개의 컴퓨팅 머신을 관리하는 하나 이상의 컴퓨팅 머신 세트입니다.
11.2.1.1. 클러스터 API 머신 템플릿 생성 링크 복사링크가 클립보드에 복사되었습니다!
YAML 매니페스트 파일을 생성하고 OpenShift CLI(oc
)로 적용하여 공급자별 머신 템플릿 리소스를 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터를 배포했습니다.
- 클러스터 API 사용을 활성화했습니다.
-
cluster-admin
권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
다음과 유사한 YAML 파일을 생성합니다. 이 절차에서는 &
lt;machine_template_resource_file>.yaml
을 예제 파일 이름으로 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 머신 템플릿 유형을 지정합니다. 이 값은 플랫폼의 값과 일치해야 합니다. 다음 값이 유효합니다.
Expand 클러스터 인프라 공급자 현재의 AWS(Amazon Web Services)
AWSMachineTemplate
Google Cloud
GCPMachineTemplate
Microsoft Azure
AzureMachineTemplate
Red Hat OpenStack Platform (RHOSP)
OpenStackMachineTemplate
VMware vSphere
VSphereMachineTemplate
베어 메탈
Metal3MachineTemplate
- 2
- 머신 템플릿의 이름을 지정합니다.
- 3
- 환경에 대한 세부 정보를 지정합니다. 이러한 매개변수는 공급자별로 다릅니다. 자세한 내용은 공급자의 샘플 Cluster API 머신 템플릿 YAML을 참조하십시오.
다음 명령을 실행하여 머신 템플릿 CR을 생성합니다.
oc create -f <machine_template_resource_file>.yaml
$ oc create -f <machine_template_resource_file>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 머신 템플릿 CR이 생성되었는지 확인합니다.
oc get <machine_template_kind> -n openshift-cluster-api
$ oc get <machine_template_kind> -n openshift-cluster-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
<machine_template_kind
>는 플랫폼에 해당하는 값입니다.출력 예
NAME AGE <template_name> 77m
NAME AGE <template_name> 77m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.2.1.2. 클러스터 API 컴퓨팅 머신 세트 생성 링크 복사링크가 클립보드에 복사되었습니다!
Cluster API를 사용하여 선택한 특정 워크로드에 대한 머신 컴퓨팅 리소스를 동적으로 관리하는 컴퓨팅 머신 세트를 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터를 배포했습니다.
- 클러스터 API 사용을 활성화했습니다.
-
cluster-admin
권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다. - 머신 템플릿 리소스가 생성되어 있습니다.
프로세스
다음과 유사한 YAML 파일을 생성합니다. 이 절차에서는 &
lt;machine_set_resource_file>.yaml
을 예제 파일 이름으로 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 컴퓨팅 머신 세트의 이름을 지정합니다. 클러스터 ID, 머신 역할 및 리전은 <
cluster_name>-<role>-<region
> 형식으로 이 값에 대한 일반적인 패턴을 형성합니다. - 2
- 클러스터 이름을 지정합니다. 다음 명령을 실행하여 클러스터 ID의 값을 가져옵니다.
oc get infrastructure cluster \ -o jsonpath='{.status.infrastructureName}'
$ oc get infrastructure cluster \ -o jsonpath='{.status.infrastructureName}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 3
- 환경에 대한 세부 정보를 지정합니다. 이러한 매개변수는 공급자별로 다릅니다. 자세한 내용은 공급자의 샘플 Cluster API 컴퓨팅 머신 세트 YAML을 참조하십시오.
다음 명령을 실행하여 컴퓨팅 머신 세트 CR을 생성합니다.
oc create -f <machine_set_resource_file>.yaml
$ oc create -f <machine_set_resource_file>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 컴퓨팅 머신 세트 CR이 생성되었는지 확인합니다.
oc get machineset.cluster.x-k8s.io -n openshift-cluster-api
$ oc get machineset.cluster.x-k8s.io -n openshift-cluster-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME CLUSTER REPLICAS READY AVAILABLE AGE VERSION <machine_set_name> <cluster_name> 1 1 1 17m
NAME CLUSTER REPLICAS READY AVAILABLE AGE VERSION <machine_set_name> <cluster_name> 1 1 1 17m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 컴퓨팅 머신 세트가 사용 가능한 경우
REPLICAS
및AVAILABLE
값이 일치합니다. 컴퓨팅 머신 세트를 사용할 수 없는 경우 몇 분 기다렸다가 명령을 다시 실행합니다.
검증
컴퓨팅 머신 세트가 필수 구성에 따라 시스템을 생성하고 있는지 확인하려면 다음 명령을 실행하여 클러스터의 시스템 및 노드 목록을 검토합니다.
클러스터 API 머신 목록을 확인합니다.
oc get machine.cluster.x-k8s.io -n openshift-cluster-api
$ oc get machine.cluster.x-k8s.io -n openshift-cluster-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_set_name>-<string_id> <cluster_name> <ip_address>.<region>.compute.internal <provider_id> Running 8m23s
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_set_name>-<string_id> <cluster_name> <ip_address>.<region>.compute.internal <provider_id> Running 8m23s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드 목록을 확인합니다.
oc get node
$ oc get node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS ROLES AGE VERSION <ip_address_1>.<region>.compute.internal Ready worker 5h14m v1.28.5 <ip_address_2>.<region>.compute.internal Ready master 5h19m v1.28.5 <ip_address_3>.<region>.compute.internal Ready worker 7m v1.28.5
NAME STATUS ROLES AGE VERSION <ip_address_1>.<region>.compute.internal Ready worker 5h14m v1.28.5 <ip_address_2>.<region>.compute.internal Ready master 5h19m v1.28.5 <ip_address_3>.<region>.compute.internal Ready worker 7m v1.28.5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.2.2. 클러스터 API 리소스로 머신 API 리소스 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
Machine API 리소스를 클러스터 API 리소스로 마이그레이션하는 클러스터에서는 양방향 동기화 컨트롤러에서 openshift-cluster-api
네임스페이스에 다음 Cluster API 리소스를 생성합니다.
- 컴퓨팅 머신 세트에 해당하는 하나 이상의 머신 템플릿입니다.
- 3개의 컴퓨팅 머신을 관리하는 하나 이상의 컴퓨팅 머신 세트입니다.
- 각 머신 API 컴퓨팅 머신에 해당하는 하나 이상의 클러스터 API 컴퓨팅 머신입니다.
양방향 동기화 컨트롤러는 TechPreviewNoUpgrade
기능 세트의 MachineAPIMigration
기능 게이트가 활성화된 클러스터에서만 작동합니다.
이러한 클러스터 API 리소스는 설치 프로그램이 기본 구성 옵션을 사용하는 클러스터의 openshift-machine-api
네임스페이스에 프로비저닝하는 리소스에 해당합니다. Cluster API 리소스는 Machine API와 동일한 이름이 있으며 oc get
, 해당 리소스를 나열하는 명령의 출력에 표시됩니다. 동기화 컨트롤러는 의도하지 않은 조정을 방지하기 위해 프로비저닝되지 않은 (중지된) 상태로 클러스터 API 리소스를 생성합니다.
지원되는 구성의 경우 권한이 있다고 간주하는 API를 변경하여 Machine API 리소스를 동등한 클러스터 API 리소스로 마이그레이션할 수 있습니다. Machine API 리소스를 Cluster API로 마이그레이션하면 리소스 관리를 Cluster API로 전송합니다.
Cluster API를 사용하도록 Machine API 리소스를 마이그레이션하면 프로덕션 클러스터에서 Cluster API를 사용하기 전에 모든 항목이 예상대로 작동하는지 확인할 수 있습니다. Machine API 리소스를 동등한 Cluster API 리소스로 마이그레이션한 후 새 리소스를 검사하여 기능 및 구성이 원래 Machine API 리소스와 일치하는지 확인할 수 있습니다.
컴퓨팅 머신 세트의 권한 있는 API를 변경하면 컴퓨팅 머신 세트에서 관리하는 기존 컴퓨팅 시스템은 원래의 권한 있는 API를 유지합니다. 결과적으로 다른 권한 있는 API를 사용하는 머신을 관리하는 컴퓨팅 머신 세트는 이러한 API 유형 간에 마이그레이션을 지원하는 클러스터에서 유효하고 예상되는 발생입니다.
컴퓨팅 머신에 대해 권한 있는 API를 변경하면 시스템을 백업하는 기본 인프라의 인스턴스가 다시 생성되거나 다시 프로비저닝되지 않습니다. 레이블, 태그, 테인트 또는 주석 수정과 같은 인플레이스 변경 사항은 API 그룹이 머신을 백업하는 기본 인스턴스를 변경할 수 있는 유일한 변경 사항입니다.
지원되는 인프라 유형에서만 일부 리소스를 마이그레이션할 수 있습니다.
인프라 | 컴퓨팅 시스템 | 컴퓨팅 머신 세트 | 머신 상태 점검 | 컨트롤 플레인 머신 세트 | Cluster autoscaler |
---|---|---|---|---|---|
AWS | 기술 프리뷰 | 기술 프리뷰 | 사용할 수 없음 | 사용할 수 없음 | 사용할 수 없음 |
기타 모든 인프라 유형 | 사용할 수 없음 | 사용할 수 없음 | 사용할 수 없음 | 사용할 수 없음 | 사용할 수 없음 |
11.2.2.1. 신뢰할 수 있는 API 유형의 컴퓨팅 시스템 링크 복사링크가 클립보드에 복사되었습니다!
컴퓨팅 시스템의 권한 있는 API는 이를 생성하는 Machine API 컴퓨팅 머신 세트의 .spec.authoritativeAPI
및 .spec.template.spec.authoritativeAPI
필드의 값에 따라 다릅니다.
|
|
|
|
|
|
|
|
|
|
새 컴퓨팅 시스템에 대한 |
|
|
|
|
.spec.authoritativeAPI
값이 ClusterAPI
인 경우 Machine API 머신 세트가 권한이 없으며 .spec.template.spec.authoritativeAPI
값이 사용되지 않습니다. 결과적으로 Machine API
를 사용하여 권한 있는 대로 컴퓨팅 머신을 생성하는 유일한 조합은 .spec.authoritativeAPI
및 .spec.template.spec.authoritativeAPI
값이 MachineAPI인 입니다.
11.2.2.2. 클러스터 API를 사용하도록 머신 API 리소스 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
개별 Machine API 오브젝트를 동등한 Cluster API 오브젝트로 마이그레이션할 수 있습니다.
클러스터 API를 사용하도록 머신 API 리소스를 마이그레이션하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
- 지원되는 인프라 유형에 OpenShift Container Platform 클러스터를 배포했습니다.
- 클러스터 API 사용을 활성화했습니다.
-
TechPreviewNoUpgrade
기능 세트에서MachineAPIMigration
기능 게이트를 활성화했습니다. -
cluster-admin
권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
다음 명령을 실행하여 클러스터 API 리소스로 마이그레이션할 Machine API 리소스를 식별합니다.
oc get <resource_kind> -n openshift-machine-api
$ oc get <resource_kind> -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
<resource_kind
>는 다음 값 중 하나입니다.machine.machine.openshift.io
- 컴퓨팅 또는 컨트롤 플레인 시스템에 대한 리소스 종류의 정규화된 이름입니다.
machineset.machine.openshift.io
- 컴퓨팅 머신 세트의 리소스 유형의 정규화된 이름입니다.
다음 명령을 실행하여 리소스 사양을 편집합니다.
oc edit <resource_kind>/<resource_name> -n openshift-machine-api
$ oc edit <resource_kind>/<resource_name> -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
<resource_kind>
-
machineset.machine.openshift.io
를 사용하여machine.machine.openshift.io
또는 컴퓨팅 머신 세트를 사용하여 컴퓨팅 머신을 지정합니다. <resource_name>
- Cluster API 리소스로 마이그레이션할 Machine API 리소스의 이름을 지정합니다.
리소스 사양에서
spec.authoritativeAPI
필드의 값을 업데이트합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 변환 상태를 확인합니다.
oc -n openshift-machine-api get <resource_kind>/<resource_name> -o json | jq .status.authoritativeAPI
$ oc -n openshift-machine-api get <resource_kind>/<resource_name> -o json | jq .status.authoritativeAPI
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
<resource_kind>
-
machineset.machine.openshift.io
를 사용하여machine.machine.openshift.io
또는 컴퓨팅 머신 세트를 사용하여 컴퓨팅 머신을 지정합니다. <resource_name>
- Cluster API 리소스로 마이그레이션할 Machine API 리소스의 이름을 지정합니다.
-
변환이 진행되는 동안 이 명령은
Migrating
값을 반환합니다. 이 값이 장기간 지속되는 경우openshift-cluster-api
네임스페이스에서cluster-capi-operator
배포의 로그를 확인하고 잠재적인 문제를 확인합니다. -
변환이 완료되면 이 명령은
ClusterAPI
값을 반환합니다.
11.2.2.3. Machine API 컴퓨팅 머신 세트를 사용하여 클러스터 API 컴퓨팅 머신 배포 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 API 컴퓨팅 머신을 배포하도록 머신 API 컴퓨팅 머신 세트를 구성할 수 있습니다. 이 프로세스를 사용하면 Cluster API 컴퓨팅 머신 세트를 생성하고 확장하지 않고도 Cluster API 컴퓨팅 머신 생성 워크플로를 테스트할 수 있습니다.
이 구성이 포함된 머신 API 컴퓨팅 머신 세트는 Cluster API를 권한 있는 것으로 사용하는 권한 없는 머신 API 컴퓨팅 머신을 생성합니다. 그런 다음 양방향 동기화 컨트롤러는 기본 인프라에서 프로비저닝하는 해당 권한 있는 클러스터 API 머신을 생성합니다.
Machine API 컴퓨팅 머신 세트를 사용하여 클러스터 API 컴퓨팅 머신을 배포하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
- 지원되는 인프라 유형에 OpenShift Container Platform 클러스터를 배포했습니다.
- 클러스터 API 사용을 활성화했습니다.
-
TechPreviewNoUpgrade
기능 세트에서MachineAPIMigration
기능 게이트를 활성화했습니다. -
cluster-admin
권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
다음 명령을 실행하여 클러스터에 있는 Machine API 컴퓨팅 머신 세트를 나열하세요.
oc get machineset.machine.openshift.io -n openshift-machine-api
$ oc get machineset.machine.openshift.io -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 리소스 사양을 편집합니다.
oc edit machineset.machine.openshift.io <machine_set_name> \ -n openshift-machine-api
$ oc edit machineset.machine.openshift.io <machine_set_name> \ -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
<machine_set_name
>은 클러스터 API 컴퓨팅 머신을 배포하도록 구성할 Machine API 컴퓨팅 머신 세트의 이름입니다.리소스 사양에서
spec.template.spec.authoritativeAPI
필드의 값을 업데이트합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 업데이트된 컴퓨팅 머신 세트에서 관리하는 머신을 나열합니다.
oc get machines.machine.openshift.io \ -n openshift-machine-api \ -l machine.openshift.io/cluster-api-machineset=<machine_set_name>
$ oc get machines.machine.openshift.io \ -n openshift-machine-api \ -l machine.openshift.io/cluster-api-machineset=<machine_set_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 머신 세트로 생성한 머신에 올바른 구성이 있는지 확인하려면 다음 명령을 실행하여 새 머신 중 하나에 대해 CR의
status.authoritativeAPI
필드를 검사합니다.oc describe machines.machine.openshift.io <machine_name> \ -n openshift-machine-api
$ oc describe machines.machine.openshift.io <machine_name> \ -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster API 컴퓨팅 머신의 경우 필드 값은
ClusterAPI
입니다.