이 페이지에서는 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
조건 및Reconciling
조건 모두status
가"False"
입니다..status.resourceStatuses
필드의 각 항목 상태는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이면 중요한 이벤트만 로깅합니다.