13.6. 클러스터 API를 사용하는 클러스터 문제 해결
클러스터 API를 사용하여 머신을 관리하는 것은 기술 프리뷰 기능만 해당합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
이 섹션의 정보를 사용하여 발생할 수 있는 문제를 이해하고 복구하십시오. 일반적으로 클러스터 API 문제 해결 단계는 Machine API 문제 해결 단계와 유사합니다.
Cluster CAPI Operator 및 해당 피연산자는 openshift-cluster-api
네임스페이스에 프로비저닝되지만 Machine API는 openshift-machine-api
네임스페이스를 사용합니다. 네임스페이스를 참조하는 oc
명령을 사용하는 경우 올바른 명령을 참조해야 합니다.
13.6.1. CLI를 사용할 때 의도된 오브젝트 참조
Cluster API를 사용하는 클러스터의 경우 OpenShift CLI(oc
) 명령은 Machine API 오브젝트를 통해 Cluster API 오브젝트를 우선시합니다.
이 동작은 Cluster API 및 Machine API 둘 다에 표시되는 모든 오브젝트에 대해 작동하는 oc
명령에 영향을 미칩니다. 이 설명에서는 oc delete machine
명령을 사용하여 시스템을 삭제합니다. 예를 들면 다음과 같습니다.
원인
oc
명령을 실행할 때 oc
는 Kube API 서버와 통신하여 작업할 오브젝트를 결정합니다. Kube API 서버는 oc
명령이 실행될 때 알파벳순으로 표시되는 첫 번째 설치된 CRD(사용자 정의 리소스 정의)를 사용합니다.
Cluster API 오브젝트의 CRD는 cluster.x-k8s.io
그룹에 있으며 Machine API 오브젝트의 CRD는 machine.openshift.io
그룹에 있습니다. 문자 c
는 알파벳순으로 m
문자 앞에 있기 때문에 Kube API 서버는 Cluster API 오브젝트 CRD에서 일치합니다. 결과적으로 oc
명령은 Cluster API 오브젝트에서 작동합니다.
결과
이 동작으로 인해 Cluster API를 사용하는 클러스터에서 다음과 같은 의도하지 않은 결과가 발생할 수 있습니다.
-
두 유형의 오브젝트가 모두 포함된 네임스페이스의 경우
oc get machine
과 같은 명령은 Cluster API 오브젝트만 반환합니다. -
Machine API 오브젝트만 포함하는 네임스페이스의 경우
oc get machine
과 같은 명령은 결과를 반환하지 않습니다.
해결방법
oc
명령이 정규화된 해당 이름을 사용하여 원하는 오브젝트 유형에서 작동하는지 확인할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
Machine API 머신을 삭제하려면
oc delete machine
명령을 실행할 때 정규화된 이름machine.machine.openshift.io
를 사용합니다.$ oc delete machine.machine.openshift.io <machine_name>
클러스터 API 머신을 삭제하려면
oc delete machine
명령을 실행할 때 정규화된 이름machine.cluster.x-k8s.io
를 사용합니다.$ oc delete machine.cluster.x-k8s.io <machine_name>