11.3. 클러스터 API를 사용하여 머신 관리
클러스터 API를 사용하여 머신을 관리하는 것은 기술 프리뷰 기능만 해당합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
11.3.1. 클러스터 API 머신 템플릿 수정 링크 복사링크가 클립보드에 복사되었습니다!
YAML 매니페스트 파일을 수정하고 OpenShift CLI( oc
)를 사용하여 클러스터의 머신 템플릿 리소스를 업데이트할 수 있습니다.
사전 요구 사항
- 클러스터 API를 사용하는 OpenShift Container Platform 클러스터를 배포했습니다.
-
클러스터 관리자
권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
다음 명령을 실행하여 클러스터의 머신 템플릿 리소스를 나열하세요.
oc get <machine_template_kind>
$ oc get <machine_template_kind>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 귀하의 플랫폼에 해당하는 값을 지정하세요. 유효한 값은 다음과 같습니다.
Expand 클러스터 인프라 제공자 현재의 Amazon Web Services
AWSMachineTemplate
Google Cloud Platform
GCPMachineTemplate
Microsoft Azure
AzureMachineTemplate
RHOSP
OpenStackMachineTemplate
VMware vSphere
VSphereMachineTemplate
베어 메탈
Metal3MachineTemplate
출력 예
NAME AGE <template_name> 77m
NAME AGE <template_name> 77m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 편집할 수 있는 파일에 클러스터의 머신 템플릿 리소스를 작성합니다.
oc get <machine_template_kind> <template_name> -o yaml > <template_name>.yaml
$ oc get <machine_template_kind> <template_name> -o yaml > <template_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
<template_name>
은 클러스터의 머신 템플릿 리소스 이름입니다.-
다른 이름으로
<template_name>.yaml
파일의 사본을 만듭니다. 이 절차에서는<modified_template_name>.yaml을
예시 파일 이름으로 사용합니다. 텍스트 편집기를 사용하여 클러스터에 대한 업데이트된 머신 템플릿 리소스를 정의하는
<modified_template_name>.yaml
파일을 변경합니다. 머신 템플릿 리소스를 편집할 때 다음 사항을 준수하세요.-
사양
절의 매개변수는 공급자에 따라 다릅니다. 자세한 내용은 공급자의 샘플 클러스터 API 머신 템플릿 YAML을 참조하세요. metadata.name
매개변수에는 기존 값과 다른 값을 사용해야 합니다.중요이 템플릿을 참조하는 모든 클러스터 API 컴퓨팅 머신 세트의 경우
spec.template.spec.infrastructureRef.name
매개변수를 업데이트하여 새 머신 템플릿 리소스의metadata.name
값과 일치해야 합니다.
-
다음 명령을 실행하여 머신 템플릿 CR을 적용합니다.
oc apply -f <modified_template_name>.yaml
$ oc apply -f <modified_template_name>.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 편집된 YAML 파일을 새 이름으로 사용합니다.
다음 단계
-
이 템플릿을 참조하는 모든 클러스터 API 컴퓨팅 머신 세트의 경우
spec.template.spec.infrastructureRef.name
매개변수를 업데이트하여 새 머신 템플릿 리소스의metadata.name
값과 일치시킵니다. 자세한 내용은 "CLI를 사용하여 컴퓨팅 머신 세트 수정"을 참조하세요.
11.3.2. CLI를 사용하여 컴퓨팅 머신 세트 수정 링크 복사링크가 클립보드에 복사되었습니다!
CLI를 사용하여 컴퓨팅 머신 세트의 구성을 수정한 다음 클러스터의 머신에 변경 사항을 전파할 수 있습니다.
컴퓨팅 머신 세트 구성을 업데이트하면 해당 세트에서 생성된 머신의 기능을 활성화하거나 속성을 변경할 수 있습니다. 컴퓨팅 머신 세트를 수정하는 경우, 변경 사항은 업데이트된 MachineSet
사용자 정의 리소스(CR)를 저장한 후에 생성된 컴퓨팅 머신에만 적용됩니다. 이러한 변경 사항은 기존 장비에는 영향을 미치지 않습니다.
기본 클라우드 공급자에서 변경한 내용은 Machine
또는 MachineSet
CR에 반영되지 않습니다. 클러스터 관리 인프라에서 인스턴스 구성을 조정하려면 클러스터 측 리소스를 사용합니다.
업데이트된 구성을 반영하는 새 머신으로 기존 머신을 교체하려면 컴퓨팅 머신 세트를 확장하여 복제본 수를 두 배로 늘린 다음 복제본 수를 원래 수로 줄입니다.
다른 변경 없이 컴퓨팅 머신 세트를 확장해야 하는 경우 머신을 삭제할 필요가 없습니다.
기본적으로 OpenShift Container Platform 라우터 포드는 컴퓨팅 머신에 배포됩니다. 라우터는 웹 콘솔을 포함한 일부 클러스터 리소스에 액세스해야 하므로 라우터 포드를 먼저 재배치하지 않는 한 컴퓨팅 머신 세트를 0
으로 확장하지 마세요.
이 절차의 출력 예에서는 AWS 클러스터의 값을 사용합니다.
사전 요구 사항
- OpenShift Container Platform 클러스터는 클러스터 API를 사용합니다.
-
OpenShift CLI(
oc
)를 사용하여 관리자로 클러스터에 로그인했습니다.
프로세스
다음 명령을 실행하여 클러스터에 있는 컴퓨팅 머신 세트를 나열하세요.
oc get machinesets.cluster.x-k8s.io -n openshift-cluster-api
$ oc get machinesets.cluster.x-k8s.io -n openshift-cluster-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME CLUSTER REPLICAS READY AVAILABLE AGE VERSION <compute_machine_set_name_1> <cluster_name> 1 1 1 26m <compute_machine_set_name_2> <cluster_name> 1 1 1 26m
NAME CLUSTER REPLICAS READY AVAILABLE AGE VERSION <compute_machine_set_name_1> <cluster_name> 1 1 1 26m <compute_machine_set_name_2> <cluster_name> 1 1 1 26m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 컴퓨팅 머신 세트를 편집합니다.
oc edit machinesets.cluster.x-k8s.io <machine_set_name> \ -n openshift-cluster-api
$ oc edit machinesets.cluster.x-k8s.io <machine_set_name> \ -n openshift-cluster-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하기 위해 머신 세트를 확장할 때 필요하므로
spec.replicas
필드의 값을 기록해 두세요.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이 절차의 예에서는
복제본
값이2
인 컴퓨팅 머신 세트를 보여줍니다.
- 원하는 구성 옵션으로 컴퓨팅 머신 세트 CR을 업데이트하고 변경 사항을 저장합니다.
다음 명령을 실행하여 업데이트된 컴퓨팅 머신 세트에서 관리하는 머신을 나열합니다.
oc get machines.cluster.x-k8s.io \ -n openshift-cluster-api \ -l cluster.x-k8s.io/set-name=<machine_set_name>
$ oc get machines.cluster.x-k8s.io \ -n openshift-cluster-api \ -l cluster.x-k8s.io/set-name=<machine_set_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS 클러스터에 대한 출력 예
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_name_original_1> <cluster_name> <original_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 4h <machine_name_original_2> <cluster_name> <original_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 4h
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_name_original_1> <cluster_name> <original_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 4h <machine_name_original_2> <cluster_name> <original_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 4h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 컴퓨팅 머신 세트에서 관리하는 각 머신에 대해 다음 명령을 실행하여
삭제
주석을 설정합니다.oc annotate machines.cluster.x-k8s.io/<machine_name_original_1> \ -n openshift-cluster-api \ cluster.x-k8s.io/delete-machine="true"
$ oc annotate machines.cluster.x-k8s.io/<machine_name_original_1> \ -n openshift-cluster-api \ cluster.x-k8s.io/delete-machine="true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새로운 구성으로 대체 머신을 생성하려면 다음 명령을 실행하여 컴퓨팅 머신 세트를 복제본 수의 두 배로 확장합니다.
oc scale --replicas=4 \ machinesets.cluster.x-k8s.io <machine_set_name> \ -n openshift-cluster-api
$ oc scale --replicas=4 \
1 machinesets.cluster.x-k8s.io <machine_set_name> \ -n openshift-cluster-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 원래 예제 값
2
는4
로 두 배가 됩니다.
다음 명령을 실행하여 업데이트된 컴퓨팅 머신 세트에서 관리하는 머신을 나열합니다.
oc get machines.cluster.x-k8s.io \ -n openshift-cluster-api \ -l cluster.x-k8s.io/set-name=<machine_set_name>
$ oc get machines.cluster.x-k8s.io \ -n openshift-cluster-api \ -l cluster.x-k8s.io/set-name=<machine_set_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS 클러스터에 대한 출력 예
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_name_original_1> <cluster_name> <original_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 4h <machine_name_original_2> <cluster_name> <original_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 4h <machine_name_updated_1> <cluster_name> <updated_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Provisioned 55s <machine_name_updated_2> <cluster_name> <updated_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Provisioning 55s
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_name_original_1> <cluster_name> <original_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 4h <machine_name_original_2> <cluster_name> <original_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 4h <machine_name_updated_1> <cluster_name> <updated_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Provisioned 55s <machine_name_updated_2> <cluster_name> <updated_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Provisioning 55s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새로운 머신이
실행
단계에 있을 때, 컴퓨팅 머신 세트를 원래 복제본 수로 확장할 수 있습니다.이전 구성으로 생성된 머신을 제거하려면 다음 명령을 실행하여 컴퓨팅 머신 세트를 원래 복제본 수로 확장합니다.
oc scale --replicas=2 \ machinesets.cluster.x-k8s.io <machine_set_name> \ -n openshift-cluster-api
$ oc scale --replicas=2 \
1 machinesets.cluster.x-k8s.io <machine_set_name> \ -n openshift-cluster-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 원래 예제 값은
2
입니다.
검증
업데이트된 머신 세트로 생성된 머신이 올바른 구성을 가지고 있는지 확인하려면 다음 명령을 실행하여 새 머신 중 하나에 대한 CR의 관련 필드를 조사하세요.
oc describe machines.cluster.x-k8s.io <machine_name_updated_1> \ -n openshift-cluster-api
$ oc describe machines.cluster.x-k8s.io <machine_name_updated_1> \ -n openshift-cluster-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 구성이 없는 컴퓨팅 머신이 삭제되었는지 확인하려면 다음 명령을 실행하여 업데이트된 컴퓨팅 머신 세트에서 관리되는 머신을 나열합니다.
oc get machines.cluster.x-k8s.io \ -n openshift-cluster-api \ cluster.x-k8s.io/set-name=<machine_set_name>
$ oc get machines.cluster.x-k8s.io \ -n openshift-cluster-api \ cluster.x-k8s.io/set-name=<machine_set_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS 클러스터에 대한 삭제가 진행되는 동안의 예시 출력
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_name_original_1> <cluster_name> <original_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m <machine_name_original_2> <cluster_name> <original_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m <machine_name_updated_1> <cluster_name> <updated_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m <machine_name_updated_2> <cluster_name> <updated_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_name_original_1> <cluster_name> <original_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m <machine_name_original_2> <cluster_name> <original_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m <machine_name_updated_1> <cluster_name> <updated_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m <machine_name_updated_2> <cluster_name> <updated_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS 클러스터에 대한 삭제가 완료되었을 때의 출력 예
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_name_updated_1> <cluster_name> <updated_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m <machine_name_updated_2> <cluster_name> <updated_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_name_updated_1> <cluster_name> <updated_1_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m <machine_name_updated_2> <cluster_name> <updated_2_ip>.<region>.compute.internal aws:///us-east-2a/i-04e7b2cbd61fd2075 Running 18m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow