문제 해결 소개

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

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

지원되는 버전으로 구성 동기화를 업그레이드하는 것이 좋습니다. 업그레이드하면 일반적인 문제가 해결되고 최신 기능에 액세스할 수 있는 경우가 많습니다.

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
...

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

Gemini Cloud Assist로 진단 가속화

이전 섹션에서 설명한 도구를 사용한 후에도 문제의 원인이 명확하지 않은 경우가 있습니다. 복잡한 케이스를 조사하는 데는 시간이 오래 걸리며 깊이 있는 전문 지식이 필요합니다. 이러한 시나리오에서 Gemini Cloud Assist가 도움이 될 수 있습니다. 숨겨진 패턴을 자동으로 감지하고, 이상치를 표시하며, 요약을 제공하여 가능성이 높은 원인을 신속하게 파악할 수 있습니다.

Gemini Cloud Assist 액세스

Gemini Cloud Assist에 액세스하려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 아무 페이지로 이동합니다.
  2. Google Cloud 콘솔 툴바에서 Gemini Cloud Assist 채팅 열기 또는 닫기를 클릭합니다.

    Cloud Assist 패널이 열립니다. 프롬프트 예시가 표시되면 이 예시를 클릭하거나 프롬프트 입력 필드에 프롬프트를 입력할 수 있습니다.

프롬프트 예시 살펴보기

Gemini Cloud Assist가 어떻게 도움이 되는지 이해할 수 있도록 몇 가지 프롬프트 예시를 소개합니다.

테마 시나리오 프롬프트 예시 Gemini Cloud Assist가 지원하는 방식
초기 설정 플랫폼 엔지니어가 Git 저장소에서 GKE 클러스터를 관리할 수 있도록 구성 동기화를 처음으로 설정하고 있습니다. GitHub 저장소의 매니페스트를 GKE 클러스터에 동기화하도록 구성 동기화를 설정하려면 어떻게 해야 하나요? Gemini Cloud Assist는 함대 등록 및 기능 사용 설정과 같은 구성 동기화 설정에 관한 단계별 가이드를 제공하고 저장소 URL, 브랜치, 경로, 인증 방법 (예: public, token, ssh)과 같은 세부정보를 설명합니다.
동기화 오류 문제 해결하기 개발자가 새 매니페스트를 커밋하지만 리소스가 클러스터에 적용되지 않고 동기화 상태에 오류 코드가 표시됩니다. 내 구성 동기화 RootSync 객체에 'KNV2009: the server could not find the requested resource'이 표시됩니다. 이는 무엇을 의미하며 어떻게 해결해야 하나요? Gemini Cloud Assist는 오류 코드를 분석하여 일반적으로 구성 동기화가 예상되는 Kubernetes 리소스를 찾거나 상호작용할 수 없음을 나타낸다고 설명합니다. 그런 다음 RBAC 권한 누락, 리소스 객체 크기 제한 초과, 잘못된 디렉터리 경로, 외부 인벤토리 충돌, 관리되지 않는 리소스 문제 등 일반적인 원인을 자세히 설명하고 각 원인에 대한 구체적인 문제 해결 단계를 제공합니다.
여러 팀 관리하기 조직에서는 애플리케이션 팀이 중앙 플랫폼 저장소에 액세스하지 않고도 특정 네임스페이스에서 자체 구성을 관리할 수 있도록 허용해야 합니다. 구성 동기화에서 RootSync 객체와 RepoSync 객체의 차이점은 무엇인가요? 언제 RepoSync을 사용해야 하나요?

Gemini Cloud Assist는 RootSync 객체와 RepoSync 객체의 핵심 차이점을 설명합니다. RootSync 객체는 클러스터 범위이며 일반적으로 관리자가 클러스터 전체 구성에 사용하는 반면, RepoSync 객체는 네임스페이스 범위이며 애플리케이션 팀이 특정 네임스페이스 내에서 리소스를 관리하도록 설계되어 위임과 멀티 테넌시를 촉진합니다.

또한 Gemini Cloud Assist는 RepoSync 객체를 사용해야 하는 시나리오를 자세히 설명하여 멀티 테넌시의 이점과 잘못된 구성의 영향을 받는 영역을 줄이는 점을 강조합니다.

사전 유효성 검사 개발자는 프로덕션에서 동기화가 중단되지 않도록 저장소에 커밋하기 전에 새 매니페스트가 유효한지 확인하려고 합니다. Git 저장소에 푸시하기 전에 로컬 머신에서 Kubernetes 매니페스트의 구성 동기화 오류를 확인하려면 어떻게 해야 하나요? Gemini Cloud Assist에서는 nomos 명령줄 도구를 사용하여 구성 동기화 오류에 대한 Kubernetes 매니페스트를 확인하는 방법을 설명합니다. 구문 검증을 위해 nomos vet 명령어를 사용하고 Kustomize 또는 Helm에서 렌더링된 구성을 미리 보기 위해 nomos hydrate 명령어를 사용하는 방법을 자세히 설명합니다. 또한 Gemini Cloud Assist는 Git에 푸시하기 전에 이러한 검사를 통합하기 위한 권장 워크플로를 간략하게 설명합니다.

자세한 내용은 다음 리소스를 참조하세요.

Gemini Cloud Assist 조사 사용

Gemini Cloud Assist는 양방향 채팅 외에도 Gemini Cloud Assist 조사를 통해 더 자동화된 심층 분석을 실행할 수 있습니다. 이 기능은 로그 탐색기와 같은 워크플로에 직접 통합되어 있으며 강력한 근본 원인 분석 도구입니다.

오류 또는 특정 리소스에서 조사를 시작하면 Gemini Cloud Assist가 로그, 구성, 측정항목을 분석합니다. 이 데이터를 사용하여 가능한 근본 원인에 관한 순위가 지정된 관찰 및 가설을 생성한 다음 권장되는 다음 단계를 제공합니다. 이 결과를 Google Cloud 지원 케이스로 전송하여 문제를 더 빠르게 해결하는 데 도움이 되는 유용한 컨텍스트를 제공할 수도 있습니다.

자세한 내용은 Gemini 문서의 Gemini Cloud Assist 조사를 참고하세요.

추가 문제 해결 문서 읽기

그래도 문제가 계속되면 다음 리소스가 도움이 될 수 있습니다.

  • 오류 메시지가 표시되면 오류 참조 페이지에서 오류 해결에 관한 조언을 확인하세요.

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

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

다음 단계

  • 문서에서 문제 해결 방법을 찾을 수 없으면 지원 받기를 참조하여 다음 주제에 대한 조언을 포함한 추가 도움을 요청하세요.

    • Cloud Customer Care에 문의하여 지원 케이스를 엽니다.
    • StackOverflow에서 질문하여 커뮤니티의 지원을 받습니다. kpt 또는 Kustomize를 사용하는 경우 kpt 또는 kustomize 태그를 사용하여 유사한 문제를 검색합니다.
    • GitHub의 공개 Issue Tracker를 사용하여 버그나 기능 요청을 엽니다.