오류 참조
이 페이지에서는 구성 동기화 오류 코드와 이러한 오류를 처리하기 위한 권장 조치에 대해 설명합니다.
구성 동기화 오류 메시지는 KNV1234
형식(1234
는 고유 번호)의 오류 ID, 문제에 대한 설명, 권장 해결 방법으로 구성됩니다. K
는 Kubernetes 규칙에서 상속되며 N
프리픽스가 있는 규칙은 nomos
에 적용됩니다. V
는 저장소 및 클러스터의 초기 상태에서 감지할 수 있는 오류에 적용됩니다. 저장소 및 클러스터의 초기 상태에서 감지 가능한 오류 코드는 KNV1XXX
형식입니다. 런타임에서만 감지될 수 있는 오류 코드는 KNV2XXX
형식입니다.
KNV 오류 테이블
오류 코드 | 설명 | 권장 작업 |
---|---|---|
|
구성 동기화 버전 1.6.1을 사용하여 InternalError의 ID가 |
해당 사항 없음 |
|
구성 동기화 1.3에서 지원 중단되었습니다. |
해당 사항 없음 |
|
구성 동기화 1.3에서 지원 중단되었습니다. |
해당 사항 없음 |
|
계층적 저장소 구조를 사용하는 경우 네임스페이스 구성이 포함된 디렉터리에 하위 디렉터리가 없어야 합니다. 네임스페이스 구성이 없는 디렉터리는 추상 네임스페이스 디렉터리이며 이 디렉터리에서 상속되는 디렉터리가 있습니다. 따라서 추상 네임스페이스 디렉터리에는 하위 디렉터리가 있어야 합니다. 네임스페이스 구성이 포함된 디렉터리는 상속될 수 없는 네임스페이스 디렉터리이므로 이 디렉터리에 하위 디렉터리가 있어서는 안 됩니다. |
상위 디렉터리에서 네임스페이스 구성을 삭제하거나 하위 디렉터리를 다른 위치로 이동합니다. |
|
클러스터 범위 객체는 |
|
|
관리 주석에 유효한 유일한 설정은 |
관리 주석이 자세한 내용은 객체 관리를 참조하세요. |
|
저장소에서 선언된 객체를 파싱할 수 없습니다. |
YAML 형식을 검증합니다. 예를 들어
|
|
구조화되지 않은 저장소를 사용하는 경우 추상 네임스페이스 디렉터리에서 구성을 선언하면 안 됩니다. |
오류 메시지에 나열된 구성을 네임스페이스 디렉터리로 이동합니다. 자세한 내용은 구조화되지 않은 저장소 사용을 참조하세요. |
|
계층적 저장소 구조를 사용하는 경우 구성은 이를 포함하는 네임스페이스 디렉터리와 일치하는 네임스페이스를 선언하거나 필드를 생략해야 합니다. |
오류 메시지에서 식별된 네임스페이스 필드를 업데이트합니다. 자세한 내용은 계층적 저장소 구조를 참조하세요. |
|
구성은 |
다음과 같이 지원되는 주석 중 하나를 사용하고 있는지 확인하세요.
|
|
구성에는 |
오류 메시지에서 식별된 모든 라벨을 업데이트합니다. 예를 들어 |
|
구성 동기화 1.3에서 지원 중단되었습니다. |
해당 사항 없음 |
|
구성이 존재하지 않는 ClusterSelector 또는 NamespaceSelector를 참조합니다. 구성의 주석에서 선택기를 사용하려면 먼저 선택기가 있어야 합니다. |
누락된 선택기를 만들거나, 선택기가 삭제된 경우 해당 선택기를 참조하는 구성을 삭제합니다. |
|
ClusterSelector 및 NamespaceSelector 구성이 올바른 구문을 사용하지만 구문 오류가 발견되었습니다. |
적절한 데이터 스키마를 사용하여 구성을 지정해야 합니다. |
|
구성 동기화 1.3.2에서 지원 중단되었습니다. | 해당 사항 없음 |
|
계층적 저장소 구조를 사용하는 경우 ConfigManagement Operator 구성이 저장소의 |
ConfigManagement Operator에 대한 최소 구성을 정의합니다. 자세한 내용은 계층적 저장소 구조를 참조하세요. |
|
구성 동기화 1.3에서 지원 중단되었습니다. | 해당 사항 없음 |
|
계층적 저장소 구조를 사용하는 경우 |
오류 메시지에 나열된 네임스페이스 구성에 대한 하위 디렉터리를 만듭니다. 자세한 내용은 계층적 저장소 구조를 참조하세요. |
|
계층적 저장소 구조를 사용하는 경우 네임스페이스 구성으로 metadata.name 이 선언되고 해당 값이 네임스페이스의 디렉터리 이름과 일치해야 합니다.
|
네임스페이스의 metadata.name 또는 디렉터리를 수정합니다. |
|
클러스터의 리소스에 대해 CustomResourceDefinition이 정의되어 있지 않습니다. |
오류 메시지에 참조된 리소스에 대한 CustomResourceDefinition을 만듭니다. 기본 제공 Kubernetes 객체가 아닌 리소스 유형에는 CustomResourceDefinition이 있어야 합니다. |
|
계층적 저장소를 사용하는 경우 이 종류의 구성은 |
오류 메시지에서 참조된 리소스를 |
|
저장소 구성의 |
저장소 형식이 지원되는 버전과 호환되면 |
|
디렉터리 이름은 64자 미만이어야 하고 소문자 영숫자 문자 또는 '-'로 구성되어야 하며 영숫자 문자로 시작하고 끝나야 합니다. |
이름이 잘못 지정된 디렉터리 이름을 변경하거나 디렉터리를 삭제하세요. |
|
동일한 종류의 구성은 동일한 네임스페이스와 상위 추상 네임스페이스에 고유한 이름이 있어야 합니다. |
모두 고유한 이름을 갖도록 오류 메시지에서 참조된 구성의 이름을 변경하거나 삭제합니다. |
|
같은 디렉터리에 여러 네임스페이스 리소스가 있을 수 없습니다. |
네임스페이스 리소스가 두 개 이상 남지 않도록 중복 구성을 제거합니다. |
|
모든 구성은 |
문제가 있는 구성에 |
|
|
문제가 있는 구성을 삭제하거나 |
|
계층적 저장소를 사용하는 경우 |
|
|
구성 동기화 버전 1.17.0부터 정보 소스에서 |
이전에 계층 구조 저장소로 동기화했고 리소스와 함께 컨트롤러 네임스페이스를 선언해야 한 경우에는 소스 구조의 유연성 향상을 위해 구조화되지 않은 저장소로 전환을 고려하세요. |
|
제공된 |
다음 조건을 충족하도록
만약 |
|
구성 동기화 1.3에서 지원 중단되었습니다. | 해당 사항 없음 |
|
네임스페이스 범위 객체를 |
문제가 있는 구성이 법적인 디렉토리에 있도록 이동합니다. 네임스페이스 범위 객체에 대한 자세한 내용은 네임스페이스 범위 객체를 참조하세요. |
|
클러스터 범위 객체를 |
문제가 있는 구성이 법적인 디렉토리에 있도록 이동합니다. 클러스터 범위 객체에 대한 자세한 내용은 클러스터 범위 객체를 참조하세요. |
|
구성 동기화 1.3에서 지원 중단되었습니다. | 해당 사항 없음 |
|
이 리소스 종류는 |
문제가 있는 리소스를 삭제합니다. |
|
|
|
|
구성 동기화에서 이 객체를 구성할 수 없습니다. |
저장소에서 문제가 있는 구성을 삭제합니다. |
|
구성이 포함된 추상 네임스페이스 디렉터리에는 하나 이상의 네임스페이스 하위 디렉터리가 있어야 합니다. |
추상 네임스페이스 디렉터리 아래에 네임스페이스 디렉터리를 추가하거나, 추상 네임스페이스 디렉터리에 네임스페이스 구성을 추가하거나, 추상 네임스페이스 디렉터리에서 구성을 삭제합니다. |
|
|
소스 저장소에서 |
|
이 |
문제가 있는 리소스를 더 이상 참조하지 않도록 |
|
커스텀 리소스 정의(CRD)를 삭제하고 해당 커스텀 리소스를 저장소에 남겨둘 수 없습니다. |
커스텀 리소스와 함께 CRD를 삭제합니다. |
|
CustomResourceDefinition에 잘못된 이름이 있습니다. |
이름을 오류 메시지의 권장사항으로 변경합니다. |
|
구성에서 지원 중단된 그룹 및 종류를 사용합니다. |
그룹 또는 종류를 오류 메시지의 권장사항으로 변경합니다. |
|
클러스터 범위 리소스는 |
클러스터 범위 리소스에서 metadata.namespace 필드를 삭제합니다. |
|
네임스페이스 범위 리소스는 |
누락된 필드를 네임스페이스 범위 리소스에 추가합니다. |
|
구성에 잘못된 주석 값이 포함되어 있습니다. |
오류 메시지의 안내에 따라 오류를 해결합니다. |
|
|
다음 규칙을 준수하도록
|
|
리소스가 관리되지 않는 네임스페이스에 선언됩니다. |
|
|
리소스에 잘못된 라벨이 있습니다. |
오류 메시지에 나열된 잘못된 라벨을 삭제하세요. |
|
네임스페이스 저장소는 해당 저장소가 적용되는 네임스페이스의 네임스페이스 범위 리소스만 선언할 수 있습니다. |
모든 네임스페이스 저장소가 네임스페이스 범위 리소스를 올바르게 선언하는지 확인합니다.
예를 들어
예를 들어 네임스페이스 범위 리소스가 올바르게 선언되었는지 확인하는 것 외에도 루트 저장소에서 네임스페이스가 선언되었는지 확인해야 합니다. 이것은 네임스페이스가 클러스터 범위이기 때문에 필요합니다. |
|
네임스페이스 저장소는 Kptfile 리소스를 최대 1개까지 선언할 수 있습니다. |
하나의 Kpt 파일 리소스를 제외한 모든 리소스를 제거합니다. |
|
여러 정보 소스에서 객체를 관리할 때 동일한 객체(일치하는 그룹, 종류, 이름, 네임스페이스)가 둘 이상의 소스에서 선언되면 충돌이 발생할 수 있습니다. 예를 들어 동일한 객체가RootSync 및 RepoSync에서 관리되는 경우 RootSync가 우선합니다. RootSync가 먼저 적용되는 경우 RepoSync는 KNV1060 상태 오류를 보고합니다. RepoSync가 먼저 적용되면 RootSync가 RepoSync의 객체를 덮어쓰고 RepoSync는 업데이트를 볼 때 KNV1060 상태 오류를 보고합니다. |
다른 정보 소스와 일치하도록 구성을 업데이트하거나 소스 중 하나에서 충돌 객체를 삭제하여 충돌을 해결합니다.
|
|
|
오류 메시지의 안내에 따라 구성 오류를 수정합니다. |
|
Kptfile에 유효한 인벤토리 필드가 없습니다. Kptfile에는 식별자 및 네임스페이스가 모두 지정된 비어 있지 않은 인벤토리 필드가 있어야 합니다. |
Kptfile에서 |
|
kptfiles가 루트 저장소에서 발견되었습니다. kptfiles는 네임스페이스 범위의 저장소에서만 지원됩니다. |
루트 저장소에서 Kptfiles를 삭제합니다. |
|
저장소의 |
오류 메시지의 안내를 따르세요. 예를 들어
또한 |
|
CustomResourceDefinition의 형식이 잘못되었습니다. |
오류 메시지에서 지정한 필드를 확인하고 값의 형식이 올바르게 지정되었는지 확인합니다. |
|
구성 객체는 클러스터 선택기 주석만 선언해야 합니다. 이 오류는 기존 주석( |
|
|
조정자가 선언된 필드를 서버 측 적용과 호환되는 형식으로 인코딩하지 못합니다. 오래된 스키마로 인해 발생할 수 있습니다. |
오류 메시지에 지정된 필드를 확인하고 리소스 종류의 스키마와 일치하는지 확인합니다. |
|
렌더링 프로세스에 사용자 작업 가능한 문제가 발생했습니다. |
Git 저장소에 Kustomize 구성이 포함되지만 Git 동기화 디렉터리에
공개 저장소에서 원격 기반을 가져올 때 |
|
조정자가 자체 RootSync 또는 RepoSync 객체를 조정했습니다. RootSync 객체는 다른 RootSync 및 RepoSync 객체를 관리할 수 있지만 RepoSync 객체는 다른 RepoSync 객체를 관리할 수 있지만 자체 관리는 할 수 없습니다. |
객체가 동기화되는 정보 소스에서 RootSync 또는 RepoSync 객체를 삭제합니다. |
|
파일 시스템 리소스에 액세스하는 OS 수준 시스템 호출이 실패합니다. |
이 오류는 잘못된 YAML 구성이나 특수문자 사용으로 인해 발생할 수 있습니다. 잘못된 YAML 구성이 있으면
파일 이름이나 경로에 특수문자가 포함되어 있으면 |
|
API 서버에 액세스하는 요청이 실패합니다. |
API 검색 오류가 발생할 수 있습니다. 자세한 내용은 API 검색 오류를 참조하세요. |
|
일반적인 OS 수준 시스템 호출이 실패합니다. | |
|
구성 동기화는 정보 소스에서 읽을 수 없습니다. |
이 오류가 발생할 수 있는 문제는 여러 가지입니다. 정보 소스에 연결하여 일반적인 문제를 해결하는 방법에 대한 팁은 정보 소스 연결 문제 해결을 참조하세요. |
|
구성 동기화가 리소스를 두고 다른 컨트롤러와 싸우고 있습니다. 이러한 싸움은 많은 양의 리소스를 소비하므로 성능이 저하될 수 있습니다. | 컨트롤러 싸움을 진단하고 해결하는 방법에 관한 도움말은 컨트롤러 싸움 문제 해결을 참조하세요. |
|
실수로 인한 삭제를 방지하기 위해 구성 동기화에서는 단일 커밋으로 모든 네임스페이스나 클러스터 범위 리소스를 삭제할 수 없습니다. |
구성 동기화 허용 웹훅이 중지된 경우 모든 리소스를 삭제하는 커밋을 되돌립니다.
관리 중인 전체 리소스 집합을 삭제하려면 다음 단계를 완료합니다.
|
|
구성 동기화가 수정을 시도하는 동안 API 서버의 리소스가 수정되거나 삭제됩니다. |
이러한 유형의 오류가 시작 시에만 또는 드물게만 발생하는 경우 이러한 오류를 무시해도 됩니다.
이러한 오류가 일시적이 아닌 경우(몇 분에 걸쳐) 이는 중대한 문제를 나타내는 것일 수 있으며 |
|
구성 동기화가 일부 구성을 클러스터에 동기화할 수 없음을 나타내는 일반적인 오류입니다. |
이 오류가 발생할 수 있는 문제는 여러 가지입니다. 동기화와 관련된 일반적인 문제를 해결하는 방법에 대한 팁은 동기화 문제해결을 참조하세요. |
|
리소스나 리소스 집합에 문제가 있음을 나타내는 일반 오류입니다. |
오류를 발생시킨 특정 리소스가 오류 메시지에 포함됩니다. 이러한 리소스를 조사합니다. |
|
계속하려면 특정 리소스가 필요하지만 리소스를 찾을 수 없습니다. 예를 들어 ConfigManagement Operator가 리소스를 업데이트하려 했지만 업데이트를 계산하는 동안 리소스가 삭제되었습니다. |
누락된 리소스를 만들거나 복원합니다. |
|
이 오류는 APIResource 인스턴스가 한 개만 허용되는 상황에서 APIResource 인스턴스가 두 개 이상 발견되었음을 나타냅니다. 예를 들어 클러스터에는 |
추가 APIResource를 삭제합니다. |
|
네임스페이스 조정자에 리소스를 관리할 수 있는 권한이 부족합니다. |
조정자에게 충분한 권한이 있는지 확인합니다. |
|
이 경고는 구성 동기화 웹훅 구성이 잘못 수정되는 경우에 발생합니다. 잘못된 웹훅 구성은 무시됩니다. |
잘못 수정된 웹훅을 삭제합니다. |
|
렌더링 프로세스에 내부 문제가 발생했습니다. 예를 들어 구성 동기화가 파일 시스템에 액세스할 수 없습니다. |
이 오류는 포드가 정상이 아님을 나타낼 수 있습니다. 다음 명령어를 실행하여 조정자 포드를 다시 시작할 수 있습니다. # restart a root reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=root-reconciler # restart a namespace reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=ns-reconciler-NAMESPACE |
|
이 오류는 나중에 자동으로 해결되는 일시적인 문제를 나타냅니다. 예를 들어 렌더링 상태가 소스 구성과 일치하지 않으면 이 오류가 표시될 수 있습니다. |
오류는 자동으로 해결됩니다. |
|
|
실행한 명령어 및 표시된 메시지와 함께 버그를 신고하세요. |
|
문서화된 오류 메시지가 없는 오류가 발생했습니다. |
발생한 오류와 관련된 문서가 아직 작성되지 않았습니다. |
KNV 코드가 없는 오류 메시지
구성 동기화 조정자에서 보고된 오류에는 KNV 오류 코드가 있지만 다른 구성요소에서 보고된 오류에는 KNV 코드가 없습니다. 예를 들어 권한 거부 오류는 구성 동기화의 최상위 레이어인 Fleet 컨트롤러에서 발생합니다.
다음 표에는 KNV 프리픽스가 없는 일반적인 오류가 나와 있습니다.
오류 메시지 | 권장 작업 |
---|---|
|
내보내기 도구를 빌드할 수 없음
Open Telemetry Collector의 구성요소가 동일한 네임스페이스에서 기본 서비스 계정에 액세스할 수 없는 경우 이 문제는 일반적으로 클러스터에서 워크로드 아이덴티티가 사용 설정되면 발생합니다. 이 문제를 해결하려면 구성 동기화 모니터링의 안내에 따라 기본 서비스 계정에 측정항목 쓰기 권한을 부여합니다.
IAM 설정 후 오류가 계속되면 변경사항을 적용하기 위해 |
server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none
|
서버 인증서 확인 실패
이 메시지는 서버가 커스텀 인증 기관(CA)의 인증서로 구성되었음을 나타냅니다. 그러나 커스텀 CA가 올바르게 구성되지 않아 서버에서 컨테이너를 가져오지 못합니다.
이 문제를 해결하려면 먼저 RootSync 또는 RepoSync 객체에서
다음, 필드가 구성되었고 보안 비밀 객체가 있는 경우 보안 비밀 객체에 전체 인증서가 포함되어 있는지 확인하세요. 다음은 서버 인증서를 나열하는 방법의 예시입니다. echo -n | openssl s_client -showcerts -connect HOST:PORT -servername SERVER_NAME 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' 네트워크 관리팀에 CA 인증서를 가져오도록 요청할 수 있습니다. |
Error message: "MESSAGE": "Unable to retrieve pull secret, the image pull may not succeed."
|
pull 보안 비밀을 가져올 수 없음. 이미지 가져오기에 성공하지 못할 수 있음VMware용 GKE에서 비공개 레지스트리를 사용하는 경우 구성 동기화 설치 또는 업그레이드가 중단될 수 있습니다. 이 메시지와 유사한 오류가 표시됩니다. 이 문제를 해결하려면 구성 동기화를 설치하거나 업그레이드하기 전에 비공개 레지스트리를 사용하여 구성 동기화 업데이트의 단계를 수행하세요. |
Permission 'gkehub.features.create' denied on 'projects/PROJECT_ID/locations/global/features/configmanagement'
|
권한이 거부됨구성 동기화를 구성하려고 시도할 때 이 예시와 비슷한 오류가 수신되면 GKE Hub 관리자 역할이 없기 때문일 수 있습니다. 필요한 권한이 있는지 확인하려면 필요한 IAM 역할이 부여되었는지 확인합니다. |
다음 단계
- 알려진 문제 보기
- 구성 동기화 문제 해결 소개 읽어보기
- 추가 지원이 필요하면 Cloud Customer Care에 문의하세요.