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을 예제 파일 이름으로 사용합니다.apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: <machine_template_kind>1 metadata: name: <template_name>2 namespace: openshift-cluster-api spec: template: spec:3 - 1
- 머신 템플릿 유형을 지정합니다. 이 값은 플랫폼의 값과 일치해야 합니다. 다음 값이 유효합니다.
Expand 클러스터 인프라 공급자 현재의 AWS(Amazon Web Services)
AWSMachineTemplateGoogle Cloud
GCPMachineTemplateMicrosoft Azure
AzureMachineTemplateRed Hat OpenStack Platform (RHOSP)
OpenStackMachineTemplateVMware vSphere
VSphereMachineTemplate베어 메탈
Metal3MachineTemplate - 2
- 머신 템플릿의 이름을 지정합니다.
- 3
- 환경에 대한 세부 정보를 지정합니다. 이러한 매개변수는 공급자별로 다릅니다. 자세한 내용은 공급자의 샘플 Cluster API 머신 템플릿 YAML을 참조하십시오.
다음 명령을 실행하여 머신 템플릿 CR을 생성합니다.
$ oc create -f <machine_template_resource_file>.yaml
검증
다음 명령을 실행하여 머신 템플릿 CR이 생성되었는지 확인합니다.
$ oc get <machine_template_kind> -n openshift-cluster-api여기서
<machine_template_kind>는 플랫폼에 해당하는 값입니다.출력 예
NAME AGE <template_name> 77m
11.2.1.2. 클러스터 API 컴퓨팅 머신 세트 생성 링크 복사링크가 클립보드에 복사되었습니다!
Cluster API를 사용하여 선택한 특정 워크로드에 대한 머신 컴퓨팅 리소스를 동적으로 관리하는 컴퓨팅 머신 세트를 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터를 배포했습니다.
- 클러스터 API 사용을 활성화했습니다.
-
cluster-admin권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다. - 머신 템플릿 리소스가 생성되어 있습니다.
프로세스
다음과 유사한 YAML 파일을 생성합니다. 이 절차에서는 &
lt;machine_set_resource_file>.yaml을 예제 파일 이름으로 사용합니다.apiVersion: cluster.x-k8s.io/v1beta1 kind: MachineSet metadata: name: <machine_set_name>1 namespace: openshift-cluster-api spec: clusterName: <cluster_name>2 replicas: 1 selector: matchLabels: test: example template: metadata: labels: test: example spec:3 # ...- 1
- 컴퓨팅 머신 세트의 이름을 지정합니다. 클러스터 ID, 머신 역할 및 리전은 <
cluster_name>-<role>-<region> 형식으로 이 값에 대한 일반적인 패턴을 형성합니다. - 2
- 클러스터 이름을 지정합니다. 다음 명령을 실행하여 클러스터 ID의 값을 가져옵니다.
$ oc get infrastructure cluster \ -o jsonpath='{.status.infrastructureName}' - 3
- 환경에 대한 세부 정보를 지정합니다. 이러한 매개변수는 공급자별로 다릅니다. 자세한 내용은 공급자의 샘플 Cluster API 컴퓨팅 머신 세트 YAML을 참조하십시오.
다음 명령을 실행하여 컴퓨팅 머신 세트 CR을 생성합니다.
$ oc create -f <machine_set_resource_file>.yaml다음 명령을 실행하여 컴퓨팅 머신 세트 CR이 생성되었는지 확인합니다.
$ oc get machineset.cluster.x-k8s.io -n openshift-cluster-api출력 예
NAME CLUSTER REPLICAS READY AVAILABLE AGE VERSION <machine_set_name> <cluster_name> 1 1 1 17m새 컴퓨팅 머신 세트가 사용 가능한 경우
REPLICAS및AVAILABLE값이 일치합니다. 컴퓨팅 머신 세트를 사용할 수 없는 경우 몇 분 기다렸다가 명령을 다시 실행합니다.
검증
컴퓨팅 머신 세트가 필수 구성에 따라 시스템을 생성하고 있는지 확인하려면 다음 명령을 실행하여 클러스터의 시스템 및 노드 목록을 검토합니다.
클러스터 API 머신 목록을 확인합니다.
$ oc get machine.cluster.x-k8s.io -n openshift-cluster-api출력 예
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_set_name>-<string_id> <cluster_name> <ip_address>.<region>.compute.internal <provider_id> Running 8m23s노드 목록을 확인합니다.
$ oc get node출력 예
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