오류 참조

이 페이지에서는 구성 동기화 오류 코드와 이러한 오류를 처리하기 위한 권장 조치에 대해 설명합니다.

구성 동기화 오류 메시지는 KNV1234 형식(1234는 고유 번호)의 오류 ID, 문제에 대한 설명, 권장 해결 방법으로 구성됩니다. K는 Kubernetes 규칙에서 상속되며 N 프리픽스가 있는 규칙은 nomos에 적용됩니다. V는 저장소 및 클러스터의 초기 상태에서 감지할 수 있는 오류에 적용됩니다. 저장소 및 클러스터의 초기 상태에서 감지 가능한 오류 코드는 KNV1XXX 형식입니다. 런타임에서만 감지될 수 있는 오류 코드는 KNV2XXX 형식입니다.

KNV 오류 테이블

오류 코드 설명 권장 작업

구성 동기화 버전 1.6.1을 사용하여 InternalError의 ID가 KNV9998로 변경되었습니다.

해당 사항 없음

구성 동기화 1.3에서 지원 중단되었습니다.

해당 사항 없음

구성 동기화 1.3에서 지원 중단되었습니다.

해당 사항 없음

계층적 저장소 구조를 사용하는 경우 네임스페이스 구성이 포함된 디렉터리에 하위 디렉터리가 없어야 합니다.

네임스페이스 구성이 없는 디렉터리는 추상 네임스페이스 디렉터리이며 이 디렉터리에서 상속되는 디렉터리가 있습니다. 따라서 추상 네임스페이스 디렉터리에는 하위 디렉터리가 있어야 합니다. 네임스페이스 구성이 포함된 디렉터리는 상속될 수 없는 네임스페이스 디렉터리이므로 이 디렉터리에 하위 디렉터리가 있어서는 안 됩니다.

상위 디렉터리에서 네임스페이스 구성을 삭제하거나 하위 디렉터리를 다른 위치로 이동합니다.

클러스터 범위 객체는 configmanagement.gke.io/namespace-selector 주석을 선언하면 안 됩니다. NamespaceSelector는 네임스페이스 범위 객체에만 선언될 수 있습니다.

metadata.annotations 필드에서 configmanagement.gke.io/namespace-selector을 삭제합니다.

관리 주석에 유효한 유일한 설정은 configmanagement.gke.io/managed=disabled입니다. 이 설정은 구성을 체크인된 상태로 두고 Git 저장소의 리소스를 명시적으로 관리 중지하는 데 사용됩니다. configmanagement.gke.io/managed=enabled 주석은 필요하지 않습니다.

관리 주석이 configmanagement.gke.io/managed=disabled인지 확인합니다.

자세한 내용은 객체 관리를 참조하세요.

저장소에서 선언된 객체를 파싱할 수 없습니다.

YAML 형식을 검증합니다. 예를 들어 kubectl --validate 명령어를 사용할 수 있습니다.

nomos vet가 RepoSync와 같이 group: configsync.gke.io가 있는 유형에서 이 오류를 반환하면 다운로드 페이지에서 v1.6.0-rc.6 이상을 다운로드하여 해결하세요.

구조화되지 않은 저장소를 사용하는 경우 추상 네임스페이스 디렉터리에서 구성을 선언하면 안 됩니다.

오류 메시지에 나열된 구성을 네임스페이스 디렉터리로 이동합니다.

자세한 내용은 구조화되지 않은 저장소 사용을 참조하세요.

계층적 저장소 구조를 사용하는 경우 구성은 이를 포함하는 네임스페이스 디렉터리와 일치하는 네임스페이스를 선언하거나 필드를 생략해야 합니다.

오류 메시지에서 식별된 네임스페이스 필드를 업데이트합니다.

자세한 내용은 계층적 저장소 구조를 참조하세요.

구성은 configmanagement.gke.io로 시작하는 지원되지 않는 주석을 선언해서는 안 됩니다.

다음과 같이 지원되는 주석 중 하나를 사용하고 있는지 확인하세요.

구성에는 configmanagement.gke.io/로 시작하는 키가 있는 라벨이 없어야 합니다. 이 라벨 키 프리픽스는 구성 동기화에서 사용하도록 예약되어 있습니다.

