gcloud CLI를 사용하여 구성 동기화 상태 보기

이 페이지에서는 Google Cloud CLI 명령어를 사용하여 구성 동기화를 모니터링하는 방법을 설명합니다.

  • 여러 클러스터 간의 저장소 상태를 나열하려면 gcloud alpha anthos config sync repo를 사용합니다.

  • 구성 동기화가 관리하는 리소스를 보려면 gcloud alpha anthos config sync resources를 사용합니다.

구성 동기화 대시보드에서도 유사한 정보를 볼 수 있습니다.

시작하기 전에

이 페이지의 명령어를 사용하기 전에 다음 단계를 완료하세요.

  1. Google Cloud CLI 구성요소를 업데이트합니다.

    gcloud components update
    
  2. 아직 등록하지 않은 경우 클러스터를 등록합니다. Google Cloud Console을 통해 구성 동기화를 설치하고 구성한 경우에는 이 단계를 건너뛸 수 있습니다.

  3. 클러스터가 GKE 클러스터가 아닌 경우 플랫폼 관리자가 등록된 클러스터에 연결 게이트웨이를 설정해야 합니다.

  4. 프로젝트를 설정합니다.

    gcloud config set project PROJECT_ID
    

    PROJECT_ID를 구성 동기화가 설정되어 실행 중인 프로젝트 ID로 바꿉니다.

여러 클러스터에서 구성 동기화 상태 보기

프로젝트에 등록된 여러 클러스터에 구성 동기화를 설치하고 구성하는 경우 gcloud alpha anthos config sync repo를 사용하여 클러스터 간에 동기화되는 저장소의 상태를 나열하고 구성 동기화로 문제를 디버깅할 수 있습니다.

nomos status와 달리 gcloud alpha anthos config sync repo는 저장소를 기준으로 상태를 그룹화하는 반면, nomos status 명령어는 클러스터를 기준으로 상태를 그룹화합니다.

모든 저장소 나열

현재 프로젝트에 등록된 모든 클러스터에 동기화된 Git 저장소의 모든 상태를 나열하려면 다음 명령어를 실행합니다.

gcloud alpha anthos config sync repo list

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

┌─────────────────────────────────────────────────────────────────┬───────┬────────┬─────────┬───────┬─────────┬─────────────┐
│                       SOURCE                                    │ TOTAL │ SYNCED │ PENDING │ ERROR │ STALLED │ RECONCILING │
├─────────────────────────────────────────────────────────────────┼───────┼────────┼─────────┼───────┼─────────┼─────────────┤
│ https://source.developers.google.com/p/test/r/test//@main       │ 2     │ 2      │ 0       │ 0     │ 0       │ 0           │
│ https://source.developers.google.com/p/test/r/dev//@main        │ 2     │ 1      │ 0       │ 0     │ 1       │ 0           │
│ https://source.developers.google.com/p/test/r/staging//@main    │ 1     │ 0      │ 0       │ 1     │ 0       │ 0           │
└─────────────────────────────────────────────────────────────────┴───────┴────────┴─────────┴───────┴─────────┴─────────────┘

각 저장소에서 각 클러스터의 해당 상태를 확인할 수 있습니다.

  • TOTAL은 저장소가 동기화되는 클러스터 수입니다.
  • SYNCED는 이 저장소가 성공적으로 동기화된 클러스터의 수입니다.
  • PENDING은 이 저장소가 동기화 대기 중인 클러스터 수입니다.
  • ERROR는 동기화 중에 이 저장소에서 오류가 발생한 클러스터 수입니다.
  • STALLED는 이 저장소를 동기화하는 배포가 중단된 클러스터의 수입니다.
  • RECONCILING은 이 저장소를 동기화하는 배포가 조정되는 클러스터 수입니다.

특정 상태의 저장소 나열

--status 플래그를 사용하여 특정 상태의 저장소를 나열할 수도 있습니다. 지원되는 값은 synced, pending, error, stalled, reconciling입니다.

예를 들어 다음 명령어를 실행하여 오류가 있는 저장소를 나열하세요.

gcloud alpha anthos config sync repo list --status=error

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

┌─────────────────────────────────────────────────────────────────┬───────┬────────┬─────────┬───────┬─────────┬─────────────┐
│                       SOURCE                                    │ TOTAL │ SYNCED │ PENDING │ ERROR │ STALLED │ RECONCILING │
├─────────────────────────────────────────────────────────────────┼───────┼────────┼─────────┼───────┼─────────┼─────────────┤
│ https://source.developers.google.com/p/test/r/staging//@main    │ 1     │ 0      │ 0       │ 1     │ 0       │ 0           │
└─────────────────────────────────────────────────────────────────┴───────┴────────┴─────────┴───────┴─────────┴─────────────┘

저장소 설명

describe 명령어를 사용하여 저장소 상태에 대한 세부정보를 확인합니다.

   gcloud alpha anthos config sync repo describe \
     --source URL

URL을 이전 섹션에서 설명한 repo list 명령어 출력의 URL로 바꿉니다.

--namespace--name을 사용하여 설명할 저장소를 지정할 수도 있습니다.

   gcloud alpha anthos config sync repo describe \
     --sync-namespace config-management-system --sync-name root-sync

