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>
    Copy to Clipboard Toggle word wrap
  • 클러스터 API 머신을 삭제하려면 oc delete machine 명령을 실행할 때 정규화된 이름 machine.cluster.x-k8s.io 를 사용합니다.

    $ oc delete machine.cluster.x-k8s.io <machine_name>
    Copy to Clipboard Toggle word wrap

11.5.2. 중복된 머신 세트 및 머신 리소스

머신 API 리소스를 클러스터 API 리소스로 마이그레이션하는 것을 지원하는 클러스터에서 일부 리소스는 리소스를 나열하는 OpenShift CLI( oc ) 명령의 출력과 OpenShift Container Platform 웹 콘솔에서 중복 인스턴스가 있는 것으로 보입니다.

원인

기본 구성 옵션을 사용하는 OpenShift Container Platform 클러스터를 설치하면 설치 프로그램은 openshift-machine-api 네임스페이스에 다음과 같은 인프라 리소스를 프로비저닝합니다.

  • 3개의 컨트롤 플레인 머신을 관리하는 하나의 컨트롤 플레인 머신 세트입니다.
  • 3개의 컴퓨팅 머신을 관리하는 하나 이상의 컴퓨팅 머신 세트입니다.
  • 스팟 인스턴스를 관리하는 하나의 머신 상태 점검입니다.
  • 컴퓨팅 머신 세트 사양에 따라 생성된 컴퓨팅 머신입니다.

Machine API 리소스를 Cluster API 리소스로 마이그레이션하는 것을 지원하는 클러스터에서 양방향 동기화 컨트롤러는 openshift-cluster-api 네임스페이스에 다음 Cluster API 리소스를 생성합니다.

  • 하나의 클러스터 리소스.
  • 하나의 공급자별 인프라 클러스터 리소스.
  • 컴퓨팅 머신 세트에 해당하는 하나 이상의 머신 템플릿입니다.
  • 3개의 컴퓨팅 머신을 관리하는 하나 이상의 컴퓨팅 머신 세트입니다.
  • 머신 템플릿과 컴퓨팅 머신 세트 사양에 따라 생성된 컴퓨팅 머신입니다.
  • 컴퓨팅 머신에 해당하는 인프라 머신입니다.

이러한 클러스터 API 리소스는 openshift-machine-api 네임스페이스의 해당 리소스와 동일한 이름을 갖습니다.

결과
이러한 동작으로 인해 중복된 것으로 보이는 머신 세트 및 머신 리소스 인스턴스가 리소스를 나열하는 oc 명령의 출력과 OpenShift Container Platform 웹 콘솔에 나타납니다.
해결방법
리소스의 이름이 다른 네임스페이스의 해당 리소스와 동일하더라도 현재 권한 있는 API를 사용하는 리소스만 활성화됩니다. 동기화 컨트롤러는 의도치 않은 조정을 방지하기 위해 현재 권한 있는 API를 사용하지 않는 해당 리소스를 프로비저닝되지 않은( 일시 중지 ) 상태로 생성하고 유지 관리합니다.
결과

중복으로 보이는 각 리소스는 한 번에 하나만 활성화됩니다. 비활성 비권한 리소스는 기능에 영향을 미치지 않습니다.

중요

현재 권한 있는 API를 사용하지 않는 비권한 리소스는 삭제하지 마세요. 현재 권한 있는 API를 사용하는 해당 리소스를 삭제하려는 경우가 아니면요.

현재 권한 있는 API를 사용하지 않는 비권한 있는 리소스를 삭제하면 동기화 컨트롤러는 현재 권한 있는 API를 사용하는 해당 리소스를 삭제합니다. 자세한 내용은 "예기치 않은 리소스 삭제 동작"을 참조하세요.

11.5.3. 리소스 마이그레이션 문제 해결

다른 권한 있는 API를 사용하기 위해 리소스를 마이그레이션하는 경우 마이그레이션 프로세스 중에 문제가 발생할 수 있습니다. 클러스터 API와 머신 API 간의 차이로 인해 예상치 못한 동작이 나타날 수도 있습니다.

11.5.3.1. 컴퓨팅 머신의 권한 있는 API 유형

컴퓨팅 머신의 권한 있는 API는 이를 생성하는 Machine API 컴퓨팅 머신 세트의 .spec.authoritativeAPI.spec.template.spec.authoritativeAPI 필드 값에 따라 달라집니다.