오류 메시지에서 식별된 모든 라벨을 업데이트합니다. 예를 들어
configmanagement.gke.io/example-label: label-value라는 이름이 지정된 라벨을 선언하려 하면

example-label: label-value로 변경할 수 있습니다.

구성 동기화 1.3에서 지원 중단되었습니다.

해당 사항 없음

구성이 존재하지 않는 ClusterSelector 또는 NamespaceSelector를 참조합니다. 구성의 주석에서 선택기를 사용하려면 먼저 선택기가 있어야 합니다.

누락된 선택기를 만들거나, 선택기가 삭제된 경우 해당 선택기를 참조하는 구성을 삭제합니다.

ClusterSelector 및 NamespaceSelector 구성이 올바른 구문을 사용하지만 구문 오류가 발견되었습니다.

적절한 데이터 스키마를 사용하여 구성을 지정해야 합니다.

구성 동기화 1.3.2에서 지원 중단되었습니다. 해당 사항 없음

계층적 저장소 구조를 사용하는 경우 ConfigManagement Operator 구성이 저장소의 system/ 디렉터리에 있어야 합니다. 이 구성에는 저장소의 시맨틱 버전과 같은 필수 정보가 포함되어야 합니다.

ConfigManagement Operator에 대한 최소 구성을 정의합니다. 자세한 내용은 계층적 저장소 구조를 참조하세요.

구성 동기화 1.3에서 지원 중단되었습니다. 해당 사항 없음

계층적 저장소 구조를 사용하는 경우 namespaces/ 디렉터리에서 직접 네임스페이스를 선언하면 안 됩니다.

오류 메시지에 나열된 네임스페이스 구성에 대한 하위 디렉터리를 만듭니다. 자세한 내용은 계층적 저장소 구조를 참조하세요.

계층적 저장소 구조를 사용하는 경우 네임스페이스 구성으로 metadata.name이 선언되고 해당 값이 네임스페이스의 디렉터리 이름과 일치해야 합니다. 네임스페이스의 metadata.name 또는 디렉터리를 수정합니다.

클러스터의 리소스에 대해 CustomResourceDefinition이 정의되어 있지 않습니다.

오류 메시지에 참조된 리소스에 대한 CustomResourceDefinition을 만듭니다. 기본 제공 Kubernetes 객체가 아닌 리소스 유형에는 CustomResourceDefinition이 있어야 합니다.

계층적 저장소를 사용하는 경우 이 종류의 구성은 system/ 디렉터리에서 선언할 수 없습니다.

오류 메시지에서 참조된 리소스를 system/ 디렉터리 외부로 이동합니다. 자세한 내용은 계층적 저장소 구조를 참조하세요.

저장소 구성의 spec.version 필드는 저장소의 시맨틱 버전을 나타냅니다. 이 오류는 지원되지 않는 버전을 사용하고 있음을 나타냅니다.

저장소 형식이 지원되는 버전과 호환되면 spec.version 필드를 업데이트하세요. 업그레이드해야 하는 경우 출시 노트의 안내를 따릅니다.

디렉터리 이름은 64자 미만이어야 하고 소문자 영숫자 문자 또는 '-'로 구성되어야 하며 영숫자 문자로 시작하고 끝나야 합니다.

이름이 잘못 지정된 디렉터리 이름을 변경하거나 디렉터리를 삭제하세요.

동일한 종류의 구성은 동일한 네임스페이스와 상위 추상 네임스페이스에 고유한 이름이 있어야 합니다.

모두 고유한 이름을 갖도록 오류 메시지에서 참조된 구성의 이름을 변경하거나 삭제합니다.

같은 디렉터리에 여러 네임스페이스 리소스가 있을 수 없습니다.

네임스페이스 리소스가 두 개 이상 남지 않도록 중복 구성을 제거합니다.

모든 구성은 metadata.name을 선언해야 합니다.

문제가 있는 구성에 metadata.name 필드를 추가합니다.

sourceFormatunstructured로 설정된 경우 Repo.configmanagement.gke.io 유형은 허용되지 않습니다.

