11.5. 클러스터 API를 사용하는 클러스터 문제 해결
클러스터 API를 사용하여 머신을 관리하는 것은 기술 프리뷰 기능만 해당합니다. 기술 미리 보기 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
이 섹션의 정보를 사용하여 발생할 수 있는 문제를 이해하고 복구하십시오. 일반적으로 클러스터 API 문제 해결 단계는 Machine API 문제 해결 단계와 유사합니다.
Cluster CAPI Operator 및 해당 피연산자는 openshift-cluster-api 네임스페이스에 프로비저닝되지만 Machine API는 openshift-machine-api 네임스페이스를 사용합니다. 네임스페이스를 참조하는 oc 명령을 사용하는 경우 올바른 명령을 참조해야 합니다.
11.5.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권한이 있는 계정을 사용하여 ROSA 클러스터에 액세스할 수 있습니다. -
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>