Expand
표 11.3. 컴퓨팅 머신을 생성할 때 권한 있는 API 필드의 상호 작용

.spec.authoritativeAPI value

ClusterAPI

ClusterAPI

MachineAPI

MachineAPI

.spec.template.spec.authoritativeAPI value

ClusterAPI

MachineAPI

MachineAPI

ClusterAPI

새로운 컴퓨팅 머신을 위한 authoritativeAPI

ClusterAPI

ClusterAPI

MachineAPI

ClusterAPI

참고

.spec.authoritativeAPI 값이 ClusterAPI 인 경우 Machine API 머신 세트는 권한이 없으며 .spec.template.spec.authoritativeAPI 값은 사용되지 않습니다. 결과적으로, Machine API를 권한 있는 것으로 사용하여 컴퓨팅 머신을 생성하는 유일한 조합은 .spec.authoritativeAPI.spec.template.spec.authoritativeAPI 값이 MachineAPI 인 경우입니다.

11.5.3.2. 스케일링 후 예상치 못한 머신 카운트

Machine API와 Cluster API 간의 리소스 마이그레이션을 지원하는 클러스터에서 사용자는 컴퓨팅 머신 수를 확장할 때 예기치 않은 동작을 경험할 수 있습니다. 권한 있는 API를 사용하지 않는 컴퓨팅 머신 세트에 대한 oc get 명령의 출력에는 CURRENT , READYAVAILABLE 열에 부정확한 값이 포함될 수 있습니다.

원인

CURRENT , READYAVAILABLE 열에 채워지는 값은 컴퓨팅 머신 세트의 .status 절에서 시작됩니다. 권한 있는 API 유형 간의 리소스 변환을 처리하는 양방향 동기화 컨트롤러는 현재 .status 스탠자의 값을 동기화하지 않습니다.

DESIRED 열의 값은 컴퓨팅 머신 세트의 .spec.replicas 값을 반영합니다. 양방향 동기화 컨트롤러는 .spec 스탠자의 값을 동기화합니다.

결과

사용자는 마이그레이션된 머신 세트를 확장할 때 다음과 같은 동작을 볼 수 있습니다.

  1. 기존 머신으로 컴퓨팅 머신 세트를 시작합니다.
  2. 다른 권한 있는 API를 사용하도록 머신 세트를 마이그레이션합니다.
  3. .spec.replicas 필드에 더 큰 값을 설정하여 권한이 있는 머신 설정을 확장합니다.
  4. 머신 세트는 요청된 복제본 수를 충족시키기 위해 현재 권한 있는 API를 사용하여 머신을 생성합니다.
  5. 다음 조건 중 하나가 현재 권한 있는 API를 사용하지 않는 머신을 삭제하도록 권한 있는 머신 집합을 축소합니다.

    • 요청된 복제본의 총 수는 현재 권한 있는 API를 사용하지 않는 머신의 수보다 적습니다.
    • 머신 세트에 대한 머신 삭제 정책은 현재 권한 있는 API를 사용하지 않는 머신을 선택합니다.
  6. oc get 명령을 실행하여 권한이 없는 컴퓨팅 머신 세트의 상태를 확인합니다.

    • 출력의 DESIRED 열 값은 .spec.replicas 값을 반영합니다.
    • CURRENT , READY , AVAILABLE 열의 값은 머신 세트를 확장하기 전에 존재했던 원래 복제본 수를 반영합니다.
해결방법
축소 작업이 현재 권한 있는 API를 사용하지 않는 컴퓨팅 머신을 성공적으로 삭제했는지 확인하려면 권한이 없는 컴퓨팅 머신을 나열하는 oc get 명령을 실행합니다.
결과
축소 작업이 성공하면 권한이 없는 컴퓨팅 머신에 대한 oc get 명령 출력의 카운트는 머신 세트의 .spec.replicas 값을 반영합니다.

11.5.3.3. 라벨과 주석의 동기화가 완료되지 않음

레이블과 주석 동기화 동작은 Machine API와 Cluster API 간에 다릅니다. 어떤 경우에는 이러한 차이로 인해 마이그레이션 중에 양방향 동기화 컨트롤러가 클러스터 API 머신의 레이블을 덮어쓰게 됩니다.

원인

Machine API를 사용하면 머신 세트 레이블과 주석의 변경 사항이 기존 머신과 노드에 전파되지 않습니다. 이러한 변경 사항은 업데이트 이후에 배포된 컴퓨터에만 적용됩니다.

