13.3. 클러스터 API를 사용하여 머신 관리
클러스터 API를 사용하여 머신을 관리하는 것은 기술 프리뷰 기능만 해당합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
13.3.1. 클러스터 API 머신 템플릿 수정
YAML 매니페스트 파일을 수정하고 OpenShift CLI(oc
)로 적용하여 클러스터의 머신 템플릿 리소스를 업데이트할 수 있습니다.
사전 요구 사항
- 클러스터 API를 사용하는 OpenShift Container Platform 클러스터를 배포했습니다.
-
cluster-admin
권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
다음 명령을 실행하여 클러스터의 머신 템플릿 리소스를 나열합니다.
$ oc get <machine_template_kind> 1
- 1
- 플랫폼에 해당하는 값을 지정합니다. 다음 값이 유효합니다.
-
AWSMachineTemplate
: 클러스터가 AWS(Amazon Web Services)에서 실행되고 있습니다. -
GCPMachineTemplate
: 클러스터가 GCP(Google Cloud Platform)에서 실행되고 있습니다. -
VSphereMachineTemplate
: 클러스터가 VMware vSphere에서 실행되고 있습니다.
-
출력 예
NAME AGE <template_name> 77m
다음 명령을 실행하여 편집할 수 있는 파일에 클러스터의 머신 템플릿 리소스를 작성합니다.
$ oc get <template_name> -o yaml > <template_name>.yaml
여기서
<template_name
>은 클러스터의 머신 템플릿 리소스의 이름입니다.-
다른 이름으로 <
template_name>.yaml
파일의 사본을 만듭니다. 이 절차에서는 <modified_template_name>.yaml
을 예제 파일 이름으로 사용합니다. 텍스트 편집기를 사용하여 클러스터에 대해 업데이트된 머신 템플릿 리소스를 정의하는 <
modified_template_name>.yaml
파일을 변경합니다. 머신 템플릿 리소스를 편집할 때 다음을 관찰합니다.-
spec
스탠자의 매개변수는 공급자별로 다릅니다. 자세한 내용은 공급자의 샘플 Cluster API 머신 템플릿 YAML을 참조하십시오. 기존 값과 다른
metadata.name
매개변수에 값을 사용해야 합니다.중요이 템플릿을 참조하는 Cluster API 컴퓨팅 머신 세트의 경우 새 머신 템플릿 리소스의
metadata.name
값과 일치하도록spec.template.spec.infrastructureRef.name
매개변수를 업데이트해야 합니다.
-
다음 명령을 실행하여 머신 템플릿 CR을 적용합니다.
$ oc apply -f <modified_template_name>.yaml 1
- 1
- 편집된 YAML 파일을 새 이름으로 사용합니다.
다음 단계
-
이 템플릿을 참조하는 Cluster API 컴퓨팅 머신 세트의 경우 새 머신 템플릿 리소스의
metadata.name
값과 일치하도록spec.template.spec.infrastructureRef.name
매개변수를 업데이트합니다. 자세한 내용은 "CLI를 사용하여 설정된 컴퓨팅 머신 수정"을 참조하십시오.
13.3.2. CLI를 사용하여 컴퓨팅 머신 세트 수정
컴퓨팅 머신 세트의 구성을 수정한 다음 CLI를 사용하여 변경 사항을 클러스터의 머신에 전파할 수 있습니다.
컴퓨팅 머신 세트 구성을 업데이트하면 기능을 활성화하거나 생성하는 시스템의 속성을 변경할 수 있습니다. 컴퓨팅 머신 세트를 수정할 때 변경 사항은 업데이트된 MachineSet
CR(사용자 정의 리소스)을 저장한 후 생성된 컴퓨팅 머신에만 적용됩니다. 변경 사항은 기존 머신에는 영향을 미치지 않습니다.
기본 클라우드 공급자의 변경 사항은 Machine
또는 MachineSet
CR에 반영되지 않습니다. 클러스터 관리 인프라에서 인스턴스 구성을 조정하려면 클러스터 측 리소스를 사용합니다.
컴퓨팅 머신 세트를 스케일링하여 복제본 수를 두 배로 만든 다음 원래 복제본 수로 축소하여 업데이트된 구성을 반영하는 기존 머신을 새 시스템으로 교체할 수 있습니다.
다른 변경을 수행하지 않고 컴퓨팅 머신 세트를 확장해야하는 경우 머신을 삭제할 필요가 없습니다.
기본적으로 OpenShift Container Platform 라우터 Pod는 컴퓨팅 머신에 배포됩니다. 라우터는 웹 콘솔을 포함한 일부 클러스터 리소스에 액세스해야 하므로 먼저 라우터 Pod를 재배치하지 않는 한 컴퓨팅 머신 세트를 0
으로 스케일링하지 마십시오.
이 절차의 출력 예제에서는 AWS 클러스터 값을 사용합니다.
사전 요구 사항
- OpenShift Container Platform 클러스터는 클러스터 API를 사용합니다.
-
OpenShift CLI(
oc
)를 사용하여 관리자로 클러스터에 로그인했습니다.
프로세스
다음 명령을 실행하여 클러스터의 컴퓨팅 머신 세트를 나열합니다.
$ oc get machinesets.cluster.x-k8s.io -n openshift-cluster-api
출력 예
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
다음 명령을 실행하여 컴퓨팅 머신 세트를 편집합니다.
$ oc edit machinesets.cluster.x-k8s.io <machine_set_name> \ -n openshift-cluster-api
변경 사항을 적용하기 위해 머신 세트를 스케일링할 때 필요하므로
spec.replicas
필드의 값을 확인합니다.apiVersion: cluster.x-k8s.io/v1beta1 kind: MachineSet metadata: name: <machine_set_name> namespace: openshift-cluster-api spec: replicas: 2 1 # ...
- 1
- 이 절차의 예제에서는
replicas
값이2
인 컴퓨팅 머신 세트를 보여줍니다.
- 원하는 구성 옵션을 사용하여 컴퓨팅 머신 세트 CR을 업데이트하고 변경 사항을 저장합니다.
다음 명령을 실행하여 업데이트된 컴퓨팅 머신 세트에서 관리하는 머신을 나열합니다.
$ oc get machines.cluster.x-k8s.io \ -n openshift-cluster-api \ -l cluster.x-k8s.io/set-name=<machine_set_name>
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
업데이트된 컴퓨팅 머신 세트에서 관리하는 각 머신에 대해 다음 명령을 실행하여
삭제
주석을 설정합니다.$ oc annotate machines.cluster.x-k8s.io/<machine_name_original_1> \ -n openshift-cluster-api \ cluster.x-k8s.io/delete-machine="true"
새 구성으로 대체 머신을 생성하려면 다음 명령을 실행하여 컴퓨팅 머신 세트를 복제본 수의 두 배로 스케일링합니다.
$ oc scale --replicas=4 \1 machinesets.cluster.x-k8s.io <machine_set_name> \ -n openshift-cluster-api
- 1
- 원래 예제 값
2
는4
로 두 배가됩니다.
다음 명령을 실행하여 업데이트된 컴퓨팅 머신 세트에서 관리하는 머신을 나열합니다.
$ oc get machines.cluster.x-k8s.io \ -n openshift-cluster-api \ -l cluster.x-k8s.io/set-name=<machine_set_name>
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
새 머신이
Running
단계에 있는 경우 컴퓨팅 머신 세트를 원래 복제본 수로 확장할 수 있습니다.이전 구성으로 생성된 머신을 제거하려면 다음 명령을 실행하여 컴퓨팅 머신 세트를 원래 복제본 수로 확장합니다.
$ oc scale --replicas=2 \1 machinesets.cluster.x-k8s.io <machine_set_name> \ -n openshift-cluster-api
- 1
- 원래 예제 값인
2
입니다.
검증
업데이트된 머신 세트로 생성된 머신에 올바른 구성이 있는지 확인하려면 다음 명령을 실행하여 새 머신 중 하나에 대해 CR의 관련 필드를 검사합니다.
$ oc describe machines.cluster.x-k8s.io <machine_name_updated_1> \ -n openshift-cluster-api
업데이트된 구성이 없는 컴퓨팅 머신이 삭제되었는지 확인하려면 다음 명령을 실행하여 업데이트된 컴퓨팅 시스템 세트에서 관리하는 머신을 나열합니다.
$ oc get machines.cluster.x-k8s.io \ -n openshift-cluster-api \ cluster.x-k8s.io/set-name=<machine_set_name>
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
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