12.4. 컨트롤 플레인 머신 세트를 사용하여 컨트롤 플레인 머신 관리
컨트롤 플레인 머신 세트는 컨트롤 플레인 관리의 몇 가지 필수 요소를 자동화합니다.
12.4.1. 컨트롤 플레인 시스템 교체
컨트롤 플레인 머신 세트가 있는 클러스터에서 컨트롤 플레인 시스템을 교체하려면 머신을 수동으로 삭제합니다. 컨트롤 플레인 머신 세트는 컨트롤 플레인 머신 세트 CR(사용자 정의 리소스)의 사양을 사용하여 삭제된 머신을 하나로 대체합니다.
프로세스
다음 명령을 실행하여 클러스터의 컨트롤 플레인 시스템을 나열합니다.
$ oc get machines \ -l machine.openshift.io/cluster-api-machine-role==master \ -n openshift-machine-api
다음 명령을 실행하여 컨트롤 플레인 시스템을 삭제합니다.
$ oc delete machine \ -n openshift-machine-api \ <control_plane_machine_name> 1
- 1
- 삭제할 컨트롤 플레인 시스템의 이름을 지정합니다.
참고여러 컨트롤 플레인 시스템을 삭제하면 컨트롤 플레인 머신 세트가 구성된 업데이트 전략에 따라 이를 대체합니다.
-
기본
RollingUpdate
업데이트 전략을 사용하는 클러스터의 경우 Operator는 각 머신이 교체될 때까지 한 번에 하나의 머신을 교체합니다. -
OnDelete
업데이트 전략을 사용하도록 구성된 클러스터의 경우 Operator는 필요한 모든 대체 머신을 동시에 생성합니다.
두 전략 모두 컨트롤 플레인 머신 교체 중에 etcd 상태를 유지합니다.
12.4.2. 컨트롤 플레인 구성 업데이트
컨트롤 플레인 머신 세트 CR(사용자 정의 리소스)의 사양을 업데이트하여 컨트롤 플레인의 머신 구성을 변경할 수 있습니다.
Control Plane Machine Set Operator는 컨트롤 플레인 머신을 모니터링하고 구성을 컨트롤 플레인 머신 세트 CR의 사양과 비교합니다. CR의 사양과 컨트롤 플레인 머신 구성 사이에 불일치가 있는 경우 Operator는 해당 컨트롤 플레인 머신을 교체하도록 표시합니다.
CR의 매개변수에 대한 자세한 내용은 "Control Plane machine set configuration"을 참조하십시오.
사전 요구 사항
- 클러스터에 컨트롤 플레인 머신 세트 Operator가 활성화 및 작동합니다.
프로세스
다음 명령을 실행하여 컨트롤 플레인 머신 세트 CR을 편집합니다.
$ oc edit controlplanemachineset.machine.openshift.io cluster \ -n openshift-machine-api
- 클러스터 구성에서 업데이트하려는 필드의 값을 변경합니다.
- 변경 사항을 저장하십시오.
다음 단계
-
기본
RollingUpdate
업데이트 전략을 사용하는 클러스터의 경우 컨트롤 플레인 머신 세트는 변경 사항을 컨트롤 플레인 구성에 자동으로 전파합니다. -
OnDelete
업데이트 전략을 사용하도록 구성된 클러스터의 경우 컨트롤 플레인 시스템을 수동으로 교체해야 합니다.
12.4.2.1. 컨트롤 플레인 구성 자동 업데이트
RollingUpdate
업데이트 전략에서는 변경 사항을 컨트롤 플레인 구성에 자동으로 전파합니다. 이 업데이트 전략은 컨트롤 플레인 머신 세트의 기본 구성입니다.
RollingUpdate
업데이트 전략을 사용하는 클러스터의 경우 Operator는 CR에 지정된 구성으로 교체 컨트롤 플레인 머신을 생성합니다. 교체 컨트롤 플레인 시스템이 준비되면 Operator는 교체가 표시된 컨트롤 플레인 시스템을 삭제합니다. 그런 다음 교체 시스템이 컨트롤 플레인에 연결됩니다.
여러 컨트롤 플레인 머신이 교체용으로 표시된 경우 Operator는 각 머신을 교체할 때까지 이 교체 프로세스를 한 번에 하나씩 반복하여 교체하는 동안 etcd 상태를 보호합니다.
12.4.2.2. 컨트롤 플레인 구성에 대한 수동 업데이트
OnDelete
업데이트 전략을 사용하여 머신을 수동으로 교체하여 컨트롤 플레인 구성에 변경 사항을 전파할 수 있습니다. 시스템을 수동으로 교체하면 변경 사항을 보다 효과적으로 적용하기 전에 단일 시스템에서 구성 변경 사항을 테스트할 수 있습니다.
OnDelete
업데이트 전략을 사용하도록 구성된 클러스터의 경우 Operator는 기존 머신을 삭제할 때 교체 컨트롤 플레인 머신을 생성합니다. 교체 컨트롤 플레인 시스템이 준비되면 etcd Operator에서 기존 머신을 삭제할 수 있습니다. 그런 다음 교체 시스템이 컨트롤 플레인에 연결됩니다.
여러 컨트롤 플레인 머신이 삭제되면 Operator는 필요한 모든 교체 머신을 동시에 생성합니다. Operator는 한 번에 두 개 이상의 머신이 컨트롤 플레인에서 제거되지 않도록 하여 etcd 상태를 유지합니다.
12.4.3. 컨트롤 플레인 시스템에 대한 Amazon Web Services 기능 활성화
컨트롤 플레인 머신 세트의 구성을 변경하여 컨트롤 플레인 머신에서 AWS(Amazon Web Services) 기능을 활성화할 수 있습니다. 업데이트를 컨트롤 플레인 머신 세트에 저장하면 컨트롤 플레인 머신 세트 Operator가 구성된 업데이트 전략에 따라 컨트롤 플레인 시스템을 업데이트합니다.
12.4.3.1. API 서버를 프라이빗으로 제한
AWS(Amazon Web Services)에 클러스터를 배포한 후 프라이빗 영역만 사용하도록 API 서버를 재구성할 수 있습니다.
사전 요구 사항
-
OpenShift CLI (
oc
)를 설치합니다. -
admin
권한이 있는 사용자로 웹 콘솔에 액세스합니다.
프로세스
클라우드 공급자의 웹 포털 또는 콘솔에서 다음 작업을 수행합니다.
적절한 로드 밸런서 구성 요소를 찾아 삭제합니다.
- AWS의 경우 외부 로드 밸런서를 삭제합니다. 프라이빗 영역의 API DNS 항목은 동일한 설정을 사용하는 내부 로드 밸런서를 가리키므로 내부 로드 밸런서를 변경할 필요가 없습니다.
-
퍼블릭 영역의
api.$clustername.$yourdomain
DNS 항목을 삭제합니다.
컨트롤 플레인 머신 세트 사용자 정의 리소스에서 다음 행을 삭제하여 외부 로드 밸런서를 제거합니다.
providerSpec: value: loadBalancers: - name: lk4pj-ext 1 type: network 2 - name: lk4pj-int type: network
12.4.3.2. 컨트롤 플레인 머신 세트를 사용하여 Amazon Web Services 인스턴스 유형 변경
컨트롤 플레인 머신 세트 CR(사용자 정의 리소스)에서 사양을 업데이트하여 컨트롤 플레인 시스템이 사용하는 AWS(Amazon Web Services) 인스턴스 유형을 변경할 수 있습니다.
사전 요구 사항
- AWS 클러스터는 컨트롤 플레인 머신 세트를 사용합니다.
절차
providerSpec
필드 아래에 다음 행을 편집합니다.providerSpec: value: ... instanceType: <compatible_aws_instance_type> 1
- 1
- 이전 선택과 동일한 기본으로 더 큰 AWS 인스턴스 유형을 지정합니다. 예를 들어
m6i.xlarge
를m6i.2xlarge
또는m6i.4xlarge
로 변경할 수 있습니다.
- 변경 사항을 저장하십시오.
12.4.3.3. Amazon EC2 인스턴스 메타데이터 서비스에 대한 머신 세트 옵션
머신 세트를 사용하여 특정 버전의 Amazon EC2 Instance Metadata Service(IMDS)를 사용하는 머신을 생성할 수 있습니다. 머신 세트는 IMDSv1 및 IMDSv2 또는 IMDSv2 사용을 필요로 하는 머신 모두를 사용할 수 있는 머신을 생성할 수 있습니다.
IMDSv2 사용은 OpenShift Container Platform 버전 4.7 이상으로 생성된 AWS 클러스터에서만 지원됩니다.
IMDSv2가 필요한 머신을 생성하도록 머신 세트를 구성하기 전에 AWS 메타데이터 서비스와 상호 작용하는 모든 워크로드가 IMDSv2를 지원하는지 확인하십시오.
12.4.3.3.1. 머신 세트를 사용하여 IMDS 구성
머신 세트 YAML 파일에서 metadataServiceOptions.authentication
값을 추가하거나 편집하여 IMDSv2를 사용할지 여부를 지정할 수 있습니다.
사전 요구 사항
- IMDSv2를 사용하려면 OpenShift Container Platform 버전 4.7 이상을 사용하여 AWS 클러스터가 생성되어 있어야 합니다.
절차
providerSpec
필드 아래에 다음 행을 추가하거나 편집합니다.providerSpec: value: metadataServiceOptions: authentication: Required 1
- 1
- IMDSv2를 요구하려면 매개변수 값을
Required
로 설정합니다. IMDSv1 및 IMDSv2를 모두 사용하려면 매개변수 값을Optional
로 설정합니다. 값이 지정되지 않은 경우 IMDSv1 및 IMDSv2 둘 다 허용됩니다.
12.4.3.4. 머신을 Dedicated 인스턴스로 배포하는 머신 세트
AWS에서 실행 중인 머신 세트를 생성하여 머신을 Dedicated 인스턴스로 배포할 수 있습니다. Dedicated 인스턴스는 단일 고객 전용 하드웨어의 VPC(가상 프라이빗 클라우드)에서 실행됩니다. 이러한 Amazon EC2 인스턴스는 호스트 하드웨어 수준에서 물리적으로 분리됩니다. Dedicated 인스턴스의 분리는 인스턴스가 하나의 유료 계정에 연결된 다른 AWS 계정에 속하는 경우에도 발생합니다. 하지만 전용이 아닌 다른 인스턴스는 동일한 AWS 계정에 속하는 경우 Dedicated 인스턴스와 하드웨어를 공유할 수 있습니다.
공용 또는 전용 테넌시가 있는 인스턴스는 Machine API에서 지원됩니다. 공용 테넌시가 있는 인스턴스는 공유 하드웨어에서 실행됩니다. 공용 테넌시는 기본 테넌시입니다. 전용 테넌트가 있는 인스턴스는 단일 테넌트 하드웨어에서 실행됩니다.
12.4.3.4.1. 머신 세트를 사용하여 Dedicated 인스턴스 생성
Machine API 통합을 사용하여 Dedicated 인스턴스에서 지원하는 머신을 실행할 수 있습니다. 머신 세트 YAML 파일의 tenancy
필드를 설정하여 AWS에서 전용 인스턴스를 시작합니다.
절차
providerSpec
필드에서 전용 테넌트를 지정합니다.providerSpec: placement: tenancy: dedicated
12.4.4. 컨트롤 플레인 시스템에 대한 Microsoft Azure 기능 활성화
컨트롤 플레인 머신 세트의 구성을 변경하여 컨트롤 플레인 머신에서 Microsoft Azure 기능을 활성화할 수 있습니다. 업데이트를 컨트롤 플레인 머신 세트에 저장하면 컨트롤 플레인 머신 세트 Operator가 구성된 업데이트 전략에 따라 컨트롤 플레인 시스템을 업데이트합니다.
12.4.4.1. API 서버를 프라이빗으로 제한
Microsoft Azure에 클러스터를 배포한 후 프라이빗 영역만 사용하도록 API 서버를 재구성할 수 있습니다.
사전 요구 사항
-
OpenShift CLI (
oc
)를 설치합니다. -
admin
권한이 있는 사용자로 웹 콘솔에 액세스합니다.
프로세스
클라우드 공급자의 웹 포털 또는 콘솔에서 다음 작업을 수행합니다.
적절한 로드 밸런서 구성 요소를 찾아 삭제합니다.
-
Azure의 경우 로드 밸런서의
api-internal
규칙을 삭제합니다.
-
Azure의 경우 로드 밸런서의
-
퍼블릭 영역의
api.$clustername.$yourdomain
DNS 항목을 삭제합니다.
컨트롤 플레인 머신 세트 사용자 정의 리소스에서 다음 행을 삭제하여 외부 로드 밸런서를 제거합니다.
providerSpec: value: loadBalancers: - name: lk4pj-ext 1 type: network 2 - name: lk4pj-int type: network
12.4.4.2. Azure Marketplace 이미지 선택
Azure에서 실행되는 머신 세트를 생성하여 Azure Marketplace 오퍼링을 사용하는 머신을 배포할 수 있습니다. 이 서비스를 사용하려면 먼저 Azure Marketplace 이미지를 가져와야 합니다. 이미지를 가져올 때 다음 사항을 고려하십시오.
-
이미지는 동일하지만 Azure Marketplace 게시자는 해당 지역에 따라 다릅니다. 북미에 있는 경우 게시자로
redhat
을 지정합니다. EMEA에 있는 경우 게시자로redhat-limited
를 지정합니다. -
이 제안에는
rh-ocp-worker
SKU 및rh-ocp-worker-gen1
SKU가 포함되어 있습니다.rh-ocp-worker
SKU는 Hyper-V 생성 버전 2 VM 이미지를 나타냅니다. OpenShift Container Platform에 사용되는 기본 인스턴스 유형은 버전 2와 호환됩니다. 버전 1과 호환되는 인스턴스 유형을 사용하려는 경우rh-ocp-worker-gen1
SKU와 연결된 이미지를 사용합니다.rh-ocp-worker-gen1
SKU는 Hyper-V 버전 1 VM 이미지를 나타냅니다.
Azure Marketplace를 사용하여 이미지를 설치하는 것은 64비트 ARM 인스턴스가 있는 클러스터에서는 지원되지 않습니다.
사전 요구 사항
-
Azure CLI 클라이언트
(az)
를 설치했습니다. - Azure 계정은 해당 오퍼를 사용할 수 있으며 Azure CLI 클라이언트를 사용하여 이 계정에 로그인했습니다.
프로세스
다음 명령 중 하나를 실행하여 사용 가능한 OpenShift Container Platform 이미지를 모두 표시합니다.
북아메리카:
$ az vm image list --all --offer rh-ocp-worker --publisher redhat -o table
출력 예
Offer Publisher Sku Urn Version ------------- -------------- ------------------ -------------------------------------------------------------- -------------- rh-ocp-worker RedHat rh-ocp-worker RedHat:rh-ocp-worker:rh-ocpworker:4.8.2021122100 4.8.2021122100 rh-ocp-worker RedHat rh-ocp-worker-gen1 RedHat:rh-ocp-worker:rh-ocp-worker-gen1:4.8.2021122100 4.8.2021122100
EMEA:
$ az vm image list --all --offer rh-ocp-worker --publisher redhat-limited -o table
출력 예
Offer Publisher Sku Urn Version ------------- -------------- ------------------ -------------------------------------------------------------- -------------- rh-ocp-worker redhat-limited rh-ocp-worker redhat-limited:rh-ocp-worker:rh-ocp-worker:4.8.2021122100 4.8.2021122100 rh-ocp-worker redhat-limited rh-ocp-worker-gen1 redhat-limited:rh-ocp-worker:rh-ocp-worker-gen1:4.8.2021122100 4.8.2021122100
참고설치하는 OpenShift Container Platform 버전에 관계없이 사용할 Azure Marketplace 이미지의 올바른 버전은 4.8입니다. 필요한 경우 설치 프로세스의 일부로 VM이 자동으로 업그레이드됩니다.
다음 명령 중 하나를 실행하여 제공 이미지를 검사합니다.
북아메리카:
$ az vm image show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
EMEA:
$ az vm image show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
다음 명령 중 하나를 실행하여 제안 조건을 검토합니다.
북아메리카:
$ az vm image terms show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
EMEA:
$ az vm image terms show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
다음 명령 중 하나를 실행하여 제공 조건을 수락합니다.
북아메리카:
$ az vm image terms accept --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
EMEA:
$ az vm image terms accept --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
-
제공 사항의 이미지 세부 정보, 특히
게시자
,제공
값, 스쿠및
버전
. 제공 이미지 세부 정보를 사용하여 머신 세트 YAML 파일의
providerSpec
섹션에 다음 매개변수를 추가합니다.Azure Marketplace 머신의
providerSpec
이미지 값 샘플providerSpec: value: image: offer: rh-ocp-worker publisher: redhat resourceID: "" sku: rh-ocp-worker type: MarketplaceWithPlan version: 4.8.2021122100
12.4.4.3. Azure 부팅 진단 활성화
머신 세트가 생성하는 Azure 머신에서 부팅 진단을 활성화할 수 있습니다.
사전 요구 사항
- 기존 Microsoft Azure 클러스터가 있어야 합니다.
프로세스
머신 세트 YAML 파일의
providerSpec
필드에 스토리지 유형에 적용할 수 있는진단
구성을 추가합니다.Azure Managed 스토리지 계정의 경우:
providerSpec: diagnostics: boot: storageAccountType: AzureManaged 1
- 1
- Azure Managed 스토리지 계정을 지정합니다.
Azure Unmanaged 스토리지 계정의 경우:
providerSpec: diagnostics: boot: storageAccountType: CustomerManaged 1 customerManaged: storageAccountURI: https://<storage-account>.blob.core.windows.net 2
참고Azure Blob Storage 데이터 서비스만 지원됩니다.
검증
- Microsoft Azure 포털에서 머신 세트에서 배포한 머신의 부팅 진단 페이지를 검토하고 머신의 직렬 로그를 확인할 수 있는지 확인합니다.
12.4.4.4. 울트라 디스크가 있는 머신을 데이터 디스크로 배포하는 머신 세트
Azure에서 실행되는 머신 세트를 생성하여 경미한 디스크가 있는 머신을 배포할 수 있습니다. Ultra 디스크는 가장 엄격한 데이터 워크로드와 함께 사용하도록 설계된 고성능 스토리지입니다.
추가 리소스
12.4.4.4.1. 머신 세트를 사용하여 무기 디스크로 머신 생성
머신 세트 YAML 파일을 편집하여 Azure에 simple 디스크가 있는 머신을 배포할 수 있습니다.
사전 요구 사항
- 기존 Microsoft Azure 클러스터가 있어야 합니다.
프로세스
다음 명령을 실행하여
마스터
데이터 시크릿을 사용하여openshift-machine-api
네임스페이스에 사용자 지정 보안을 생성합니다.$ oc -n openshift-machine-api \ get secret <role>-user-data \ 1 --template='{{index .data.userData | base64decode}}' | jq > userData.txt 2
텍스트 편집기에서
userData.txt
파일을 열고 파일에서 최종}
문자를 찾습니다.-
바로 위의 줄에서
,
을 추가합니다. 뒤에 새 행을 생성하고 다음 구성 세부 정보를 추가합니다.
"storage": { "disks": [ 1 { "device": "/dev/disk/azure/scsi1/lun0", 2 "partitions": [ 3 { "label": "lun0p1", 4 "sizeMiB": 1024, 5 "startMiB": 0 } ] } ], "filesystems": [ 6 { "device": "/dev/disk/by-partlabel/lun0p1", "format": "xfs", "path": "/var/lib/lun0p1" } ] }, "systemd": { "units": [ 7 { "contents": "[Unit]\nBefore=local-fs.target\n[Mount]\nWhere=/var/lib/lun0p1\nWhat=/dev/disk/by-partlabel/lun0p1\nOptions=defaults,pquota\n[Install]\nWantedBy=local-fs.target\n", 8 "enabled": true, "name": "var-lib-lun0p1.mount" } ] }
- 1
- 노드에 연결할 디스크에 대한 구성 세부 정보입니다.
- 2
- 사용 중인 머신 세트의
dataDisks
스탠자에 정의된lun
값을 지정합니다. 예를 들어 시스템 세트에lun: 0
이 포함된 경우lun0
을 지정합니다. 이 구성 파일에서 여러 "디스크"
항목을 지정하여 여러 데이터 디스크를 초기화할 수 있습니다. 여러 개의"디스크"
항목을 지정하는 경우 시스템 세트의 각 파일에 대한lun
값이 일치하는지 확인합니다. - 3
- 디스크의 새 파티션에 대한 구성 세부 정보입니다.
- 4
- 파티션의 레이블을 지정합니다.
lun0
의 첫 번째 파티션에lun0p1
과 같은 계층적 이름을 사용하는 것이 유용할 수 있습니다. - 5
- 파티션의 총 크기를 MiB로 지정합니다.
- 6
- 파티션을 포맷할 때 사용할 파일 시스템을 지정합니다. 파티션 레이블을 사용하여 파티션을 지정합니다.
- 7
- 부팅 시 파티션을 마운트할
systemd
장치를 지정합니다. 파티션 레이블을 사용하여 파티션을 지정합니다. 이 구성 파일에 여러 개의"파티션"
항목을 지정하여 여러 파티션을 생성할 수 있습니다. 여러 개의"파티션"
항목을 지정하는 경우 각각에 대해systemd
장치를 지정해야 합니다. - 8
Where
.filesystems.path
의 값을 지정합니다.What
?에 대해storage.filesystems.device
의 값을 지정합니다.
-
바로 위의 줄에서
다음 명령을 실행하여
disableTemplating.txt
라는 파일에 disabling template 값을 추출합니다.$ oc -n openshift-machine-api get secret <role>-user-data \ 1 --template='{{index .data.disableTemplating | base64decode}}' | jq > disableTemplating.txt
- 1
- <
;role>
을master
로 바꿉니다.
userData.txt
파일을 결합하고Templating.txt 파일을 비활성화
하여 다음 명령을 실행하여 데이터 시크릿 파일을 생성합니다.$ oc -n openshift-machine-api create secret generic <role>-user-data-x5 \ 1 --from-file=userData=userData.txt \ --from-file=disableTemplating=disableTemplating.txt
- 1
- &
lt;role>-user-data-x5
의 경우 시크릿 이름을 지정합니다. <role>
을master
로 바꿉니다.
다음 명령을 실행하여 컨트롤 플레인 머신 세트 CR을 편집합니다.
$ oc --namespace openshift-machine-api edit controlplanemachineset.machine.openshift.io cluster
표시된 위치에 다음 행을 추가합니다.
apiVersion: machine.openshift.io/v1beta1 kind: ControlPlaneMachineSet spec: template: spec: metadata: labels: disk: ultrassd 1 providerSpec: value: ultraSSDCapability: Enabled 2 dataDisks: 3 - nameSuffix: ultrassd lun: 0 diskSizeGB: 4 deletionPolicy: Delete cachingType: None managedDisk: storageAccountType: UltraSSD_LRS userDataSecret: name: <role>-user-data-x5 4
변경 사항을 저장하십시오.
-
기본
RollingUpdate
업데이트 전략을 사용하는 클러스터의 경우 Operator는 변경 사항을 컨트롤 플레인 구성에 자동으로 전파합니다. -
OnDelete
업데이트 전략을 사용하도록 구성된 클러스터의 경우 컨트롤 플레인 시스템을 수동으로 교체해야 합니다.
-
기본
검증
다음 명령을 실행하여 시스템이 생성되었는지 확인합니다.
$ oc get machines
시스템이
Running
상태에 있어야 합니다.실행 중이고 노드가 연결된 머신의 경우 다음 명령을 실행하여 파티션을 검증합니다.
$ oc debug node/<node-name> -- chroot /host lsblk
이 명령에서
oc debug node/<node-name
>은 <node-name
> 노드에서 디버깅 쉘을 시작하고--
를 사용하여 명령을 전달합니다. 전달된 명령chroot /host
는 기본 호스트 OS 바이너리에 대한 액세스를 제공하며lsblk
는 호스트 OS 시스템에 연결된 블록 장치를 보여줍니다.
다음 단계
- 컨트롤 플레인에서 경미한 디스크를 사용하려면 컨트롤 플레인의 디스크 마운트 지점을 사용하도록 워크로드를 재구성하십시오.
12.4.4.4.2. 경미한 디스크를 활성화하는 머신 세트의 리소스 문제 해결
이 섹션의 정보를 사용하여 발생할 수 있는 문제를 이해하고 복구합니다.
12.4.4.4.2.1. 잘못된 디스크 구성
시스템 세트에 FCP Capability
매개변수의 잘못된 구성이 지정되면 머신 프로비저닝이 실패합니다.
예를 들어, Restic SSDCapability
매개변수가 Disabled
로 설정되어 있지만 dataDisks
매개변수에 영구 디스크가 지정된 경우 다음과 같은 오류 메시지가 표시됩니다.
StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
- 이 문제를 해결하려면 머신 세트 구성이 올바른지 확인합니다.
12.4.4.4.2.2. 지원되지 않는 디스크 매개변수
자명 디스크와 호환되지 않는 리전, 가용성 영역 또는 인스턴스 크기가 머신 세트에 지정되면 머신 프로비저닝이 실패합니다. 다음 오류 메시지에 대한 로그를 확인합니다.
failed to create vm <machine_name>: failure sending request for machine <machine_name>: cannot create vm: compute.VirtualMachinesClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="BadRequest" Message="Storage Account type 'UltraSSD_LRS' is not supported <more_information_about_why>."
- 이 문제를 해결하려면 지원되는 환경에서 이 기능을 사용하고 있고 머신 세트 구성이 올바른지 확인합니다.
12.4.4.4.2.3. 디스크를 삭제할 수 없음
데이터 디스크가 예상대로 작동하지 않기 때문에 경미한 디스크를 삭제하면 머신이 삭제되고 데이터 디스크가 분리됩니다. 필요한 경우 고립된 디스크를 수동으로 삭제해야 합니다.
12.4.4.5. 머신 세트의 고객 관리 암호화 키 활성화
Azure에 암호화 키를 제공하여 관리 대상 디스크의 데이터를 암호화할 수 있습니다. 시스템 API를 사용하여 고객 관리 키로 서버 측 암호화를 활성화할 수 있습니다.
고객 관리 키를 사용하려면 Azure Key Vault, 디스크 암호화 세트 및 암호화 키가 필요합니다. 디스크 암호화 세트는 CCO(Cloud Credential Operator)에서 권한을 부여한 리소스 그룹에 있어야 합니다. 그렇지 않은 경우 디스크 암호화 세트에 추가 reader 역할을 부여해야 합니다.
프로세스
머신 세트 YAML 파일의
providerSpec
필드에 설정된 디스크 암호화를 구성합니다. 예를 들면 다음과 같습니다.providerSpec: value: osDisk: diskSizeGB: 128 managedDisk: diskEncryptionSet: id: /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.Compute/diskEncryptionSets/<disk_encryption_set_name> storageAccountType: Premium_LRS
추가 리소스
12.4.4.6. Microsoft Azure VM용 네트워킹 가속화
빠른 네트워킹은 단일 루트 I/O 가상화(SR-IOV)를 사용하여 Microsoft Azure VM에 스위치에 더 직접적인 경로를 제공합니다. 이를 통해 네트워크 성능이 향상됩니다. 이 기능은 설치 후 활성화할 수 있습니다.
12.4.4.6.1. 제한
Accelerated Networking을 사용할지 여부를 결정할 때 다음과 같은 제한 사항을 고려하십시오.
- 빠른 네트워킹은 머신 API가 작동하는 클러스터에서만 지원됩니다.
빠른 네트워킹에는 최소 4개의 vCPU가 포함된 Azure VM 크기가 필요합니다. 이 요구 사항을 충족하기 위해 머신 세트의
vmSize
값을 변경할 수 있습니다. Azure VM 크기에 대한 자세한 내용은 Microsoft Azure 설명서를 참조하십시오.
12.4.4.6.2. 기존 Microsoft Azure 클러스터에서 가속 네트워킹 활성화
머신 세트 YAML 파일에 acceleratedNetworking
을 추가하여 Azure에서 Accelerated Networking을 활성화할 수 있습니다.
사전 요구 사항
- 머신 API가 작동하는 기존 Microsoft Azure 클러스터가 있어야 합니다.
프로세스
providerSpec
필드에 다음을 추가합니다.providerSpec: value: acceleratedNetworking: true 1 vmSize: <azure-vm-size> 2
- 1
- 이 라인은 가속 네트워킹을 활성화합니다.
- 2
- vCPU가 4개 이상인 Azure VM 크기를 지정합니다. VM 크기에 대한 자세한 내용은 Microsoft Azure 설명서를 참조하십시오.
검증
-
Microsoft Azure 포털에서 머신 세트에서 프로비저닝한 머신의 네트워킹 설정 페이지를 검토하고
가속 네트워킹
필드가Enabled
로 설정되어 있는지 확인합니다.
12.4.5. 컨트롤 플레인 시스템에 Google Cloud Platform 기능 활성화
컨트롤 플레인 머신 세트의 구성을 변경하여 컨트롤 플레인 시스템에서 GCP(Google Cloud Platform) 기능을 활성화할 수 있습니다. 업데이트를 컨트롤 플레인 머신 세트에 저장하면 컨트롤 플레인 머신 세트 Operator가 구성된 업데이트 전략에 따라 컨트롤 플레인 시스템을 업데이트합니다.
12.4.5.1. 머신 세트를 사용하여 영구 디스크 유형 구성
머신 세트 YAML 파일을 편집하여 머신 세트가 머신을 배포하는 영구 디스크의 유형을 구성할 수 있습니다.
영구 디스크 유형, 호환성, 지역 가용성 및 제한 사항에 대한 자세한 내용은 영구 디스크에 대한 GCP Compute Engine 설명서를 참조하십시오.
프로세스
- 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 파일을 생성합니다.
providerSpec
필드 아래에 다음 행을 편집합니다.apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet ... spec: template: spec: providerSpec: value: disks: type: pd-ssd 1
- 1
- 컨트롤 플레인 노드는
pd-ssd
디스크 유형을 사용해야 합니다.
검증
-
Google Cloud 콘솔을 사용하여 머신 세트에서 배포한 시스템의 세부 정보를 검토하고
Type
필드가 구성된 디스크 유형과 일치하는지 확인합니다.
12.4.5.2. 머신 세트를 사용하여 기밀성 VM 구성
머신 세트 YAML 파일을 편집하여 머신 세트가 배포된 머신에 사용하는 기밀성 VM 옵션을 구성할 수 있습니다.
기밀성 컴퓨팅 기능, 기능 및 호환성에 대한 자세한 내용은 기밀성 VM에 대한 GCP Compute Engine 설명서를 참조하십시오.
기밀 컴퓨팅은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
프로세스
- 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 파일을 생성합니다.
providerSpec
필드에서 다음 섹션을 편집합니다.apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet ... spec: template: spec: providerSpec: value: confidentialCompute: Enabled 1 onHostMaintenance: Terminate 2 machineType: n2d-standard-8 3 ...
검증
- Google Cloud 콘솔에서 머신 세트에서 배포한 머신의 세부 정보를 검토하고 기밀성 VM 옵션이 구성한 값과 일치하는지 확인합니다.
12.4.5.3. 머신 세트를 사용하여 Shielded VM 옵션 구성
머신 세트 YAML 파일을 편집하여 머신 세트가 배포된 머신에 사용하는 Shielded VM 옵션을 구성할 수 있습니다.
Shielded VM 기능 및 기능에 대한 자세한 내용은 Shielded VM 에 대한 GCP Compute Engine 설명서를 참조하십시오.
절차
- 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 파일을 생성합니다.
providerSpec
필드에서 다음 섹션을 편집합니다.apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet ... spec: template: spec: providerSpec: value: shieldedInstanceConfig: 1 integrityMonitoring: Enabled 2 secureBoot: Disabled 3 virtualizedTrustedPlatformModule: Enabled 4 ...
검증
- Google Cloud 콘솔을 사용하여 머신 세트에서 배포한 머신의 세부 정보를 검토하고 중지된 VM 옵션이 구성한 값과 일치하는지 확인합니다.
12.4.5.4. 머신 세트의 고객 관리 암호화 키 활성화
GCP(Google Cloud Platform) Compute Engine을 사용하면 사용자가 암호화 키를 제공하여 디스크의 데이터를 암호화 할 수 있습니다. 키는 고객의 데이터를 암호화하는 것이 아니라 데이터 암호화 키를 암호화하는 데 사용됩니다. 기본적으로 Compute Engine은 Compute Engine 키를 사용하여 이 데이터를 암호화합니다.
Machine API를 사용하는 클러스터에서 고객 관리 키로 암호화를 활성화할 수 있습니다. 먼저 KMS 키를 생성하고 서비스 계정에 올바른 권한을 할당해야 합니다. 서비스 계정에서 키를 사용하려면 KMS 키 이름, 키 링 이름 및 위치가 필요합니다.
KMS 암호화에 전용 서비스 계정을 사용하지 않는 경우 Compute Engine 기본 서비스 계정이 대신 사용됩니다. 전용 서비스 계정을 사용하지 않는 경우 키에 액세스할 수 있는 기본 서비스 계정 권한을 부여해야 합니다. Compute Engine 기본 서비스 계정 이름은 service-<project_number>@compute-system.iam.gserviceaccount.com
패턴을 기반으로 합니다.
절차
특정 서비스 계정에서 KMS 키를 사용하고 서비스 계정에 올바른 IAM 역할을 부여하려면 KMS 키 이름, 키 링 이름 및 위치로 다음 명령을 실행합니다.
$ gcloud kms keys add-iam-policy-binding <key_name> \ --keyring <key_ring_name> \ --location <key_ring_location> \ --member "serviceAccount:service-<project_number>@compute-system.iam.gserviceaccount.com” \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
사용자가 머신 세트 YAML 파일의
providerSpec
필드에 암호화 키를 구성할 수 있습니다. 예를 들면 다음과 같습니다.apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet ... spec: template: spec: providerSpec: value: disks: - type: encryptionKey: kmsKey: name: machine-encryption-key 1 keyRing: openshift-encrpytion-ring 2 location: global 3 projectID: openshift-gcp-project 4 kmsKeyServiceAccount: openshift-service-account@openshift-gcp-project.iam.gserviceaccount.com 5
업데이트된
providerSpec
오브젝트 구성을 사용하여 새 머신을 생성하면 디스크 암호화 키가 KMS 키로 암호화됩니다.