클러스터 API를 사용하면 머신 세트 레이블과 주석의 변경 사항이 기존 머신과 노드에 전파됩니다. 머신 세트의 권한 있는 API가 머신 API에서 클러스터 API로 변경되면 해당 레이블이 관리하는 클러스터 API 머신으로 전파됩니다. 전파는 클러스터 API 머신이 권한 있는 것으로 표시되기 전에 발생합니다.

결과
양방향 동기화 컨트롤러는 전파된 레이블과 주석을 이전 값으로 덮어써서 불일치가 발생합니다. 이러한 결과는 라벨이나 주석을 제거할 때만 발생합니다. 업데이트나 추가 라벨 또는 주석은 이러한 불일치를 일으키지 않습니다.
해결방법
이 문제에 대한 해결방법이 없습니다. 자세한 내용은 OCPBUGS-54333을 참조하세요.

11.5.3.4. 지원되지 않는 구성 옵션

Machine API는 Cluster API에 대한 모든 구성 옵션을 지원하지 않습니다. 일부 머신 API 구성은 클러스터 API로 마이그레이션할 수 없습니다. 향후 릴리스에서는 추가적인 구성 옵션이 지원될 수 있습니다.

다음 구성을 사용하려고 하면 마이그레이션이 실패하거나 오류가 발생할 수 있습니다.

참고

이 목록은 모든 내용을 담고 있지 않을 수도 있습니다.

일반적인 제한 사항

  • NodeDeletionTimeout 필드가 클러스터 API 기본값인 10초 를 사용하지 않는 한, 머신 API 컴퓨팅 머신은 클러스터 API로 마이그레이션할 수 없습니다.
  • OpenShift Container Platform은 머신 세트의 spec.template.spec 스탠자 또는 머신의 spec 스탠자에서 다음 클러스터 API 필드를 사용하는 것을 지원하지 않습니다.

    • version
    • readinessGates
  • Machine API는 다음 클러스터 API 드레이닝 구성 옵션을 사용하는 것을 지원하지 않습니다.

    • nodeDrainTimeout
    • nodeVolumeDetachTimeout
    • nodeDeletionTimeout
  • 클러스터 API는 머신에서 노드로 레이블이나 오염을 전파하는 것을 지원하지 않습니다.

Amazon Web Services(AWS) 제한 사항

  • 머신 API 컴퓨팅 머신은 AWS 로드 밸런서를 사용할 수 없습니다.
  • Machine API는 다음 Amazon EC2 Instance Metadata Service(IMDS) 구성 옵션을 사용하는 것을 지원하지 않습니다.

    • httpEndpoint
    • httpPutResponseHopLimit
    • instanceMetadataTags

    IMDS 구성 옵션을 사용하는 클러스터 API 머신 템플릿을 머신 API 컴퓨팅 머신 세트로 마이그레이션하는 경우 다음과 같은 동작이 예상됩니다.

    • 마이그레이션된 Machine API 머신 세트가 생성하는 모든 머신에는 이러한 필드가 없습니다. 기본 인스턴스는 이러한 설정을 사용하지 않습니다.
    • 마이그레이션된 머신 세트가 관리하는 기존 머신은 이러한 필드를 유지합니다. 기본 인스턴스는 이러한 설정을 계속 사용합니다.
  • OpenShift Container Platform은 다음 AWS 머신 템플릿 필드를 사용하는 것을 지원하지 않습니다.

    • spec.ami.eksLookupType
    • spec.cloudInit
    • spec.ignition.proxy
    • spec.ignition.tls
    • spec.imageLookupBaseOS
    • spec.imageLookupFormat
    • spec.imageLookupOrg
    • spec.networkInterfaces
    • spec.privateDNSName
    • spec.securityGroupOverrides
    • spec.uncompressedUserData
  • 클러스터 API는 기본 AWS EC2 인스턴스가 제거될 때 루트가 아닌 EBS 볼륨을 고아로 만드는 것을 지원하지 않습니다. 인스턴스가 종료되면 클러스터 API는 모든 종속 볼륨을 제거합니다.
  • 머신 API 리소스를 클러스터 API로 마이그레이션할 때, 이그니션 버전은 하드코딩되어 있어 전달되는 사용자 데이터 비밀과 일치하지 않을 수 있습니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat