이 페이지에서는 RootSync
및 RepoSync
객체를 모니터링하는 다양한 방법을 보여줍니다.
예를 들어 정보 소스의 최신 커밋이 클러스터에 적용되고 성공적으로 조정되었는지 확인해야 할 수 있습니다.
동기화된 커밋 보기
RootSync
또는 RepoSync
객체의 .status.sync
필드를 확인하여 클러스터에 동기화되는 커밋을 확인할 수 있습니다.
RootSync
객체의 동기화된 커밋을 보려면 다음 명령어를 실행합니다.kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
ROOT_SYNC_NAME
을RootSync
객체 이름으로 바꿉니다.RepoSync
객체의 동기화된 커밋을 보려면 다음 명령어를 실행합니다.kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE
다음을 바꿉니다.
REPO_SYNC_NAME
:RepoSync
객체 이름REPO_SYNC_NAMESPACE
: 네임스페이스 저장소를 만든 네임스페이스
이러한 명령어의 출력에는 소스 커밋 값과 동기화된 커밋이 표시됩니다. 예를 들어 RepoSync의 명령어를 실행했으면 다음과 비슷한 출력이 표시됩니다.
NAME RENDERINGCOMMIT SOURCECOMMIT SYNCCOMMIT
root-sync 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72
RENDERINGCOMMIT
열의 값은 hydration-controller
에서 처리되는 커밋입니다. 렌더링이 필요하지 않으면 값은 SOURCECOMMIT
열과 동일합니다. SOURCECOMMIT
열의 값은 클러스터에 동기화해야 하는 정보 소스에서의 커밋입니다. SYNCCOMMIT
열의 값은 클러스터에 배포된 커밋입니다. SOURCECOMMIT
및 SYNCCOMMIT
열의 두 값이 동일하면 예상된 커밋이 클러스터에 배포된 것입니다.
커밋의 리소스가 조정되었는지 확인
ResourceGroups는 정보 소스에 선언된 관리 리소스의 조정 상태를 캡처하므로 이를 검사하여 커밋의 리소스가 조정되었는지 확인할 수 있습니다.
ResourceGroup 객체는 RootSync
또는 RepoSync
객체와 동일한 네임스페이스 및 이름을 갖습니다. 예를 들어 네임스페이스 config-management-system
의 이름이 root-sync
인 RootSync
객체의 경우 해당 ResourceGroup 객체도 네임스페이스 config-management-system
의 root-sync
입니다.
RootSync
객체의 ResourceGroup 객체를 가져오려면 다음 단계를 따르세요.kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
RepoSync
객체의 ResourceGroup 객체를 가져오려면 다음 단계를 따르세요.kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
다음을 바꿉니다.
ROOT_SYNC_NAME
: 조회하려는 ResourceGroup 객체의 이름REPO_SYNC_NAME
: 조회하려는 ResourceGroup 객체의 이름REPO_SYNC_NAMESPACE
: 조회하려는 ResourceGroup 객체의 이름
커밋의 리소스가 조정되었는지 확인하려면 출력에서 다음을 찾습니다.
.status.observedGeneration
은 ResourceGroup 객체의.metadata.generation
필드 값과 동일합니다.Stalled
조건의status
는"False"
입니다..status.resourceStatuses
아래의 각 항목에는actuation
Succeeded
,reconcile
Succeeded
,status
Current
가 있습니다.
오류 보기
RootSync
및 RepoSync
객체는 status
필드를 사용하여 정보 소스에서 클러스터로 구성을 동기화할 때 발생한 오류를 추적합니다.
RootSync
객체의 상태를 보려면 다음 명령어를 실행합니다.kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
ROOT_SYNC_NAME
을RootSync
객체 이름으로 바꿉니다.RepoSync
객체의 상태를 보려면 다음 명령어를 실행합니다.kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yaml
다음을 바꿉니다.
REPO_SYNC_NAME
:RepoSync
객체 이름NAMESPACE
: 네임스페이스 저장소를 만든 네임스페이스
status
필드의 하위 필드에 대해 자세히 알아보려면 객체의 상태를 참고하세요.
객체 세부정보 보기
RootSync
및 RepoSync
객체의 세부정보를 확인하고 잠재적 오류에 관한 자세한 정보를 확인하려면 kubectl describe
명령어를 사용하세요.
이 명령어의 출력에는 메모리 제약조건(OOMKilled), 예약 실패 또는 이미지 가져오기 오류와 같은 문제 디버깅에 특히 도움이 될 수 있는 이벤트가 포함됩니다.
더 읽기 쉬운 형식을 사용하려면 다음 명령어에 -o yaml
을 추가하여 출력을 YAML로 변환합니다. 이 형식은 특정 매개변수, 주석 또는 리소스 사양을 검사해야 할 때 특히 유용합니다.
RootSync
객체의 세부정보를 보려면 다음 명령어를 실행합니다.kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
ROOT_SYNC_NAME
을RootSync
객체 이름으로 바꿉니다.RepoSync
객체의 세부정보를 보려면 다음 명령어를 실행합니다.kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
다음을 바꿉니다.
REPO_SYNC_NAME
:RepoSync
객체 이름NAMESPACE
: 네임스페이스 저장소를 만든 네임스페이스
리소스가 준비되었는지 확인
클러스터에 동기화된 리소스가 준비되었는지 확인하려면 조정 상태를 확인합니다. 예를 들어 조정 상태를 보면 동기화된 배포가 트래픽을 처리할 준비가 되었는지 확인할 수 있습니다.
클러스터에 동기화된 각 정보 소스의 경우 모든 리소스의 조정 상태가 ResourceGroup이라는 리소스에 집계됩니다. 각 RootSync
또는 RepoSync
객체에 대해 클러스터에 적용된 리소스 집합을 캡처하고 해당 상태를 수집하기 위해 ResourceGroup이 생성됩니다.
RootSync
객체의 조정 상태를 보려면 다음 명령어를 실행합니다.kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yaml
ROOT_SYNC_NAME
을RootSync
객체 이름으로 바꿉니다.RepoSync
객체의 조정 상태를 보려면 다음 명령어를 실행합니다.kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yaml
다음을 바꿉니다.
REPO_SYNC_NAME
:RepoSync
객체 이름NAMESPACE
: 네임스페이스 저장소를 만든 네임스페이스
출력에서 모든 ResourceGroup 리소스 상태를 확인합니다. 예를 들어 다음 출력은 nginx-deployment
라는 배포가 준비되었음을 보여줍니다.
resourceStatuses:
- group: apps
kind: Deployment
name: nginx-deployment
namespace: default
status: Current
로그 보기
구성 동기화는 생성된 각 RootSync
및 RepoSync
객체에 대해 동기화를 실행하는 조정자 배포를 만듭니다. 이 섹션에서는 이러한 조정자의 로그를 보는 방법을 설명합니다. RootSync
및 RepoSync
객체 상태에서 제공되는 것 이상의 진행 상태, 경고, 오류에 대한 추가 정보를 제공하여 문제를 디버깅할 때 로그를 확인하는 것이 도움이 됩니다.
RootSync
또는RepoSync
조정자에 대한 로그를 보려면 다음 명령어를 실행합니다.kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
다음을 바꿉니다.
RECONCILER_NAME
:RootSync
또는RepoSync
객체의 조정자 이름.RootSync
의 경우 조정자 이름은root-reconciler-ROOT_SYNC_NAME
이거나RootSync
이름이root-sync
면root-reconciler
입니다.RepoSync
의 경우 조정자 이름은ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
이거나RepoSync
이름이repo-sync
면ns-reconciler-NAMESPACE
입니다. 여기서NAMESPACE
는RepoSync
객체를 만든 네임스페이스입니다.
CONTAINER_NAME
: 컨테이너 이름은reconciler
,git-sync
,hydration-controller
,oci-sync
또는helm-sync
중 하나여야 합니다. 이러한 컨테이너에 관한 자세한 내용은 조정자 컨테이너를 참고하세요.
RootSync 또는 RepoSync 조정기 로그 수준 구성
컨테이너 로그에 더 많은 정보를 포함하려면 로그 상세 수준을 구성합니다. 기본적으로 대부분의 컨테이너는 로그 상세 수준의 기본값이 0
입니다. 기본값이 5
인 git-sync
및 otel-agent
컨테이너는 예외입니다.
로그 상세 수준을 변경할 때는 로그 상세 수준을 높이면 기록되는 데이터 양이 많아져 로깅 비용이 증가한다는 점에 유의하세요.
로그 상세 수준을 변경하려면 다음 예와 같이 .spec.override.logLevels
필드를 사용합니다.
apiVersion: configsync.gke.io/v1beta1
kind: RootSync
metadata:
name: root-sync
namespace: config-management-system
spec:
override:
logLevels:
- containerName: "reconciler"
logLevel: 0
- containerName: "git-sync"
logLevel: 10
containerName
필드의 값은 reconciler
, git-sync
, hydration-controller
, oci-sync
, helm-sync
중 하나여야 합니다.
로그 상세 수준이 구성되었는지 확인하려면 다음 명령어를 실행합니다.
kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml
로그 세부정보 수준은 spec.template.spec.containers[]
내의 args
중 하나로 찾을 수 있으며 -v=0
과 같습니다. 여기서 0은 현재 로그 세부정보 수준입니다. 이 예시에서 로그 세부정보 수준 값이 0이면 중요한 이벤트만 로깅합니다.