문제가 있는 구성을 삭제하거나 sourceFormat: hierarchy를 사용하도록 저장소를 변환합니다.

계층적 저장소를 사용하는 경우 system/ 디렉터리에서 HierarchyConfigRepo 종류만 선언할 수 있습니다.

system/ 디렉터리에 선언된 모든 구성이 허용되는 종류 중 하나인지 확인합니다. 그렇지 않은 경우 다른 디렉터리로 이동합니다.

config-management-system 네임스페이스 또는 그 안에 있는 리소스를 선언하는 것은 금지되어 있습니다.

구성 동기화 버전 1.17.0부터 정보 소스에서 resource-group-systemconfig-management-monitoring 네임스페이스를 선언할 수 없습니다. 또한 resource-group-systemconfig-management-monitoring 네임스페이스 아래에 리소스를 선언하는 것은 권장되지 않습니다.

config-management-system 네임스페이스를 선언한 경우 네임스페이스와 해당 네임스페이스의 모든 구성을 삭제합니다.

resource-group-system 또는 config-management-monitoring 네임스페이스를 선언한 경우 컨트롤러 네임스페이스를 관리 해제합니다.

  1. 구성 동기화를 업데이트하여 네임스페이스 관리를 중지하고 그 아래에 선언된 리소스 관리를 중지합니다.
  2. 동기화를 기다린 후 해당 리소스가 클러스터에서 여전히 사용할 수 있지만 nomos status에서 사용할 수 없는지 확인합니다.
  3. 소스에서 컨트롤러 네임스페이스 YAML 파일을 삭제합니다.
  4. 구성 동기화가 리소스 관리를 재개하도록 허용합니다.

이전에 계층 구조 저장소로 동기화했고 리소스와 함께 컨트롤러 네임스페이스를 선언해야 한 경우에는 소스 구조의 유연성 향상을 위해 구조화되지 않은 저장소로 전환을 고려하세요.

제공된 metadata.name의 형식이 잘못되었습니다.

다음 조건을 충족하도록 metadata.name을 변경합니다.

  • 254자 미만이어야 합니다.
  • 소문자 영숫자 문자, '-' 또는 '.'로 구성되어야 합니다.
  • 영숫자 문자로 시작하고 끝나야 합니다.

만약 metadata.name이 잘못된 값이며 원본 리소스에서 이를 지원하는 경우 spec.resourceID 필드를 사용하면 이러한 제한사항의 제약을 받지 않습니다. 자세한 내용은 resourceID 필드로 리소스 관리를 참조하세요.

구성 동기화 1.3에서 지원 중단되었습니다. 해당 사항 없음

네임스페이스 범위 객체를 namespaces/ 디렉터리 외부에서 선언하는 것은 금지되어 있습니다.

문제가 있는 구성이 법적인 디렉토리에 있도록 이동합니다. 네임스페이스 범위 객체에 대한 자세한 내용은 네임스페이스 범위 객체를 참조하세요.

클러스터 범위 객체를 cluster/ 디렉터리 외부에서 선언하는 것은 금지되어 있습니다.

문제가 있는 구성이 법적인 디렉토리에 있도록 이동합니다. 클러스터 범위 객체에 대한 자세한 내용은 클러스터 범위 객체를 참조하세요.

구성 동기화 1.3에서 지원 중단되었습니다. 해당 사항 없음

이 리소스 종류는 HierarchyConfig에서 선언해서는 안 됩니다.

문제가 있는 리소스를 삭제합니다. HierarchyConfig에 대한 자세한 내용은 객체 유형에 상속 사용 중지를 참조하세요.

HierarchyConfig에서 잘못된 HierarchyMode 값이 감지되었습니다.

HierarchyModenone 또는 inherit로 변경합니다. HierarchyConfig에 대한 자세한 내용은 객체 유형에 상속 사용 중지를 참조하세요.

구성 동기화에서 이 객체를 구성할 수 없습니다.

저장소에서 문제가 있는 구성을 삭제합니다.

구성이 포함된 추상 네임스페이스 디렉터리에는 하나 이상의 네임스페이스 하위 디렉터리가 있어야 합니다.

