문제 해결 소개

구성 동기화에 문제가 있는 경우 이 페이지에서는 발생한 문제를 식별하고 해결하는 데 도움이 되는 몇 가지 일반적인 도구와 절차를 소개합니다.

지원되는 버전으로 업그레이드

지원되는 버전으로 구성 동기화를 업그레이드하는 방법을 고려해 보세요. 업그레이드하면 종종 일반적인 문제가 해결되고 가장 최신 기능에 액세스할 수 있습니다. 항상 지원되는 버전을 사용하려면 자동 업그레이드(프리뷰)를 사용 설정하면 됩니다.

nomos 명령줄 도구 사용

nomos 명령줄 도구는 구성 동기화 설정에 대한 중요한 정보를 제공합니다. 다음 섹션에 설명된 명령어는 문제의 원인을 확인하려고 하거나 Cloud Customer Care 작업을 수행해야 할 때 특히 유용합니다.

구성 동기화 상태 보기

nomos status 명령어는 구성 동기화 설치에서 발생하는 상황을 이해할 수 있도록 수집된 데이터 및 오류 정보를 제공합니다. 다음 정보는 nomos status로 제공됩니다.

  • 클러스터당 설치 상태
  • 동기화 오류(Git에서 읽기 및 변경사항 조정 모두)

버그 신고 작성

Cloud Customer Care의 도움이 필요한 구성 동기화 문제가 있는 경우 nomos bugreport 명령어를 사용하여 유용한 디버깅 정보를 제공할 수 있습니다.

이 명령어는 kubectl 컨텍스트에서 설정된 Kubernetes 클러스터에 대한 정보가 있는 타임스탬프 zip 파일을 생성합니다. 이 파일에는 또한 구성 동기화 포드의 로그가 포함됩니다. 구성 동기화로 동기화된 리소스의 정보는 포함되지 않습니다.

개요 대시보드 보기

구성 동기화 대시보드는 구성 동기화가 관리하는 패키지 상태와 이러한 패키지의 리소스 상태에 대한 개요를 제공합니다. 이 대시보드를 탐색하면 구성 동기화 설치 상태에 대한 간략한 개요를 확인하고 문제가 있는 패키지를 찾는 데 도움이 됩니다.

  • 대시보드에 액세스하려면 Google Cloud 콘솔에서 기능 섹션의 구성 페이지로 이동합니다.

    구성으로 이동

모니터링 및 로그 분석 사용

구성 동기화를 모니터링하고 로그를 탐색하면 버그 원인을 확인하고 예상치 못한 동작을 더 잘 이해할 수 있습니다.

구성 동기화 측정항목 이해

구성 동기화 측정항목을 사용하여 구성 동기화 상태를 파악합니다.

RootSync 및 RepoSync 객체 모니터링

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 구성 동기화를 설치하면 구성 동기화에서 RootSync 객체가 자동으로 생성됩니다. 여러 저장소에서 동기화 구성을 수행할 때는 네임스페이스 저장소에 대한 구성 정보가 포함된 RepoSync 객체가 생성됩니다.

이러한 객체를 모니터링하면 구성 동기화 상태에 대한 중요한 정보를 확인할 수 있습니다. 자세한 내용은 RootSync 및 RepoSync 객체 모니터링을 참조하세요.

서비스 수준 지표(SLI) 사용

구성 동기화가 의도한 대로 작동하지 않을 때 알림을 받으려면 구성 동기화 SLI를 사용합니다.

쿼리 로그

로그 탐색기를 사용하여 구성 동기화의 로그 데이터를 검색, 확인, 분석할 수 있습니다. 이러한 로그에는 연산자 또는 조정자 포드가 다시 시작될 때 nomos bugreport로 캡처되지 않는 중요한 이전 데이터가 포함될 수 있습니다. 문제 진단에 도움이 되는 쿼리 예시는 구성 동기화 로그 쿼리를 참조하세요.

kubectl 명령줄 도구를 사용하여 리소스 검사

구성 동기화는 kubectl 명령어를 사용해서 쿼리할 수 있는 여러 커스텀 리소스로 구성됩니다. 이러한 명령어는 각 구성 동기화 객체의 상태를 이해하는 데 도움이 됩니다.

구성 동기화가 관리하는 Kubernetes 리소스에 대한 다음 정보를 확인합니다.

  • config-management-system은 구성 동기화의 모든 핵심 시스템 구성요소를 실행하는 데 사용하는 네임스페이스입니다.
  • configmanagement.gke.ioconfigsync.gke.io는 모든 커스텀 리소스에 사용하는 API 그룹입니다.

예시

다음 섹션에서는 kubectl 명령어를 사용하여 구성 동기화를 검사하는 방법을 보여줍니다.

커스텀 리소스 나열

  • 다음 명령어를 실행하여 커스텀 리소스의 전체 목록을 가져올 수 있습니다.

    kubectl api-resources | grep -E "configmanagement.gke.io|configsync.gke.io"
    
  • 다음 명령어를 실행하여 개별 커스텀 리소스를 사용할 수 있습니다.

    kubectl get RESOURCE -o yaml.
    

    RESOURCE를 쿼리하려는 리소스의 이름으로 바꿉니다.

    예를 들어 다음 명령어의 출력에 따라 RootSync 객체 상태를 확인할 수 있습니다.

    kubectl get rootsync -n config-management-system -o yaml
    

객체의 토큰 주석 확인

구성 동기화를 통해 관리형 Kubernetes 객체가 마지막으로 업데이트된 시기를 알고자 할 수 있습니다. 각 관리형 객체에는 최종 수정 시 Git 커밋의 해시와 수정 사항이 포함된 구성의 경로가 주석으로 지정됩니다.

예를 들어 namespace-readers라는 ClusterRoleBinding의 주석을 가져오려면 다음 명령어를 실행합니다.

kubectl get clusterrolebinding namespace-readers

출력은 다음과 비슷합니다.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    configmanagement.gke.io/source-path: cluster/namespace-reader-clusterrolebinding.yaml
    configmanagement.gke.io/token: bbb6a1e2f3db692b17201da028daff0d38797771
  name: namespace-readers
...

자세한 내용은 라벨 및 주석을 참조하세요.

추가 문제 해결 문서 읽기

그래도 문제가 발생하면 다음 리소스가 유용할 수 있습니다.

  • 오류 메시지가 표시된 경우 오류 참조 페이지에서 오류 해결에 대한 안내를 확인하세요.

  • 알려진 문제로 인해 발생한 문제인지 확인합니다.

  • 특정 영역에 문제가 있는 경우 목차의 문제 유형별 문제 해결 섹션에 나열된 대상 문제 해결 가이드 중 하나가 도움이 될 수 있습니다.

다음 단계