5.3. BMO를 사용하여 사용자 프로비저닝 클러스터에서 새 호스트 프로비저닝
BareMetalHost CR(사용자 정의 리소스)을 생성하여 Bare Metal Operator(BMO)를 사용하여 사용자 프로비저닝 클러스터에서 베어 메탈 호스트를 프로비저닝할 수 있습니다.
BMO를 사용하여 클러스터에 베어 메탈 호스트를 프로비저닝하려면 BareMetalHost 사용자 정의 리소스에서 spec.externallyProvisioned 사양을 false 로 설정해야 합니다.
사전 요구 사항
- 사용자가 프로비저닝한 베어 메탈 클러스터를 생성하셨습니다.
- 호스트에 대한 BMC(Baseboard Management Controller) 액세스 권한이 있습니다.
-
ProvisioningCR을 생성하여 클러스터에 프로비저닝 서비스를 배포했습니다.
프로세스
SecretCR 및BareMetalHostCR을 생성합니다.다음 YAML을
bmh.yaml파일에 저장합니다.--- apiVersion: v1 kind: Secret metadata: name: worker1-bmc namespace: openshift-machine-api type: Opaque data: username: <base64_of_uid> password: <base64_of_pwd> --- apiVersion: metal3.io/v1alpha1 kind: BareMetalHost metadata: name: worker1 namespace: openshift-machine-api spec: bmc: address: <protocol>://<bmc_url>1 credentialsName: "worker1-bmc" bootMACAddress: <nic1_mac_address> externallyProvisioned: false2 customDeploy: method: install_coreos online: true userData: name: worker-user-data-managed namespace: openshift-machine-api
다음 명령을 실행하여 베어 메탈 호스트 오브젝트를 생성합니다.
$ oc create -f bmh.yaml출력 예
secret/worker1-bmc created baremetalhost.metal3.io/worker1 created모든 CSR(인증서 서명 요청)을 승인합니다.
다음 명령을 실행하여 호스트의 프로비저닝 상태가
프로비저닝되었는지 확인합니다.$ oc get bmh -A출력 예
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE openshift-machine-api controller1 externally provisioned true 5m25s openshift-machine-api worker1 provisioned true 4m45s다음 명령을 실행하여 보류 중인 CSR 목록을 가져옵니다.
$ oc get csr출력 예
NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION csr-gfm9f 33s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-o perator:node-bootstrapper <none> Pending다음 명령을 실행하여 CSR을 승인합니다.
$ oc adm certificate approve <csr_name>출력 예
certificatesigningrequest.certificates.k8s.io/<csr_name> approved
검증
다음 명령을 실행하여 노드가 준비되었는지 확인합니다.
$ oc get nodes출력 예
NAME STATUS ROLES AGE VERSION app1 Ready worker 47s v1.24.0+dc5a2fd controller1 Ready master,worker 2d22h v1.24.0+dc5a2fd