추상 네임스페이스 디렉터리 아래에 네임스페이스 디렉터리를 추가하거나, 추상 네임스페이스 디렉터리에 네임스페이스 구성을 추가하거나, 추상 네임스페이스 디렉터리에서 구성을 삭제합니다.

metadata.ownerReference가 지정된 구성은 허용되지 않습니다.

소스 저장소에서 status 필드를 삭제합니다. 소유하지 않은 타사 구성의 경우 kustomize patches를 사용하여 매니페스트에 지정된 status 필드를 대량으로 삭제합니다.

HierarchyConfig는 클러스터 범위가 있는 리소스를 참조합니다. HierarchyConfig에서 클러스터 범위의 객체는 허용되지 않습니다.

문제가 있는 리소스를 더 이상 참조하지 않도록 HierarchyConfig를 업데이트합니다.

커스텀 리소스 정의(CRD)를 삭제하고 해당 커스텀 리소스를 저장소에 남겨둘 수 없습니다.

커스텀 리소스와 함께 CRD를 삭제합니다.

CustomResourceDefinition에 잘못된 이름이 있습니다.

이름을 오류 메시지의 권장사항으로 변경합니다.

구성에서 지원 중단된 그룹 및 종류를 사용합니다.

그룹 또는 종류를 오류 메시지의 권장사항으로 변경합니다.

클러스터 범위 리소스는 metadata.namespace를 선언하면 안 됩니다.

클러스터 범위 리소스에서 metadata.namespace 필드를 삭제합니다.

네임스페이스 범위 리소스는 metadata.namespace 또는 metadata.annotations.configmanagement.gke.io/namespace-selector를 선언해야 합니다.

누락된 필드를 네임스페이스 범위 리소스에 추가합니다.

구성에 잘못된 주석 값이 포함되어 있습니다.

오류 메시지의 안내에 따라 오류를 해결합니다.

metadata.namespace 값은 유효한 Kubernetes 네임스페이스 이름이 아닙니다.

다음 규칙을 준수하도록 metadata.namespace 값을 업데이트합니다.

  • 63자 이하여야 합니다.
  • 소문자(a-z), 숫자(0-9), 하이픈 '-'로만 구성됩니다.
  • 소문자 또는 숫자로 시작하고 끝나야 합니다.

리소스가 관리되지 않는 네임스페이스에 선언됩니다.

configmanagement.gke.io/managed: disabled 주석을 삭제하거나 선언된 리소스에 주석을 추가합니다.

리소스에 잘못된 라벨이 있습니다.

오류 메시지에 나열된 잘못된 라벨을 삭제하세요.

네임스페이스 저장소는 해당 저장소가 적용되는 네임스페이스의 네임스페이스 범위 리소스만 선언할 수 있습니다.

모든 네임스페이스 저장소가 네임스페이스 범위 리소스를 올바르게 선언하는지 확인합니다. 예를 들어 shipping 네임스페이스 저장소의 저장소는 shipping 네임스페이스의 리소스만 관리할 수 있습니다. metadata.namespace 값은 선택사항입니다. 기본적으로 구성 동기화는 네임스페이스 저장소의 모든 리소스가 해당 네임스페이스에 속한다고 가정합니다.

예를 들어 shipping 네임스페이스 저장소의 구성에서 metadata.namespace: billing을 선언한 경우 오류가 발생합니다.

네임스페이스 범위 리소스가 올바르게 선언되었는지 확인하는 것 외에도 루트 저장소에서 네임스페이스가 선언되었는지 확인해야 합니다. 이것은 네임스페이스가 클러스터 범위이기 때문에 필요합니다.

네임스페이스 저장소는 Kptfile 리소스를 최대 1개까지 선언할 수 있습니다.

하나의 Kpt 파일 리소스를 제외한 모든 리소스를 제거합니다.

여러 정보 소스에서 객체를 관리할 때 동일한 객체(일치하는 그룹, 종류, 이름, 네임스페이스)가 둘 이상의 소스에서 선언되면 충돌이 발생할 수 있습니다.