기본적으로 이 명령어는 저장소 상태와 함께 적용되었지만 조정에 실패한 관리형 리소스를 출력합니다. 예를 들면 다음과 같습니다.

   [
     {
       "clusters": [
         "cluster-1",
         "cluster-2",
       ],
       "commit": "32293c90a63efba3121c7648048fcd3e85043a34",
       "errors": [],
       "source": "https://source.developers.google.com/p/test/r/test//@main",
       "status": "SYNCED"
     }
   ]

--managed-resources 플래그를 사용하여 보려는 관리형 리소스를 제어할 수도 있습니다. 지원되는 값은 all, current, inprogress, notfound, failed(기본값) 또는 unknown입니다. 다음 명령어를 사용하여 모든 관리형 리소스를 볼 수 있습니다.

   gcloud alpha anthos config sync repo describe \
     --namespace config-management-system --name root-sync \
     --managed-resources all

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

   [
     {
       "clusters": [
         "cluster-1",
         "cluster-2",
       ],
       "commit": "32293c90a63efba3121c7648048fcd3e85043a34",
       "errors": [],
       "source": "https://source.developers.google.com/p/test/r/test//@main",
       "status": "SYNCED"
     }
   ]
   ┌────────────────────────────────────────────────────────────────┐
   │                       managed_resources                        │
   ├───────┬───────────┬─────────┬───────────┬─────────┬────────────┤
   │ GROUP │    KIND   │   NAME  │ NAMESPACE │  STATUS │ CONDITIONS │
   ├───────┼───────────┼─────────┼───────────┼─────────┼────────────┤
   │       │ Namespace │ default │           │ Current │            │
   │       │ ConfigMap │ foo     │ default   │ Current │            │
   └───────┴───────────┴─────────┴───────────┴─────────┴────────────┘

구성 동기화 관리형 리소스 보기

gcloud alpha anthos config sync resources를 사용하여 클러스터, 그룹, 종류, 네임스페이스, 이름, 상태 또는 이러한 속성의 조합을 기준으로 관리형 리소스를 필터링할 수 있습니다.

모든 관리형 리소스 나열

   gcloud alpha anthos config sync resources list

이 명령어는 현재 프로젝트에 등록된 모든 클러스터와 동기화된 모든 관리형 리소스를 나열합니다. 출력은 다음과 비슷합니다.

┌───────────────────┬───────────────────────────┬──────────────────────────┬──────────────────┬───────────────────────────────────────────┬─────────┬───────────┐
│    CLUSTER_NAME   │           GROUP           │           KIND           │    NAMESPACE     │                    NAME                   │  STATUS │ CONDITION │
├───────────────────┼───────────────────────────┼──────────────────────────┼──────────────────┼───────────────────────────────────────────┼─────────┼───────────┤
│ cluster-1         │                           │ Namespace                │                  │ default                                   │ Current │           │
│ cluster-1         │ rbac.authorization.k8s.io │ RoleBinding              │ default          │ viewers                                   │ Current │           │
│ cluster-2         │                           │ Namespace                │                  │ gamestore                                 │ Current │           │
│ cluster-2         │ rbac.authorization.k8s.io │ RoleBinding              │ gamestore        │ gamestore-admin                           │ Current │           │
│ cluster-2         │ rbac.authorization.k8s.io │ RoleBinding              │ gamestore        │ gamestore-webstore-admin                  │ Current │           │
└───────────────────┴───────────────────────────┴──────────────────────────┴──────────────────┴───────────────────────────────────────────┴─────────┴───────────┘

출력의 각 행은 관리형 리소스와 해당 상태가 설명되어 있습니다.

  • CLUSTER_NAME은 관리형 리소스가 위치한 클러스터의 이름입니다.
  • GROUP은 관리형 리소스의 그룹 속성입니다.
  • KIND는 관리형 리소스의 종류 속성입니다.
  • NAMESPACE는 관리형 리소스의 네임스페이스입니다.
  • NAME은 관리형 리소스의 이름입니다.
  • STATUS는 관리형 리소스의 조정 상태입니다. 가능한 상태 목록은 Kubernetes Sig 문서에서 확인할 수 있습니다.
  • CONDITION은 관리형 리소스의 상태를 설명하는 메시지입니다.

단일 클러스터의 관리형 리소스 나열

gcloud 명령어를 사용하거나 Google Cloud 콘솔에서 확인하여 클러스터별 관리형 리소스를 볼 수 있습니다.

--cluster 플래그를 사용하여 특정 클러스터의 관리형 리소스를 나열할 수 있습니다. 예를 들어 다음 명령어로 이름이 cluster-1인 클러스터의 관리형 리소스를 나열합니다.

gcloud alpha anthos config sync resources list --cluster=cluster-1

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

┌───────────────────┬───────────────────────────┬──────────────────────────┬──────────────────┬───────────────────────────────────────────┬─────────┬───────────┐
│    CLUSTER_NAME   │           GROUP           │           KIND           │    NAMESPACE     │                    NAME                   │  STATUS │ CONDITION │
├───────────────────┼───────────────────────────┼──────────────────────────┼──────────────────┼───────────────────────────────────────────┼─────────┼───────────┤
│ cluster-1         │                           │ Namespace                │                  │ default                                   │ Current │           │
│ cluster-1         │ rbac.authorization.k8s.io │ RoleBinding              │ default          │ viewers                                   │ Current │           │
└───────────────────┴───────────────────────────┴──────────────────────────┴──────────────────┴───────────────────────────────────────────┴─────────┴───────────┘

다음 단계