1장. 머신 관리 개요
머신 관리를 사용하여 AWS(Amazon Web Services), Azure, GCP(Google Cloud Platform), OpenStack, RHV(Red Hat Virtualization) 및 vSphere와 같은 기본 인프라에서 OpenShift Container Platform 클러스터를 유연하게 관리할 수 있습니다. 클러스터를 제어하고 특정 워크로드 정책에 따라 클러스터 확장 및 축소와 같은 자동 확장을 수행할 수 있습니다.
OpenShift Container Platform 클러스터는 로드가 증가하거나 감소하면 수평으로 확장 및 축소할 수 있습니다. 변화하는 워크로드에 맞게 조정되는 클러스터가 있어야 합니다.
머신 관리는 CRD(Custom Resource Definition)로 구현됩니다. CRD 오브젝트는 클러스터에서 새로운 고유한 오브젝트 종류를
정의하고 Kubernetes API 서버가 오브젝트의 전체 라이프사이클을 처리할 수 있도록 합니다.
Machine API Operator는 다음 리소스를 프로비저닝합니다.
- MachineSet
- Machine
- Cluster Autoscaler
- Machine Autoscaler
- 머신 상태 점검
1.1. Machine API 개요
Machine API는 업스트림 Cluster API 프로젝트 및 사용자 정의 OpenShift Container Platform 리소스를 기반으로 하는 주요 리소스의 조합입니다.
OpenShift Container Platform 4.9 클러스터의 경우 Machine API는 클러스터 설치가 완료된 후 모든 노드 호스트 프로비저닝 관리 작업을 수행합니다. 이 시스템으로 인해 OpenShift Container Platform 4.9는 퍼블릭 또는 프라이빗 클라우드 인프라에 더하여 탄력적이고 동적인 프로비저닝 방법을 제공합니다.
두 가지 주요 리소스는 다음과 같습니다.
- Machine
-
노드의 호스트를 설명하는 기본 단위입니다. 머신에는
providerSpec
사양이 있으며 이는 다른 클라우드 플랫폼에 제공되는 컴퓨팅 노드 유형을 설명합니다. 예를 들어 AWS(Amazon Web Services)의 작업자 노드에 대한 머신 유형은 특정 머신 유형과 필요한 메타 데이터를 정의할 수 있습니다. - 머신 세트
MachineSet
리소스는 머신 그룹입니다. 머신 세트는 머신에 연관되어 있고 복제본 세트는 pod에 연관되어 있습니다. 더 많은 머신이 필요하거나 규모를 줄여야 하는 경우 컴퓨터 요구 사항에 맞게 머신 세트의 replicas 필드를 변경합니다.주의컨트롤 플레인 시스템은 머신 세트에서 관리할 수 없습니다.
다음 사용자 지정 리소스는 클러스터에 더 많은 기능을 추가할 수 있습니다.
- 머신 자동 스케일러
MachineAutoscaler
리소스는 클라우드에서 컴퓨팅 머신을 자동으로 확장합니다. 지정된 컴퓨팅 머신 세트에서 노드의 최소 및 최대 스케일링 경계를 설정할 수 있으며 머신 자동 스케일러는 해당 노드 범위를 유지합니다.MachineAutoscaler
객체는ClusterAutoscaler
객체를 설정한 후에 사용할 수 있습니다.ClusterAutoscaler
및MachineAutoscaler
리소스는 모두ClusterAutoscalerOperator
오브젝트에서 사용 가능합니다.- Cluster autoscaler
- 이 리소스는 업스트림 클러스터 자동 스케일러 프로젝트를 기반으로 합니다. OpenShift Container Platform 구현에서는 머신 세트 API를 확장하여 Machine API와 통합됩니다. 코어, 노드, 메모리, GPU 등과 같은 리소스의 클러스터 전체에서 확장 제한을 설정할 수 있습니다. 중요도가 낮은 Pod에 대해 새 노드가 온라인 상태가 되지 않도록 클러스터가 Pod에 우선 순위를 설정할 수 있습니다. 노드를 확장할 수는 있지만 축소할 수 없도록 확장 정책을 설정할 수도 있습니다.
- 머신 상태 점검
-
MachineHealthCheck
리소스는 머신의 비정상적인 상태를 감지하여 삭제한 후 지원되는 플랫폼에서 새 머신을 생성합니다.
OpenShift Container Platform 버전 3.11에서는 클러스터가 머신 프로비저닝을 관리하지 않았기 때문에 다중 영역 아키텍처를 쉽게 롤아웃할 수 없었습니다. OpenShift Container Platform 버전 4.1부터 이러한 프로세스가 더 쉬워졌습니다. 각 머신 세트의 범위는 단일 영역에서 지정되므로 설치 프로그램은 사용자를 대신하여 가용성 영역 전체에 머신 세트를 보냅니다. 또한 계산이 동적이고 영역 장애가 발생하여 머신을 재조정해야하는 경우 처리할 수 있는 영역을 확보할 수 있습니다. Autoscaler는 클러스터의 수명 기간 동안 최적의 균형을 유지합니다.