예를 들어 동일한 객체가RootSync 및 RepoSync에서 관리되는 경우 RootSync가 우선합니다. RootSync가 먼저 적용되는 경우 RepoSync는 KNV1060 상태 오류를 보고합니다. RepoSync가 먼저 적용되면 RootSync가 RepoSync의 객체를 덮어쓰고 RepoSync는 업데이트를 볼 때 KNV1060 상태 오류를 보고합니다.

다른 정보 소스와 일치하도록 구성을 업데이트하거나 소스 중 하나에서 충돌 객체를 삭제하여 충돌을 해결합니다.

nomos vet 명령어는 한 번에 한 저장소의 오류를 확인하므로 이 문제를 감지할 수 없습니다.

InvalidRepoSyncError는 RepoSync가 잘못 구성되었음을 보고합니다. 구성 동기화가 네임스페이스 저장소의 구성을 동기화하려면 RepoSync 객체가 올바르게 구성되어야 합니다.

오류 메시지의 안내에 따라 구성 오류를 수정합니다.

Kptfile에 유효한 인벤토리 필드가 없습니다. Kptfile에는 식별자 및 네임스페이스가 모두 지정된 비어 있지 않은 인벤토리 필드가 있어야 합니다.

Kptfile에서 .inventory.identifier.inventory.namespace 값을 지정합니다.

kptfiles가 루트 저장소에서 발견되었습니다. kptfiles는 네임스페이스 범위의 저장소에서만 지원됩니다.

루트 저장소에서 Kptfiles를 삭제합니다.

저장소의 api-resources.txt 파일을 파싱할 수 없습니다.

오류 메시지의 안내를 따르세요. 예를 들어 kubectl api-resources > api-resources.txt를 다시 실행해야 할 수 있습니다.

또한 nomos 버전 1.16.1 이하에서 이 오류 KNV1064: unable to find APIGROUP column이 표시됩니다. 이는 오류는 APIGROUP에서 APIVERSION으로 변경된 열 이름으로 인해 발생합니다. 이 문제를 해결하려면 api-resources.txt에서 APIVERSION을 수동으로 APIGROUP으로 바꿉니다.

CustomResourceDefinition의 형식이 잘못되었습니다.

오류 메시지에서 지정한 필드를 확인하고 값의 형식이 올바르게 지정되었는지 확인합니다.

구성 객체는 클러스터 선택기 주석만 선언해야 합니다. 이 오류는 기존 주석(configmanagement.gke.io/cluster-selector)과 인라인 주석(configsync.gke.io/cluster-name-selector)이 모두 존재하는 경우에 발생합니다.

metadata.annotations 필드에서 주석 중 하나를 삭제합니다.

조정자가 선언된 필드를 서버 측 적용과 호환되는 형식으로 인코딩하지 못합니다. 오래된 스키마로 인해 발생할 수 있습니다.

오류 메시지에 지정된 필드를 확인하고 리소스 종류의 스키마와 일치하는지 확인합니다.

렌더링 프로세스에 사용자 작업 가능한 문제가 발생했습니다.

Git 저장소에 Kustomize 구성이 포함되지만 Git 동기화 디렉터리에 kustomization.yaml 파일이 없으면 동기화 디렉터리에 kustomization.yaml을 추가하여 렌더링 프로세스를 트리거하거나 모든 하위 디렉터리에서 kustomization.yaml을 삭제하여 렌더링을 건너뜁니다.

kustomize build 오류로 인해 오류가 발생한 경우 Git 저장소에서 Kustomize 구성을 업데이트해야 할 수 있습니다. 각각 nomos hydratenomos vet을 사용하여 업데이트된 구성을 로컬로 미리보고 검증할 수 있습니다. 업데이트된 구성이 성공적으로 렌더링되었으면 새 커밋을 푸시하여 KNV1068 오류를 해결할 수 있습니다.

공개 저장소에서 원격 기반을 가져올 때 kustomize build 오류가 발생하면 spec.override.enableShellInRenderingtrue로 설정해야 합니다.

조정자가 자체 RootSync 또는 RepoSync 객체를 조정했습니다. RootSync 객체는 다른 RootSync 및 RepoSync 객체를 관리할 수 있지만 RepoSync 객체는 다른 RepoSync 객체를 관리할 수 있지만 자체 관리는 할 수 없습니다.

객체가 동기화되는 정보 소스에서 RootSync 또는 RepoSync 객체를 삭제합니다.

파일 시스템 리소스에 액세스하는 OS 수준 시스템 호출이 실패합니다.

이 오류는 잘못된 YAML 구성이나 특수문자 사용으로 인해 발생할 수 있습니다. 잘못된 YAML 구성이 있으면 KNV2001: yaml: line 2: did not find expected node content path:...와 비슷한 오류 메시지가 표시됩니다. 이 문제를 해결하려면 YAML 파일을 확인하고 구성 문제를 해결합니다. 이 문제는 저장소 내의 모든 YAML 구성으로 인해 발생할 수 있습니다.

파일 이름이나 경로에 특수문자가 포함되어 있으면 KNV2001: yaml: control characters are not allowed path:/repo/source/.../._pod.yaml과 비슷한 오류 메시지가 표시될 수 있습니다. 이 예시에서 ._pod.yaml은 유효한 파일 이름이 아닙니다. 이 문제를 해결하려면 파일 또는 경로 이름에서 특수문자를 삭제하세요.

API 서버에 액세스하는 요청이 실패합니다.

API 검색 오류가 발생할 수 있습니다. 자세한 내용은 API 검색 오류를 참조하세요.

일반적인 OS 수준 시스템 호출이 실패합니다.

구성 동기화는 정보 소스에서 읽을 수 없습니다.

이 오류가 발생할 수 있는 문제는 여러 가지입니다. 정보 소스에 연결하여 일반적인 문제를 해결하는 방법에 대한 팁은 정보 소스 연결 문제 해결을 참조하세요.

구성 동기화가 리소스를 두고 다른 컨트롤러와 싸우고 있습니다. 이러한 싸움은 많은 양의 리소스를 소비하므로 성능이 저하될 수 있습니다. 컨트롤러 싸움을 진단하고 해결하는 방법에 관한 도움말은 컨트롤러 싸움 문제 해결을 참조하세요.

실수로 인한 삭제를 방지하기 위해 구성 동기화에서는 단일 커밋으로 모든 네임스페이스나 클러스터 범위 리소스를 삭제할 수 없습니다.

구성 동기화 허용 웹훅이 중지된 경우 모든 리소스를 삭제하는 커밋을 되돌립니다.
구성 동기화 허용 웹훅이 사용 설정되었으면 네임스페이스 종료가 중단될 수 있습니다. 이를 해결하려면 다음 단계를 실행합니다.

  1. 구성 동기화를 사용 중지하고 모든 리소스가 삭제되거나 안정 상태가 될 때까지 기다립니다. 예를 들어 kubectl get ns를 실행해서 네임스페이스가 삭제되었는지 확인할 수 있습니다.
  2. 구성 동기화를 다시 사용 설정합니다.
  3. 모든 리소스를 삭제하는 커밋을 되돌립니다.

관리 중인 전체 리소스 집합을 삭제하려면 다음 단계를 완료합니다.

  1. 첫 번째 커밋에서 네임스페이스 또는 클러스터 범위 리소스를 하나만 제외한 채로 모두 삭제하고 구성 동기화가 변경사항을 동기화하도록 허용합니다.
  2. 두 번째 커밋에서 최종 리소스를 삭제합니다.

구성 동기화가 수정을 시도하는 동안 API 서버의 리소스가 수정되거나 삭제됩니다.

이러한 유형의 오류가 시작 시에만 또는 드물게만 발생하는 경우 이러한 오류를 무시해도 됩니다.

이러한 오류가 일시적이 아닌 경우(몇 분에 걸쳐) 이는 중대한 문제를 나타내는 것일 수 있으며 nomos status컨트롤러 충돌을 보고합니다.

구성 동기화가 일부 구성을 클러스터에 동기화할 수 없음을 나타내는 일반적인 오류입니다.

이 오류가 발생할 수 있는 문제는 여러 가지입니다. 동기화와 관련된 일반적인 문제를 해결하는 방법에 대한 팁은 동기화 문제해결을 참조하세요.

리소스나 리소스 집합에 문제가 있음을 나타내는 일반 오류입니다.

오류를 발생시킨 특정 리소스가 오류 메시지에 포함됩니다. 이러한 리소스를 조사합니다.

계속하려면 특정 리소스가 필요하지만 리소스를 찾을 수 없습니다. 예를 들어 ConfigManagement Operator가 리소스를 업데이트하려 했지만 업데이트를 계산하는 동안 리소스가 삭제되었습니다.

누락된 리소스를 만들거나 복원합니다.

이 오류는 APIResource 인스턴스가 한 개만 허용되는 상황에서 APIResource 인스턴스가 두 개 이상 발견되었음을 나타냅니다. 예를 들어 클러스터에는 Repo 리소스 하나만 있어야 합니다.

추가 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
      

이 오류는 나중에 자동으로 해결되는 일시적인 문제를 나타냅니다. 예를 들어 렌더링 상태가 소스 구성과 일치하지 않으면 이 오류가 표시될 수 있습니다.

오류는 자동으로 해결됩니다.

nomos 명령줄 도구 자체에 문제가 있습니다.

실행한 명령어 및 표시된 메시지와 함께 버그를 신고하세요.

문서화된 오류 메시지가 없는 오류가 발생했습니다.

발생한 오류와 관련된 문서가 아직 작성되지 않았습니다.

맨 위로

KNV 코드가 없는 오류 메시지

구성 동기화 조정자에서 보고된 오류에는 KNV 오류 코드가 있지만 다른 구성요소에서 보고된 오류에는 KNV 코드가 없습니다. 예를 들어 권한 거부 오류는 구성 동기화의 최상위 레이어인 Fleet 컨트롤러에서 발생합니다.

다음 표에는 KNV 프리픽스가 없는 일반적인 오류가 나와 있습니다.

오류 메시지 권장 작업

Error: cannot build exporters: error creating stackdriver exporter: cannot configure Google Cloud metric exporter: stackdriver: google: could not find default credentials.

Error: Permission monitoring.timeSeries.create denied (or the resource may not exist).

내보내기 도구를 빌드할 수 없음

Open Telemetry Collector의 구성요소가 동일한 네임스페이스에서 기본 서비스 계정에 액세스할 수 없는 경우 config-management-monitoring 아래의 otel-collector 포드가 CrashLoopBackoff 상태임을 알 수 있거나 나열된 것과 유사한 오류 메시지가 표시될 수 있습니다.

이 문제는 일반적으로 클러스터에서 워크로드 아이덴티티가 사용 설정되면 발생합니다.

이 문제를 해결하려면 구성 동기화 모니터링의 안내에 따라 기본 서비스 계정에 측정항목 쓰기 권한을 부여합니다.

IAM 설정 후 오류가 계속되면 변경사항을 적용하기 위해 otel-collector 포드를 다시 시작합니다.
커스텀 모니터링 솔루션을 사용 중이지만 기본 otel-collector-googlecloud ConfigMap을 포크한 경우 차이점을 확인하고 기준을 다시 설정합니다.

server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none

서버 인증서 확인 실패

git-sync, helm-sync, oci-sync 컨테이너가 아티팩트를 가져오지 못하면 이 오류 메시지가 표시될 수 있습니다.

이 메시지는 서버가 커스텀 인증 기관(CA)의 인증서로 구성되었음을 나타냅니다. 그러나 커스텀 CA가 올바르게 구성되지 않아 서버에서 컨테이너를 가져오지 못합니다.

이 문제를 해결하려면 먼저 RootSync 또는 RepoSync 객체에서 caCertSecretRef 필드가 올바르게 구성되었는지 확인하고 보안 비밀 객체가 존재하는지도 확인할 수 있습니다.

다음, 필드가 구성되었고 보안 비밀 객체가 있는 경우 보안 비밀 객체에 전체 인증서가 포함되어 있는지 확인하세요.
커스텀 CA는 프로비저닝 방법에 따라 전체 인증서를 확인하는 방법이 달라질 수 있습니다.

다음은 서버 인증서를 나열하는 방법의 예시입니다.


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 역할이 부여되었는지 확인합니다.

맨 위로

다음 단계